CSRF(Cross-site request forgery)跨站请求伪造
CSRF是通过伪装用户的请求来利用网站。利用网站漏洞从用户那里恶意盗取信息
以受害者名义发送邮件,发消息,盗取受害者的账号,甚至购买商品,虚拟货币转账,修改受害者的网络配置(比如修改路由器DNS、重置路由器密码)
造成的问题包括:个人隐私泄露、机密资料泄露、用户甚至企业的财产安全;
盗用受害者身份,受害者能做什么,攻击者就能以受害者的身份做什么。
目标站点或系统存在一个可以进行数据修改或者新增操作,且此操作被提交到后台的过程中,未提供任何身份识别或校验的参数。后台只要收到请求,就立即下发数据修改或新增的操作;存在以上情况说明存在漏洞风险。
出现比较多的场景有:个人资料修改、用户密码的修改、支付、购物地址的修改或后台管理账户的新增、数据库备份等等操作过程中。
CSRF一般与XSS结合使用
恶意攻击者只要将伪装好的“数据修改或新增”的请求发送给被攻击者,或者通过社工的方式诱使被攻击者在其cookie还生效的情况下点击了此请求链接,即可触发CSRF漏洞,成功修改或新增当前用户的数据信息
当前用户在不知情的情况下,访问了黑客恶意构造的页面或在链接,即在非本意的情况下完成黑客想完成的“非法操作”,实现了对当前用户个人信息的恶意操作。
get类型和post类型
Get指的是向某个地方获取一些数据,这个获取的过程可以理解为一个简单的查询,专业名词叫做“幂等”。幂等也就是能够随意多次执行。
get类型的CSRF是CSRF中最常见,危害最大,但也是最简单的一种类型了,只要一个http请求就可以了,这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:
抓包获取请求修改html代码
复制url,写个简单的html文件
0元充值 里面的请求数据可以随意改,然后扔给未登出用户点击即完成攻击
在这里插入图片描述
post是希望服务器做某项操作,也就是不幂等。因为是设计成有影响的操作,所以它不能被缓存。post请求一般都是表单提交,可以在body里面携带数据。
$_REQUEST既可以获取GET请求的数据,也可以获取POST请求的数据;
一般会这样利用:
Bp抓包获取html请求代码,里面的请求数据可以随意改,把我们刚刚复制出来的referer粘贴在这个里面,然后使用Engagement tools-Generate CSRF POC,然后扔给未登出用户点击即完成攻击
应对方法1:跟暴力破解绕过token的方式一样
新密码、确认新密码要设置一样的字典,Grep - Extract 通过正则提取返回信息中的内容
应对方法2:bp插件 下载完成后填一下host和name
复制url,写个简单的csrf.html文件
0元充值 修改请求数据后给前端用户点击 将数据提取出来
复制url,写个简单的csrf2.html文件,随意修改请求数据后给前端用户点击
随意修改上面数据后保存成csrf-post.html给前端用户点击
也是一样被篡改数据了
但是发现要修改的参数太多,不是只是修改密码,不能用爆破的方法,因此这里使用插件CSRF Token Tracker实现
Extender–BApp Store–搜索CSRF Token Tracker–install
装完后主菜单会多出一个选项CSRF Token Tracker
CSRF Token Tracker–host填写127.0.0.1,Name填poc名称,勾选使用
说明也确实被修改成功了
但是发现这里有个问题就是只能重放一次,使用过后Follow redirection就不再出现了,需要重新再来,而且如果修改编码不对也不会出现Follow redirection
显然是get类型的
那就构造链接吧
复制url,写个简单的csrf3.html文件
然后我们登出使用该密码登录
发现确实修改成功了
登出用新密码登录,也成功了,中级的怎么一样的
使用鱼叉模式,用修改密码和token做变量
grep-extract加入找到的token
第二个字典类型选用Recursive gep,并将token黏贴在此处
注意。爆破字典里要有我们修改的密码,如这里的password,否则会全部失败的
http://127.0.0.1/BlueLotus_XSSReceiver-master/
使用默认模块,插入模版,website使用dvwa的当前测试xss界面地址,自定义文件名,最后点下面的新增
复制生成的payload
(需要重新拼接地址,先访问一下
http://127.0.0.1/BlueLotus_XSSReceiver-master/,
再访问http://127.0.0.1/BlueLotus_XSSReceiver-master/admin.php)
https://xssaq.com/?callback=project&act=view&id=12637,登录账号和密码:poilkjmnb,QWE123
点下一步
但是好奇怪的是我这里并没收到cookie
漏洞提交平台
漏洞盒子:https://www.vulbox.com/
补天:https://www.butian.net/
CNVD:https://www.cnvd.org.cn/
教育SRC:https://src.sjtu.edu.cn/
信息收集平台
https://fofa.info/
https://hunter.qianxin.com/
https://www.zoomeye.org/
https://www.shodan.io/
https://quake.360.net/quake/