51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【漏洞学习】挖掘CSRF漏洞

0x00前言 {#0x00%E5%89%8D%E8%A8%801628}

上半年就说要写怎么挖csrf漏洞了,主要是懒....后面就忘记写了。今天正好有人问到,索性就写一篇文章出来

0x01 什么是CSRF {#0x01+%E4%BB%80%E4%B9%88%E6%98%AFCSRF7275}

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session
riding,通常缩写为 CSRF 或者 XSRF,
是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS
利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

43574-oz3i4o9flji.png

0x02怎么挖掘 {#0x02%E6%80%8E%E4%B9%88%E6%8C%96%E6%8E%985651}

第一个就是看网站是否存在token,如果存在token的话,可以测试一下这个token是不是摆设(还真遇到过)。如果不是摆设的话,我们还可以去查找是否有接口能够获取到token。如果有的话这个token就相当于可有可无了。
第二个,看完token我们可以尝试一下删除Referer了,如果删除Referer后,该数据包仍然能够执行的话,十有八九这里就存在着漏洞了。如果删除Referer不能正常发送的话,也不用放弃。可以先尝试把POST数据包改成GET数据包(看看能不能正常执行)。然后就可以去尝试找xss漏洞来包含这个get请求,从而也能达到csrf的效果,或者如果有发表文章之类的地方。在加载图片链接等的地方也可以尝试把get请求放进去。这样就形成了蠕虫啦~
86318-6vrcpl84wd6.png

0X03挖掘过程 {#0X03%E6%8C%96%E6%8E%98%E8%BF%87%E7%A8%8B8127}

今天我们拿帝国cms来演示一下具体怎么挖掘。
我们需要,俩个浏览器+俩个账号+burpsuite。
44335-3i7afazlicn.png

抓个包,发现这里没用token限制,那我们删除下Referer试试。
00150-ps31w9jh5q8.png

OKK,正常执行了。接下来我们利用burp生成个CSRF的POC
11105-8ly3xr22x46.png

85656-cbeca6sa89.png

保存到本地生成个poc。接下来换个账号和浏览器登入
99856-ybwty32r95.png

然后点击下poc
63153-pyalvopqlxd.png

60312-zdjyqvjuhjb.png

成功!!!
21152-l7kid58cmd.png

当然,在这个时候肯定就有朋友想到了。这怎么还需要点击???有没有办法让人家打开url后自动发送数据包且让其他人没有察觉?
of course,当然有。我们可以利用js去自动点击。
我们需要魔改一下burp的poc。
这里我们用到了俩个网页(一个页面的话还是会自动跳转就很容易被发现了。),欺骗网页来包含发送数据包的网页
-index.html(用来欺骗的)
-yx666.html(用来发送数据包的)
38506-76nuj9w4bhf.png

65335-ijdpomhjgwi.png

98793-1qitjnri0guh.png

index.html是我下载了百度搜索的页面,然后加上红框中的那句话就能包含了
为了演示效果我把width=0% height=0%改成width=100% height=100% (0%的话就可以完美隐藏了)

46037-9msp8ibfzrb.png

0x04文末 {#0x04%E6%96%87%E6%9C%AB7424}

唔,太简单了(本文在本地复现,请各位不要做非法测试~~~)
55220-kxwidp096j.png

赞(2)
未经允许不得转载:工具盒子 » 【漏洞学习】挖掘CSRF漏洞