在我做渗透测试事情的时候,常日探测CSRF漏洞也很大略,也算是个小技巧吧。抓取一个网站的POST要求,删除Referer字段(无Origin字段,有就删),进行重放即可,如果数据包任然能够正常相应,那么就有可能存在CSRF漏洞,为什么不须要删除Cookie呢,由于我们假造这个链接的目的是让用户去点击,便是须要利用他们的cookie,而它作为一个用户的凭据,删除的话,那当然什么事情都做不了。
这里再对CSRF漏洞做下哀求,有人说没有校验Referer字段,不便是可以假造表单数据,存在CSRF漏洞了嘛,但是,我们找漏洞是须要有利用代价的,你不能随便假造一个表单数据链接就可以,你假造表单改变的数据你自己都不知道利用代价,那怎么行。以是你会看到提交的那些CSRF漏洞,大多数都是新增管理员、修正密码什么的这些有利用代价的。
在说一些细的点,除了上面这些,有些表单数据,它会通过Origin字段校验来防止CSRF,也有的你会看到URL上还有些部分Cookie字段,还有的会额外添加token字段,这些都是能防止CSRF漏洞有效手段。

说完探求CSRF漏洞技巧之后,不来点CVE压压惊怎么行。本次复现漏洞是基于php环境的国产八哥BageCMS系统,漏洞编号CVE-2018-19560。
系统任然放在phpstudy里就行,安装这种东西,照着百度,跳过。我们进入八哥系统的后台,Burpsuite抓包,任意找一个POST传输办法的数据,然后发送到repeater里面重放,这里可以看到我删除了原来存在的Referer和Origin字段,记住,cookie字段无需删除,重放数据依然成功,这就解释极有可能存在CSRF漏洞。
好了,那么我们现在进入到有利用代价的后台修正密码页面,原来我的账户密码admin和passwd,现在我们修正密码为root,抓包,这里数据包不须要发送。
我们发送到repeater模块,我们删除Origin和Referer字段,我们创造表单数据相应依然成功,这里我们就可把它认作是一个CSRF漏洞了,通过这个漏洞达到可以变动用户账户密码的目的。
这里我们再直接展示下漏洞的利用,在刚repeater字段要求包鼠标右键有个集成工具Engagement tools里有个形成CSRF的POC,这里我们可以看下POC,它是将原来的POST数据包的数据以input标签办法的表单要求。密码值为root,类型为hidden隐蔽属性也便是不展示,只有一个按钮,我们点击下面的Copy HTML按钮,将我们的POC复制放入a.txt文件里,变动后缀名为.html。
这里我们得到的.html文件实际上便是攻击者利用这个漏洞假造的链接,也是用来领导用户去点击这个假造链接,用户在登录后台的情形下,我们用同个浏览器去打开这个HTML网页文件,点击按钮,这个便是我们假造的URL链接,当然实际黑客不可能搞这么明显领导用户去点击,人又不是傻子,肯定是经由精心布局让人去点的,这里只是演示,这里我们点击按钮后,页面展示修正成功字样。
之后,我们验证用原密码passwd登录不进去,root才能登录进去,这便是由于你无意中点了这个按钮(明明便是故意的!),表单值属性都设未隐蔽的,你的密码也是由于这个按钮变动,从而达到了黑客利用你自己的cookie去修正他想要的密码目的,这便是CSRF,即跨站要求假造漏洞。
为什么网站要对Referer字段进行校验,这是为了防止你无意点击恶意链接从而做出变动敏感权限操作,为什么添加token字段,由于Referer有时也可能假造,但是token字段你缺假造不出来。