BABYBYPASS

安恒杯月赛  babypass   getshell不用英文字母和数字-LMLPHP

最后提示有个getFlag()函数,从这个函数入手。

用到的知识点

linux通配符

*代表任意个字符,?代表一个字符

php短标签

可以用<?='命令'?>。这样就不用写绕过了这部分的英文字母

一切皆文件

我们linux用到的命令例如ls,cat等命令都是文件,存放于/bin目录下面,也可以这样使用/bin/cat /bin/ls。

apache默认存放网页的路径

/var/www/html ,现在有很多一键安装的面板wdlinux和phpstudy等目录会改变。

一步一步分析

①现在假设代码是这样的(本地试了下)没有任何过滤

安恒杯月赛  babypass   getshell不用英文字母和数字-LMLPHP

这种情况我们直接

或者

也可以用短标签试一下:

细节:

安恒杯月赛  babypass   getshell不用英文字母和数字-LMLPHP

②现在代码做了过滤,过滤了英文数字_$和长度,就是原来的题目。

因为执行的系统命令,我们可以用linux通配符

那 =?><?=`/???/??? /???/???/????/*`;?>

为什么要用`而不是',浏览器会进行编码破坏掉了',而`可以作为'使用但是不会被编码

05-11 22:20
查看更多