CSRF漏洞实战靶场笔记

记录下自己写的CSRF漏洞靶场的write up,包括了大部分的CSRF实战场景,做个笔记。

 CSRF漏洞实战靶场笔记_第1张图片

 

0x01 无防护GET类型csrf(伪造添加成员请求)

这一关没有任何csrf访问措施

CSRF漏洞实战靶场笔记_第2张图片

 

首先我们登录test用户 

CSRF漏洞实战靶场笔记_第3张图片

 

发现有个添加成员功能  用test账号添加 发现只有admin才可以添加

CSRF漏洞实战靶场笔记_第4张图片

 

现在用另一个浏览器 ,这里用的搜狗浏览器来登录admin账号

CSRF漏洞实战靶场笔记_第5张图片

 

我们把test用户添加用户的url地址,这里是添加一个用户名为111和密码为111的用户请求的地址,我们在登录了admin账号的搜狗浏览器新建窗口打开

http://www.csrf_demo.com/csrf_1.php?username=111&password=1111&submit=%E6%B7%BB%E5%8A%A0

CSRF漏洞实战靶场笔记_第6张图片

发现添加成功 完成了一次最简单的csrf攻击,伪造了admin添加成员的请求

 

提一下,真实攻击中你有很多手段把csrf进行隐蔽,例如短网址变化、恶意网站加载csrf请求、配合xss进行攻击,形式多种多样。

 

 

0x02 无防护POST类型csrf(伪造添加成员请求)

这次添加成员的请求是post ,我们就需要构造表单

可以使用CSRFTester 或者使用burp自带的csrf POC

 

下面以burp自带的csrf POC 为例子 ,登录test用户抓取到添加成员的数据包

CSRF漏洞实战靶场笔记_第7张图片

 

 构造csrf表单

CSRF漏洞实战靶场笔记_第8张图片

CSRF漏洞实战靶场笔记_第9张图片

 

 修改好后生成对应的html,

 CSRF漏洞实战靶场笔记_第10张图片

 

然后用admin账号 打开这个表单,点击按钮

CSRF漏洞实战靶场笔记_第11张图片

 可以发现也构造出了添加222用户的请求。

 

 CSRF漏洞实战靶场笔记_第12张图片

 

这里是个简单的csrf poc。实战中你可以把表单构造成自动提交,或者提交后转到某个具有迷惑性的地址来隐蔽你的csrf攻击,这里就不多叙述了。

 

 

  

 

 

0x03 绕过CSRF防护之Referer检查(伪造购买商品请求)

CSRF漏洞实战靶场笔记_第13张图片

 

 

这里我们又需要使用test构造admin账号的购买请求。这一关有的是referer的验证,如下,还是通过第一关的方法构造url会出现提示。

CSRF漏洞实战靶场笔记_第14张图片

原因是代码中验证了http包的来源地址。

if(@!eregi( $_SERVER[ 'SERVER_NAME' ], $_SERVER[ 'HTTP_REFERER' ] )){
    
    js_alert("疑似csrf攻击!购买失败!",'#');
    exit;
}
    $username = $_SESSION['username'];
    if(isset($_POST['checkbox'])){
    $checkbox = $_POST['checkbox'];
    echo "".$username."用户您好!您购买的订单如下:

"; echo "".implode(',',$checkbox).""; }else{ js_alert("请选择您需要购买的商品!",'#'); } }

 

可以看到如果referer字段的值如果不包括和host字段的值会购买失败,那么我们可以怎么伪造绕过这个referer限制呢

 

我们可以把文件名设置为host的内容,这样就绕过检测了,例如这里我们的host值是

 CSRF漏洞实战靶场笔记_第15张图片

那我们的csrf poc的文件名可以设置为www.csrf_demo.com.html

CSRF漏洞实战靶场笔记_第16张图片

 

ok,绕过了这个限制还需要解决一个问题,如果是直接发html给管理,他在本地打开文件是没有Referer这个http头的,那我们就需要把这个html上传到网站上。这里我就上传在靶场,实战中肯定是一个外网可以访问的攻击网站,这个不影响实验。

CSRF漏洞实战靶场笔记_第17张图片

 

这样构造url发送给管理,

http://www.csrf_demo.com/www.csrf_demo.com.html

 CSRF漏洞实战靶场笔记_第18张图片

csrf攻击成功。

 CSRF漏洞实战靶场笔记_第19张图片

 

 

 

 

 0x04 配合XSS漏洞获取token后进行csrf攻击(伪造添加成员请求)

CSRF漏洞实战靶场笔记_第20张图片

 

这关用了防csrf的token。具体含义自己百度,token简单的来说就是防止表单重复提交和csrf攻击,每次页面提交都会带上token值,token值每次页面提交的都不同,是唯一的令牌,服务器后端会验证这个token来验证你的请求是否是csrf伪造的。

 

 

 那我们在实战中怎么绕过这个token呢,csrf单独是无法获得token的,所以必须配合xss来完成。

 exp:



  

攻击思路是当受害者点击进入这个页面,脚本会通过一个看不见框架偷偷访问修改密码的页面,获取页面中的token,点击按钮后并向服务器发送改密请求,以完成CSRF攻击。

 

 

你可以把exp放在网站的目录下。然后发送给admin(这里我们就自己登录admin账号,点击csrf的连接)

CSRF漏洞实战靶场笔记_第21张图片

 

使用admin账号访问这个文件:http://www.csrf_demo.com/exp.html

点击按钮后发现 伪造请求成功。

CSRF漏洞实战靶场笔记_第22张图片

 

 也可以保存为html,以文件的形式发过去,

CSRF漏洞实战靶场笔记_第23张图片

 

 

 CSRF漏洞实战靶场笔记_第24张图片

也是可以成功的

转载于:https://www.cnblogs.com/-qing-/p/11019335.html

你可能感兴趣的:(CSRF漏洞实战靶场笔记)