[NewStarCTF 2023 公开赛道]Include 🍐
上来看到源码如下
1 |
|
传一个phpinfo看看是什么
一个假的flag,不过这是个提示,那我们看一下register_argc_argv是什么玩意
开启状态,那我就得查查资料了,这个register_argc_argv的作用
直接放文章链接:https://cloud.tencent.com/developer/article/2204400 https://www.cnblogs.com/Yu--/p/15788689.html https://blog.csdn.net/weixin_53090346/article/details/127241278
这个主要是用的是包含pearcmd.php这个文件来执行命令,然后借用大佬的图哈
可以看到,里面有一个config-create参数,这个就是去创建文件的命令,不过要用+来隔开(底层原因:https://xz.aliyun.com/t/11089?time__1311=Cq0x2Qi%3Domq7qGNDQieiKO%2BmjowcGAbD#toc-0)
1 | 所以,构造我们的payload |
注意:用BP进行操作,不然在浏览器中<>就会被URL编码,就会导致我们的马不管用了
然后,POST传入执行命令
1 | ?file=./a |
本题考查的是LFI文件包含和RCE的结合,关键点是在pearcmd.php上,不过这种使用方法只能是register_argc_argv开启状态才行。不过如果可以上传文件的话,可以进行上传容器配置文件来改变关闭状态(参考:https://cloud.tencent.com/developer/article/2204400)
当然,LFI可以做的事还很多比如还可以提权(参考文章:https://www.freebuf.com/articles/web/253102.html)