文章目录
什么是SSRF
- 服务器端请求伪造(
SSRF)是指攻击者能够从易受攻击的Web应用程序发送精心设计的请求的对其他网站进行攻击。(利用一个可发起网络请求的服务当作跳板来攻击其他服务)。 CSRF(跨站/客户端请求伪造) => 浏览器因为Js偷偷的发送数据包
SSRF(服务器端请求伪造) => 服务器因为你的传参偷偷发送数据包- 攻击者能够利用目标帮助攻击者访问其他想要攻击的目标,即
A让B帮忙访问C。

SSRF的危害
-
扫描内部网络。
mysql -h 主机地址 -u 用户名 -p 用户密码 -
隐藏攻击者【当做跳板机来躲避追踪】。
-
攻击目标本机【
dict://探测端口的协议、file://读取文件的协议】。


注意: PHP代码


-
向内部任意主机的任意端口发送精心构造的数据包。
-
DOS攻击。 -
SSRF+XSS【http://kypt8004.ia.aqlab.cn/FeedbackView.asp这个网址本身具有XSS漏洞】,即可读取目标网站源码。

注意
- 有些网站对
127.0.0.1的访问是不设防的。 WAF【架在公网设备上】不会拦截你的SSRF攻击。- 传参在中存在
http请求,说明可能存在SSRF漏洞。
SSRF核心代码
<?php
$URL = $_GET['url'];
$CH = CURL_INIT();
CURL_SETOPT($CH, CURLOPT_URL, $URL);
CURL_SETOPT($CH, CURLOPT_HEADER, FALSE);
CURL_SETOPT($CH, CURLOPT_RETURNTRANSFER, TRUE);
CURL_SETOPT($CH, CURLOPT_SSL_VERIFYPEER, FALSE);
CURL_SETOPT($CH, CURLOPT_FOLLOWLOCATION, TRUE);
$RES = CURL_EXEC($CH);
CURL_CLOSE($CH);
echo $RES;
?>

核心: 穿过防火墙,攻击内网。

练习
- 我们尝试用提示的网址,发现url传参。

- 尝试使用
dict协议扫描目录,http://ud768019.ia.aqlab.cn/index.php?url=dict://127.0.0.1:81,发现存在81端口。【使用burp即可跑出81端口】 - 我们尝试访问一下,发现页面返回空白,查看源码,即可在源码中发现flag。


- 但需要注意一点,我们直接在
url栏中访问81端口是访问不到的,因为我们用127.0.0.1:81端口,是当前存在SSRF漏洞主机的81端口,而我们在url栏的http://ud768019.ia.aqlab.cn:81/是指这个域名IP对应的81端口,这两者不一样。










