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 ...