CSRF学习笔记之CSRF的攻击与防御以及审计【00x2 】
Medium完整代码:
<?php
    if (isset($_GET['Change'])) {
        // Checks the http referer header
        if ( eregi ( "127.0.0.1", $_SERVER['HTTP_REFERER'] ) ){
            // Turn requests into variables
            $pass_new = $_GET['password_new'];
            $pass_conf = $_GET['password_conf'];
            if ($pass_new == $pass_conf){
                $pass_new = mysql_real_escape_string($pass_new);
                $pass_new = md5($pass_new);
                $insert="UPDATE `users` SET password = '$pass_new' WHERE user = 'admin';";
                $result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' );
                $html .= "<pre> Password Changed </pre>";
                mysql_close();
            }
            else{
                $html .= "<pre> Passwords did not match. </pre>";
            }    
        }
    }
?>
在第六行增加了一个函数,这个函数相对于我较为生僻。eregi:不区分大小写的正则表达式匹配 ps:这个函数已经被高版本的PHP遗弃了。
关于eregi函数的案例:
<?php
$string = "hello world";
if(eregi('E',$string)){//匹配E是否再$string变量中,不区分大小写
echo "xxx";//如果存在输出xxx
}else{
echo "bbbbb";//否则输出bbbbb
}
?>
知道了那个函数就很容易知道,这个Medium的防御措施是如何的。既然对来源的$_SERVER['HTTP_REFERER']即referer进行了匹配,那么应该咋绕过呢?
绕过方法:
文件名也是在referer当中,那么我们就可以将其匹配的$_SERVER['HTTP_REFERER']当作我们的文件明来绕过。
比如攻击者的域名是www.aaaa.com
被攻击者的域名是:www.bbb.com
在攻击者的服务器上上传一个文件,名字改为:www.bbb.com。即www.aaa.com/www.bbb.com
如此便成功绕过。
CSRF学习笔记之CSRF的攻击与防御以及审计【00x2 】的更多相关文章
- CSRF学习笔记之CSRF的攻击与防御以及审计【00x1 】
		+++++++++++++++++++++++++++ + 00x1 实现简单的攻击 + 00x2 代码审计漏洞的源头 +++++++++++++++++++++++++++ 00x1 简单的csrf ... 
- CSRF学习笔记之CSRF的攻击与防御以及审计【00x3】
		Hight.php完整代码如下: <?php if (isset($_GET['Change'])) { // Turn requests into variables $pass_curr = ... 
- CSRF学习笔记之CSRF的防御【00x4】
		referer 验证 根据HTTP协议,在http请求头中包含一个referer的字段,这个字段记录了该http请求的原地址.通常情况下,执行转账操作的post请求www.bank.com/trans ... 
- 初探csrf学习笔记
		以下是学习了对CSRF的理解,大家切勿作为标准,如有出错请告之! 严禁转载.不想拿自己刚学到的知识去[误人子弟]之所以写出来是让自己巩固和增加理解,他日对此文有不当之处自会修改. [00x1]csrf ... 
- csrf学习笔记
		CSRF全称Cross Site Request Forgery,即跨站点请求伪造.我们知道,攻击时常常伴随着各种各样的请求,而攻击的发生也是由各种请求造成的. CSRF攻击能够达到的目的是使受害者发 ... 
- CSRF 学习笔记
		1:什么是CSRF: 假设有一个支付网站:www.xx.com 向小明同学付款1000元数据包: www.xx.com/pay.php?name=xiaoming&account=xxxx@q ... 
- 学习笔记之csrf
		CBV 添加 csrf 第一种: 指定方法方面添加 装饰器 @memethod_decorator(xxx) 第二种 全部添加: 注意 在类名前: @method_decorator(xxx,name ... 
- SurvivalShooter学习笔记(四.敌人攻击)
		此案例中,敌人始终朝着玩家移动 到达攻击玩家范围时(身上的大的触发器被玩家触发时(敌人靠近玩家,当身上的触发器被触发,且对象是玩家时条件达成)) 隔一个时间端,打击玩家一下,对玩家造成伤害,玩家掉血, ... 
- Metasploit学习笔记——网络服务渗透攻击
		1.内存攻防技术 1.1缓冲区溢出漏洞机理 1.2栈溢出利用机理 1.3缓冲区溢出利用的限制条件 2.网络服务渗透攻击面 3. Windows服务渗透攻击实战案例——MS08-067安全漏洞 示例代码 ... 
随机推荐
- Vue-router路由基础总结(二)
			一.命名路由 有时我们通过一个名称来标识一个路由显得更方便一些,特别是在链接一个路由,或者是执行一些跳转的时候.你可以在创建 Router 实例的时候,在 routes 配置中给某个路由设置名称. 我 ... 
- RocketMQ通信协议
			我们先从client端看一个消息是如何发送到服务端,服务端又是如何解析消息的. client端: 构造请求体: 构造请求体: 发送消息体: 下面看服务端: rocketmq的协议服务端解析救灾这里了R ... 
- android开发笔记之Volley (1)
			1. volley的简介 Volley is an HTTP library that makes networking for Android apps easier and most import ... 
- Android RxJava/RxAndroid结合Retrofit使用
			概述 RxJava是一个在 Java VM 上使用可观測的序列来组成异步的.基于事件的程序的库.更重要的是:使用RxJava在代码逻辑上会非常简洁明了,尤其是在复杂的逻辑上.告别迷之缩进. RxAnd ... 
- Tomcat性能调整完整教程
			Tomcat性能调整完整教程 发表于:2007-07-13来源:作者:点击数:526 标签: 一. 引言 性能测试与分析是软件 开发 过程中介于架构和调整的一个广泛并比较不容易理解的领域,更是一项较为 ... 
- C++ STL中Map的按Value排序
			那么我们如何实现对pair按value进行比较呢? 第一种:是最原始的方法,写一个比较函数: 第二种:刚才用到了,写一个函数对象.这两种方式实现起来都比较简单. typedef pair<st ... 
- php求斐波那契数列
			<?php function feibonaqi(){ //参数$num表示为第$num个数之前的所有斐波那契数列 $arr = array(); //定义一个空变量用来存放斐波那契数列的数组 ... 
- 修改HTML5 input placeholder默认颜色
			WebKit和Blink(Safari,Google Chrome, Opera15+)使用伪元素 ::-webkit-input-placeholder Mozilla Firefox 4-18使用 ... 
- Pthreads并行编程之spin lock与mutex性能对比分析(转)
			POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API.线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用 ... 
- easyui datebox 扩展清空按钮
			/** * 给时间框控件扩展一个清除的按钮 */ $.fn.datebox.defaults.cleanText = '清空'; (function ($) { var buttons = $.ext ... 
