人类才是最大的bug
![42aa45340cce4985635a5b27be74dc10.png](https://img-blog.csdnimg.cn/img_convert/42aa45340cce4985635a5b27be74dc10.png)
![58df3a8469b7308c55b2e7d56b2da65b.gif](https://img-blog.csdnimg.cn/img_convert/58df3a8469b7308c55b2e7d56b2da65b.gif)
起因
几天前,有位师傅联系我询问CSRF的事,最近也刚好在学习CSRF,就弄出一篇文章出来吧。
![05e68a6cba368b1598d7eb41de50f7f1.png](https://img-blog.csdnimg.cn/img_convert/05e68a6cba368b1598d7eb41de50f7f1.png)
![06a61b3e850b4e39d86f8e0eb581ad3e.png](https://img-blog.csdnimg.cn/img_convert/06a61b3e850b4e39d86f8e0eb581ad3e.png)
01
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
CSRF简介
CSRF(跨站请求伪造),是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
02
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
Cookie
这里需要了解一个概念,cookie,一串字符串,是网站辨别用户的标识,也可以这样理解,拿到了某用户在某网站的cookie,我就可以登录他在那个网站的账号。
![8e25efc532c840c95e8669709b5ac93b.png](https://img-blog.csdnimg.cn/img_convert/8e25efc532c840c95e8669709b5ac93b.png)
这里扯一嘴,偷取cookie是XSS做的事,CSRF的作用是借用cookie,并不能获取cookie。
03
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
原理
我是这样理解CSRF的,它通过构造一个poc,让已经登录某网站的用户访问,这个poc便会以该用户的cookie来操作网站,对于那个受害者来说,他点击了我的链接,浏览器就偷偷进行了一些操作。
04
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
危害
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
05
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
检测CSRF漏洞
检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。当然也可以像我这样,看看有没有Token字段,没有就先认为存在。(Token是一种防御CSRF的机制,也是目前使用相对较好的防御方法,会在下面进行解释)
06
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
通过CSRF修改受害者信息
1.首先打开靶场
![65f6459f20b10f8ce50ab2ecea8f3686.png](https://img-blog.csdnimg.cn/img_convert/65f6459f20b10f8ce50ab2ecea8f3686.png)
2.注册一个新用户
![2350dffb2b214bf32bc5ea2e8de0190b.png](https://img-blog.csdnimg.cn/img_convert/2350dffb2b214bf32bc5ea2e8de0190b.png)
3.这是注册成功后的界面,可以看到有个用户管理
![106b37fea8ac1640f00d910a12c99f73.png](https://img-blog.csdnimg.cn/img_convert/106b37fea8ac1640f00d910a12c99f73.png)
4.点击我的个人资料,对于我的账号进行一些修改
![e240326beea9fe7198565de695f9739d.png](https://img-blog.csdnimg.cn/img_convert/e240326beea9fe7198565de695f9739d.png)
![b95e539e3689c01118c57c68dbfd2240.png](https://img-blog.csdnimg.cn/img_convert/b95e539e3689c01118c57c68dbfd2240.png)
5.通过burp抓取这个修改包,做成CSRF的poc
![d3deae1fbd2dab8260d99e5be89ea4c1.png](https://img-blog.csdnimg.cn/img_convert/d3deae1fbd2dab8260d99e5be89ea4c1.png)
![890abf9568f843bc06552b5ac110df66.png](https://img-blog.csdnimg.cn/img_convert/890abf9568f843bc06552b5ac110df66.png)
6.这里我将代码存在CSRF.html
![fe6afcd7f1b3737f4b4f165368542a38.png](https://img-blog.csdnimg.cn/img_convert/fe6afcd7f1b3737f4b4f165368542a38.png)
7.接下来,我们需要社工,诱骗登录了该网站的受害者点击我们的链接,这里因为是演示,就直接拿我的管理员账号来试试了。首先看看我的admin1的账号信息,这里全部都是admin1。
![3ec3801cab8e8defc0b8befe6e31772d.png](https://img-blog.csdnimg.cn/img_convert/3ec3801cab8e8defc0b8befe6e31772d.png)
8.登录了用户后,(也可以关闭该页面,cookie在登录之后是有一定的存在时间的),在这个浏览器,访问poc的链接
![e0e12744c2ecf6616c264c9cb12291f5.png](https://img-blog.csdnimg.cn/img_convert/e0e12744c2ecf6616c264c9cb12291f5.png)
![b55c89c8edd5ad097653a800ce6bb968.png](https://img-blog.csdnimg.cn/img_convert/b55c89c8edd5ad097653a800ce6bb968.png)
9.点击按钮之后,回去看我的账号信息,已经变成了刚刚我做成的poc的内容
![618071ac19877b625798c58094b3c879.png](https://img-blog.csdnimg.cn/img_convert/618071ac19877b625798c58094b3c879.png)
这就是简单的CSRF的功能,看着好像危害不大的样子,那么接下来让大家看看,通过CSRF来getshell。
07
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
通过CSRF来getshell
首先先了解两个基本概念:
什么是shell?
shell就是一个脚本文件,我们通过这个脚本文件来管理或者控制服务器的文件、数据库等信息。
如何getshell?
目的是将脚本文件上传到服务器,并让服务器解析。脚本文件可以是asp、php、jsp等。
具体流程:
1.首先打开我本机上的某cms的后台
![1328fb850ec75141c1cb5b0b9c05f700.png](https://img-blog.csdnimg.cn/img_convert/1328fb850ec75141c1cb5b0b9c05f700.png)
2.通过上传一句话木马构造CSRFpoc
![88d8a3393f099db3f352cb6331e173e8.png](https://img-blog.csdnimg.cn/img_convert/88d8a3393f099db3f352cb6331e173e8.png)
![77e3e34394ed1f9877bdfbacac5e940a.png](https://img-blog.csdnimg.cn/img_convert/77e3e34394ed1f9877bdfbacac5e940a.png)
3.将poc保存为html文件,这里我进行了一些配置,设置页面为打开直接自动点击。
![6c01e931f6b1600ab641e3d7f6c5670a.png](https://img-blog.csdnimg.cn/img_convert/6c01e931f6b1600ab641e3d7f6c5670a.png)
4.到靶机处,登录它的网站,可以看到,这个网站的ip为靶机的,这个网站与我构造poc 的网站不是同一个。
![3ef10d50d495323fc30d5c5df4390243.png](https://img-blog.csdnimg.cn/img_convert/3ef10d50d495323fc30d5c5df4390243.png)
5.接下来,通过靶机访问构造好的html
![95c597f264d8100f6ca724220a3c0d4b.png](https://img-blog.csdnimg.cn/img_convert/95c597f264d8100f6ca724220a3c0d4b.png)
6.点击之后,一闪而过了保存文件的界面之后跳出了文件管理器,看到IP知道文件已经保存成功了。
![0dff3a6542fab0be02b7c6ad29c4a197.png](https://img-blog.csdnimg.cn/img_convert/0dff3a6542fab0be02b7c6ad29c4a197.png)
还是验证一下吧,回去之前那个页面刷新后发现确实保存成功了
![772c08c0537352f51429749f12a2c1ec.png](https://img-blog.csdnimg.cn/img_convert/772c08c0537352f51429749f12a2c1ec.png)
7.现在也就是说我已经将木马文件放到对方的服务器上了,接下来回到本机,连接菜刀,成功拿下服务器!
![8aa6d54bc744cf435fd5be4bd71c05b1.png](https://img-blog.csdnimg.cn/img_convert/8aa6d54bc744cf435fd5be4bd71c05b1.png)
![8fbc3a072371d9eeaae4e9b270f9f66e.png](https://img-blog.csdnimg.cn/img_convert/8fbc3a072371d9eeaae4e9b270f9f66e.png)
08
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
防御CSRF
1.验证 HTTP Referer 字段
根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。这种验证方法通过查看referer来验证CSRF攻击的数据包是否是用户自己的操作,当然因为可以伪造referer,所以现在比较没有那么流行。
2.Token机制
可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。一般为了预防CSRF或者其他攻击,都能够在抓包处发现存在token字段,有的是get传参,有的是post传参。token 可以在用户登陆后产生并放于 session 之中,然后在每次请求时把 token 从 session 中拿出,与请求中的 token 进行比对,如果token一样,则执行操作,token不一样就不予执行。
3.在 HTTP 头中自定义属性并验证
09
![5b20546920e99b0e4f536c4465b9a332.gif](https://img-blog.csdnimg.cn/img_convert/5b20546920e99b0e4f536c4465b9a332.gif)
总结思考
CSRF漏洞因为需要受害者点击才能够触发,所以经常不被重视,但是正是这种情况下,CSRF能够造成的危害会比想象中要大。嗯嗯,社会工程学就是高端的欺骗,具体可以百度学习一下。本篇文章就到这里了,对于实验中的环境,工具,有需要的可以添加我的微信获取。
![76037020de3a0ca9673c36e41d467d35.gif](https://img-blog.csdnimg.cn/img_convert/76037020de3a0ca9673c36e41d467d35.gif)
精彩推荐:
1.如何偷偷了解女神——ARP毒药
2.Apache-Commons-Collections反序列化漏洞分析
3.闲着无聊拿下个钓鱼网站
4.干货:SQL注入如何绕过waf
作者:ajie
END
![b7fbf7e97821d643fcbb920f06d02635.png](https://img-blog.csdnimg.cn/img_convert/b7fbf7e97821d643fcbb920f06d02635.png)
有问题随时私聊
微信号:zjj19980203