注意:
1、这里对XSS(Stored)关卡不熟悉的可以从这里去看http://t.csdn.cn/ggQDK
2、把难度设置成low
一、概述
1、定义
跨站请求伪造,攻击者利用服务器对用户得新人,从而欺骗受害者去服务器上执行受害者不知晓得请求。
2、场景
攻击者会伪造一个请求(一般为链接),然后欺骗用户去点击,一但点击,整个攻击就形成了,所以也被称之为onclick攻击
3、它与xss的区别:
1、 XSS的攻击:主要是让脚本在浏览器上执行,服务器仅仅只是脚本的载体,本身服务器端不会受到攻击利用。
2、 CSRF的攻击:攻击者会伪造一个用户发送给服务器的正常连接,其核心主要和已登录(已认证)的用户去发请求,CSRF不需要知道用户的Cookie,一切行为都是用户在执行(但是并不知晓)
1、 XSS是将恶意代码植入被攻击服务器,利用用户对服务器的新人完成攻击。
2、CSRF是攻击者预先在傀儡服务器页面植入恶意代码,诱使用户访问,在受害者不知情的情况下执行了恶意代码。
4、攻击要点
- 服务器没有对操作来源进行判断(比如IP,Referer等)
- 受害者处于登录状态
- 攻击者需要找到一条可以修改或获取敏感信息的请求
二、实操
1、至少准备两台有web环境的电脑。打开burp suite,然后进入靶场DVWA-CSRF关卡。
思路:这个界面是一个修改密码的界面,它为什么会存在CSRF,其实类比我们平时的修改密码的业务可以想到。我们在修改密码时候需要进行旧密码校验,而这里只需要输入新密码就可以修改。所以可以利用这一点,来诱导用户通过某种方式来提交修改密码的连接来完成CSRF的攻击。
2、提交修改密码,使用burp截取数据包。从数据包中也可以看到这是一个GET请求,而且用户名密码都在GET请求中。
直接使用burp来生成一个粗糙的poc
3、从里面我们可以看到这个CSRF HTML中,它把所有的按钮和提交的数据都隐藏了,并且只剩下一个按钮。
4、在本地或者攻击主机上写一个csrf.html,然后把代码复制进去。是这样一个界面。
5、在界面注入一个XSS来诱导用户点击。可以一般是存储型的XSS(Stored),来这里放一个鱼儿。等鱼儿上钩
- 在XSS(Stored)关卡布置陷阱
<button><a href="http://xxx.xxx.xxx.xxx/CSRF.html">是兄弟就来点我</a></button>
- 结果:这个陷阱一看就很诱人!
6、我们点击进去可以看到,弹到了我们的那个提交框,当我提交按钮的时候,当前用户的密码就会被我修改。抓包看一下
这个就是我们写好的csrf.html的界面
点提交。
换句话说,只要有用户进去点击了这个连接和按钮,那么当前用的密码都会被修改成12581(攻击主机上的CSRF.html中的值)
如果要神不知鬼不觉。
三、逐渐开始猥琐!
从数据包我们可以看到,其实就是提交了一个get连接。那么我们可以这样来修改。直接把连接塞进去。并且插入一张百度搜索的图片链接地址来诱惑用户点击。
<a href="http://192.168.100.5/vulnerabilities/csrf/?password_new=9999&password_conf=9999&Change=Change"><img src="https://img0.baidu.com/it/u=2265573730,270758597&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=350"></a>
看这标题,用户就一定会点吧。
点击图片并截获数据包查看。
此时密码就已经被修改为9999。!