来源:http://bbs.ichunqiu.com/thread-9236-1-1.html?from=ch
社区:i春秋
时间:2016年8月4日10:30:00
作者:LoneliNess前言
小编写本文章,只是希望能跟大牛交流交流,让更多人了解它....如有错误,请你雅正!
目录
·第一节 初识CSRF
·第二节 检测CSRF漏洞
·第三节 实战案例及修复方案
·第四节 严正声明
正文
第一节 初识CSRF
1.1、什么是CSRF
CSRF(Cross-site request forgery跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比更具危险性
通俗的讲:攻击者盗用了你的身份,以你的名义进行一些非法操作,CSRF可以让你的账号发送邮件等操作,从而获取你的相关信息
1.2、CSRF攻击原理
一个图解释了一切
例子:当你登录了i春秋的网站,正在进行转账泉币的业务,这时,攻击者像你发了一个url,然而,这个url是攻击者精心构造的转账业务代码,而且是同一个网站,你可能认为是安全的,然后点击了它,but,你的泉币可能不翼而飞 (PS:咱i春秋木有转账功能)
第二节检测CSRF漏洞
检测它的方法有多种,笔者经常用的是全自动的检测方法和半自动的,当然也有手工的
1.1、全自动化检测
CSRF-Scanner,这块工具,缺点真心大,就是误报率太高了,几条中半天挑不出一条,so,小编就不详细的介绍它了
1.2、半自动化检测
CSRFTester
下载地址:https://www.owasp.org/index.php/File:CSRFTester-1.0.zip
1.安装CSRFTester
对,没错,下载下来,打开run.bat就可以打开它了(PS:需要java的环境)
看到这个,你也许会纳闷啥意思,他表示CSRFTester已经在监听8008端口了,你要使用它,必须要将浏览器的端口设置为8008
2.设置浏览器代理(360浏览器为例)
3. 用户登录
单击“Start Recording”,开启CSRFTester的检测工作,这样以后我们所有访问的URL以及参数都会被记录下来。
4. 通过CSRFTester抓取和伪造请求
当你登录一个网站账号时,CSRF Tester会进行抓取
我们抓取了该请求,在Step属性中添加请求,然后将Form Parameter中的eatName改成CSRFTest,然后单击Generate HTML按钮来产生CSRF攻击脚本。
5.分析CSRF攻击脚本
[AppleScript]纯文本查看复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
OWASP CRSFTester Demonstration
var pauses=newArray("406","215","344","390");
function pausecomp(millis)
{
vardate=newDate();
var curDate=null;
do{curDate=newDate();}
while(curDate-date
}
function fireForms()
{
var count=4;
var i=0;
for(i=0; i
{
document.forms.submit();
pausecomp(pauses);
}
}
OWASP CRSFTester Demonstration
https://user.********com:443/login/signin">
https://user.********.com:443/login/verify_image?d=1470218273;">
https://user.**********.com:443/login/selectUserEnt">
https://user.************.com:443/login/signin">
从这段代码中,阔以看出,这款工具把所有属性生成了隐藏的input标签,然后添加了默认值,当访问这个页面时,JavaScript会自动提交这个表单………………
当然,你也可以使用burp中的scanner进行检测………
在任意http请求中,右键,选择Engagement tools –Generate CSRF POC 即可生成CSRFPOC
第三节 实战案例及修复方案
目标:***.***.edu.com
注册账户,发现修改用户名处无验证,直接改密码
Burp抓包,生成CSRF POC
我们可以修改代码中的数据
当前用户密码151515
我们将他修改成123456
提交………..
之后可以看到……修改成功……
修复方案:
1. 二次确认(如弹窗提示)
2. Token认证
第四节 严正声明
本文讨论的技术仅用于研究学习技术交流,严禁用于非法行为和破坏行为,否则造成的一切法律责任与作者以及本网站无关。
本文原创作者:LoneliNess,转载须注明来自i春秋社区(BBS.ichunqiu.com)
结束语:
相信大家一定收获颇丰,请多多支持i春秋,不忘初心,方得始终!!!