修改哪个请求头可以伪造请求ip_被忽视的漏洞CSRF跨站请求伪造

人类才是最大的bug

1e1cdede-102d-eb11-8da9-e4434bdf6706.svg 42aa45340cce4985635a5b27be74dc10.png 58df3a8469b7308c55b2e7d56b2da65b.gif

起因

几天前,有位师傅联系我询问CSRF的事,最近也刚好在学习CSRF,就弄出一篇文章出来吧。

05e68a6cba368b1598d7eb41de50f7f1.png 06a61b3e850b4e39d86f8e0eb581ad3e.png

01

5b20546920e99b0e4f536c4465b9a332.gif

CSRF简介

CSRF(跨站请求伪造),是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

02

5b20546920e99b0e4f536c4465b9a332.gif

Cookie 

这里需要了解一个概念,cookie,一串字符串,是网站辨别用户的标识,也可以这样理解,拿到了某用户在某网站的cookie,我就可以登录他在那个网站的账号。

8e25efc532c840c95e8669709b5ac93b.png

这里扯一嘴,偷取cookie是XSS做的事,CSRF的作用是借用cookie,并不能获取cookie。

03

5b20546920e99b0e4f536c4465b9a332.gif

原理    

我是这样理解CSRF的,它通过构造一个poc,让已经登录某网站的用户访问,这个poc便会以该用户的cookie来操作网站,对于那个受害者来说,他点击了我的链接,浏览器就偷偷进行了一些操作。

04

5b20546920e99b0e4f536c4465b9a332.gif

危害    

攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

05

5b20546920e99b0e4f536c4465b9a332.gif

检测CSRF漏洞

检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。当然也可以像我这样,看看有没有Token字段,没有就先认为存在。(Token是一种防御CSRF的机制,也是目前使用相对较好的防御方法,会在下面进行解释)

06

5b20546920e99b0e4f536c4465b9a332.gif

通过CSRF修改受害者信息

1.首先打开靶场

65f6459f20b10f8ce50ab2ecea8f3686.png

2.注册一个新用户

2350dffb2b214bf32bc5ea2e8de0190b.png

3.这是注册成功后的界面,可以看到有个用户管理

106b37fea8ac1640f00d910a12c99f73.png

4.点击我的个人资料,对于我的账号进行一些修改

e240326beea9fe7198565de695f9739d.png b95e539e3689c01118c57c68dbfd2240.png

5.通过burp抓取这个修改包,做成CSRF的poc

d3deae1fbd2dab8260d99e5be89ea4c1.png 890abf9568f843bc06552b5ac110df66.png

6.这里我将代码存在CSRF.html

fe6afcd7f1b3737f4b4f165368542a38.png

7.接下来,我们需要社工,诱骗登录了该网站的受害者点击我们的链接,这里因为是演示,就直接拿我的管理员账号来试试了。首先看看我的admin1的账号信息,这里全部都是admin1。

3ec3801cab8e8defc0b8befe6e31772d.png

8.登录了用户后,(也可以关闭该页面,cookie在登录之后是有一定的存在时间的),在这个浏览器,访问poc的链接

e0e12744c2ecf6616c264c9cb12291f5.png b55c89c8edd5ad097653a800ce6bb968.png

9.点击按钮之后,回去看我的账号信息,已经变成了刚刚我做成的poc的内容

618071ac19877b625798c58094b3c879.png

这就是简单的CSRF的功能,看着好像危害不大的样子,那么接下来让大家看看,通过CSRF来getshell。

07

5b20546920e99b0e4f536c4465b9a332.gif

通过CSRF来getshell

首先先了解两个基本概念:

什么是shell?

shell就是一个脚本文件,我们通过这个脚本文件来管理或者控制服务器的文件、数据库等信息。

如何getshell?

目的是将脚本文件上传到服务器,并让服务器解析。脚本文件可以是asp、php、jsp等。

具体流程:

1.首先打开我本机上的某cms的后台

1328fb850ec75141c1cb5b0b9c05f700.png

2.通过上传一句话木马构造CSRFpoc

88d8a3393f099db3f352cb6331e173e8.png 77e3e34394ed1f9877bdfbacac5e940a.png

3.将poc保存为html文件,这里我进行了一些配置,设置页面为打开直接自动点击。

6c01e931f6b1600ab641e3d7f6c5670a.png

4.到靶机处,登录它的网站,可以看到,这个网站的ip为靶机的,这个网站与我构造poc  的网站不是同一个。

3ef10d50d495323fc30d5c5df4390243.png

5.接下来,通过靶机访问构造好的html

95c597f264d8100f6ca724220a3c0d4b.png

6.点击之后,一闪而过了保存文件的界面之后跳出了文件管理器,看到IP知道文件已经保存成功了。

0dff3a6542fab0be02b7c6ad29c4a197.png

还是验证一下吧,回去之前那个页面刷新后发现确实保存成功了

772c08c0537352f51429749f12a2c1ec.png

7.现在也就是说我已经将木马文件放到对方的服务器上了,接下来回到本机,连接菜刀,成功拿下服务器!

8aa6d54bc744cf435fd5be4bd71c05b1.png 8fbc3a072371d9eeaae4e9b270f9f66e.png

08

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

总结思考

CSRF漏洞因为需要受害者点击才能够触发,所以经常不被重视,但是正是这种情况下,CSRF能够造成的危害会比想象中要大。嗯嗯,社会工程学就是高端的欺骗,具体可以百度学习一下。本篇文章就到这里了,对于实验中的环境,工具,有需要的可以添加我的微信获取。

76037020de3a0ca9673c36e41d467d35.gif

精彩推荐:

1.如何偷偷了解女神——ARP毒药

2.Apache-Commons-Collections反序列化漏洞分析

3.闲着无聊拿下个钓鱼网站

4.干货:SQL注入如何绕过waf

作者:ajie

END

b7fbf7e97821d643fcbb920f06d02635.png

有问题随时私聊

微信号:zjj19980203

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值