解混淆
把php代码拿到notepad++中去解混淆,可以一步一步的去解(很简单的,就是把混淆的变量名给换成真实的值),也可以直接用现成的解混淆工具去解,网上一大堆解混淆的这里不多说。
最终把shell的密码拿到如图
绕过disable_functions
使用蚁剑连接后,点击任意文件发现报错权限不够
到虚拟终端尝试发现也不行。
这时候我就想到是不是考的是函数禁用,随即就去查看禁用的函数,发现禁用了很多,但是有个关于这题的没禁用,error_log()
然后再检验是否有上传文件的权限,发现是没问题。
LD_PRELOAD变量劫持
我这里因为蚁剑用不了该辅助功能,所以只能手动
这里对于原理不做过多介绍,原理见:无需sendmail:巧用LD_PRELOAD突破disable_functions - FreeBuf网络安全行业门户
编写c语言
编译成可共享链接
将hack.so上传到网站
然后再上传一个php文件,这里的路径一定要有访问权限,一般是/tmp下的,只是这道题是这样
然后就是访问该php文件,目录下就会生成一个txt文件
接下来就是重复刚才的操作,不过是把命令换成读取flag文件,不过我这里遇到了个问题有,重新上传hack.so时要先删除了再上传,不然还是原来的hack.so。