CSRF原理图解
知识点
CSRF解释、原理:
CSRF(Cross-site request forgery)跨站请求伪造,由客户端发起,是一种劫持受信任用户向服务器发送非预期请求的攻击方式,与XSS相似,但比XSS更难防范,常与XSS一起配合攻击。
原理详解:
攻击者盗用了你的身份信息,以你的名义发送恶意请求,对服务器来说这个请求是你发起的,却完成了攻击者所期望的一个操作
XSS 利用站点内的信任用户,盗取cookie
CSRF通过伪装成受信任用户请求受信任的网站
利用目标用户的合法身份,以目标的名义执行某些非法参数
利用条件:已经登录系统,用户访问URL,已存在的网站中允许用户跳转
防御方案:
1.当用户发送重要的请求时需要输入原始密码
2.设置随机Token
3.检测referer来源,请求时判断请求连接是否为当前管理员正在使用的页面(管理员在编辑文章,黑客发来恶意的修改密码链接,因为修改密码页面管理员并没有在操作,所以攻击失败)
4.设置验证码
5.限制请求方式只能为POST
SSRF思维导图
知识点
SSRF漏洞解释,原理等
SSRF漏洞检测,案例,防御等
漏洞攻击:端口扫描,指纹识别,漏洞利用,内网探针等
SSRF危害:
- 扫描内网
- 向内部任意主机的任意端口发送精心构造的Payload
- DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
- 攻击内网的web应用,主要是使用GET参数就可以实现的攻击(比如struts2,sqli等)
- 利用file协议读取本地文件等
各个协议调用探针:http,file,dict,ftp,gopher等
- http:192.168.64.144/phpmyadmin/
- file:///D:/www.txt
- dict://192.168.64.144:3306/info
- ftp://192.168.64.144:21
附:常用语言支持的协议
本课重点:
- 案例1:Pikachu_CSRF案例及Burp检测
- 案例2:Pikachu_CSRF防御Token测试
- 案例3:SSRF_PHP,JAVA漏洞代码协议运用
- 案例4:SSRF_漏洞代码结合某漏洞利用测试
- 案例5:SSRF实战——图片加载翻译转码等应用说明
案例1:Pikachu_CSRF案例及Burp检测
pikachu靶场-CSRF(get)-测试过程:
1.登录pikachu-CSRF(get)模块,修改个人信息,抓包,得到修改个人信息数据包:http:127.0.0.1:8080/update?email=hack@qq.com
2.在攻击者网站上(192.168.33.4),写一个index.html页面,内容如下:
<script src=http:127.0.0.1:8080/update?email=hack@qq.com></script>
3.在用户浏览器登录pikachu情况下,诱使用户访问攻击者的链接:192.168.33.4/index.html,页面返回为空。
4.用户以为访问了一个空页面,但其实个人信息已经被偷偷修改。原因是index.html页面携带了用户的cookie发起了http:127.0.0.1:8080/update?email=hack@qq.com请求,而这对于用户来说是不可见的。
CSRF(Post)漏洞可以使用burp-Generate CSRF Poc模块测试:
一般我们使用csrf漏洞来修改信息或者添加用户等。因此,一般在修改、添加功能处检测是否有CSRF漏洞。
案例2:Pikachu_CSRF防御Token测试
案例3:SSRF_PHP,JAVA漏洞代码协议运用
漏洞代码
界面:
利用
- 本地图片上传:没啥可利用的
- 远程图片上传:远程上传的时候,会让用户输入一个远程的地址,比如说http://www.xxxx.com/aaa.jpg这个地址是个图片,那么服务端就回去访问这个地址。
端口扫描:如果把这个图片地址恶意利用,请求本地mysql端口:比如127.0.0.1:3306,就会返回mysql版本信息。
内网探针:比如让服务器请求自己已经打开的虚拟机,类比到内网之中,就实现了内网探测。内网ip可以用字典跑,一般都是192.168.xxx.xxx,端口用常见的端口就可以了。
还可以使用各个协议调用探针:http,file,dict,ftp,gopher等
- http:192.168.64.144/phpmyadmin/
- file:///D:/www.txt
- dict://192.168.64.144:3306/info
- ftp://192.168.64.144:21
案例4:SSRF_漏洞代码结合某漏洞利用测试
<1>探针内网主机
返回如下,说明主机存活
<2>探针8080端口
返回如下,说明8080端口存在,且存在HFS服务。
<3>网上搜索HFS相关漏洞,发现HFS存在远程命令执行漏洞。找到payload,将payload放在图片地址处,点击提交。成功新增一个用户。payload如下
案例5:SSRF实战——图片加载翻译转码等应用说明
可以百度搜索:上传网络图片,在这种功能点处测试是否有SSRF漏洞。
比如,下面位置处,可能存在SSRF漏洞。
涉及资源:
https://pan.baidu.com/s/1bp96ECJ
https://www.t00ls.cc/articles-41070.html
https://blog.csdn.net/qq_50854790/article/details/122244662