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://www.cnblogs.com/happystudyhuan/p/11802961.html
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请求,可以更改
构造脚本
<script src="http://127.0.0.1//pikachu-master//pikachu-master//vul//csrf//csrfget//csrf_get_edit.php?sex=11&phonenum=11111&add=1111&email=1111&submit=submit"></script>
诱导用户点击,注意的是用户要用同一浏览器才行,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 实战_图片加载翻译转码等应用说明
被修复
标签:10,请求,用户,漏洞,dict,CSRF,攻击者,伪造 来源: https://www.cnblogs.com/bigcrucian/p/15912934.html