记一次 Linux 命令执行绕过
Contents
今天遇到一个有意思的 Linux 命令执行绕过分享一下。
某网络设备后台有个 Ping 功能,命令执行无回显,使用
|
|
dnslog 收到请求,因此 icmp、dns 出网。
但是进一步命令执行的时候发现存在很多替换为空的过滤。
第一步绕过,cp 命令读取源码。
|
|
ping.php 中存在参数过滤函数,并且使用 exec() 命令执行因此无回显。
根据include包含的文件必然能找到过滤函数所在的文件。
|
|
过滤如下
|
|
第二步绕过,sed 删除过滤行。
which 存在wget,尝试 wget 发现 tcp 不出网。
后来想到 sed,可以增加删除替换,但是增加和替换 php 代码都需要用到标点,于是去删除过滤函数中的过滤代码(注意事先 cp 备份)。
|
|
最后,写入 webshell。
先写个一句话,phpinfo 发现是 php5.2 的,shell连接工具的加密别选 aes,或者直接上个大马。
|
|
其他思路
当时另一个思路就是后台还有日志功能,可以考虑写入shell到日志文件,再 cp 到 web 目录,因为 sed 成功了就没去试。
想听听大家有什么其他的可行思路。
抱拳了.jpg
Author niudaii
LastMod 2021-07-16