CSRF
CSRF
-
所谓网站的交互,任何功能都是发送数据包实现的
- 想要篡改A网站某用户的个人信息
- 搭建了一个B网站,然后JS留了修改A网站个人资料的数据包
- 骗取浏览B网站的某用户在登录A网站的情况下来访问
- 无意访问了B,js调用修改信息代码发送个给A
- 浏览器发现是访问A网站的会把这个用户在A网站已登录成功的Cookie添加到数据包
- A网站一看你的Cookie正确,就会认为你是本人,会修改成功
-
流程
graph LR A网站 --> 用户登录有A的Cookie B网站 --> 黑客创建的网站 黑客创建的网站 --> A[JS代码 修改A网站的个人信息的] 用户 --> |访问| B[黑客搭建的网站] B --> 网站会执行JS代码,达到修改用户个人信息的效果 -
成因
- CSRF漏洞的成因就是网站的cookie在浏览器关闭时不会过期
- cookie一般的过期时间是一次会话,一次会话就是关闭浏览器
- cookie存在于浏览器中,你可能不止访问一个网站,所以浏览器中的cookie不止一个
- 当访问网站的时候,浏览器会判定你访问的时什么站,发送相应的数据包,其中包含该网站的Cookie
-
注意:
XSS 偷cookie CSRF 利用cookie ,浏览器会自动填充cookie -
CSRF的核心
-
验证码是他最好的防御方法
修改密码,需要数验证码,任何操作都价格验证码可以完全杜绝CSRF
-
token字段
开发为了安全,设置了一个,每个请求表单中都存在一个字段,这个字段就是token
-
-
如何判断某网站是否存在csrf
-
注册一个账号
-
通过burp抓取 修改个人信息的数据包
-
使用burp工具生成CSRF攻击代码(右键数据包-相关工具-CSRF Poc 生成)
-
复制生成的代码、另存为1.html文件
-
使用浏览器打开1.html文件
-
-
特殊函数
- Referer字段:告诉服务器我是从哪个网站跳转过来的
- setTimeout函数:延时执行
- Iframe:内敛标签
- 通过修改高度和长度,达到隐藏效果
- php可以调用cmd,php shell 有时候会变成cmd shell
-
如何判断某网站是否存在csrf
-
注册一个账号
-
通过burp抓取 修改个人信息的数据包
-
使用burp工具生成CSRF攻击代码(右键数据包-相关工具-CSRF Poc 生成)
-
复制生成的代码、另存为1.html文件
-
使用浏览器打开1.html文件
-
-
攻击流程
-
注册两个号进行抓包测试
-
抓包查看是否有token(如果有,尝试找找规律,一般有token都是随机的)
-
抓包构建CSRF攻击代码,burp右键的相关工具 CSRF Poc
-
构建好的Poc保存为html文件,进行点击尝试修改
如果想要让它自己触发,加上下面代码就会自动触发
<iframe src="攻击代码.html" width="0" height="0">
-

浙公网安备 33010602011771号