常用的渗透测试工具
字数 3233 2025-08-10 12:18:06

SQLMap 渗透测试工具详解

1. SQLMap 概述

SQLMap 是一个自动化的 SQL 注入工具,主要功能是扫描、发现并利用给定 URL 的 SQL 注入漏洞。它内置了很多绕过插件,支持多种数据库:

  • MySQL、Oracle、PostgreSQL
  • Microsoft SQL Server、Microsoft Access
  • IBM DB2、SQLite、Firebird
  • Sybase 和 SAP MaxDB

SQL 注入技术

SQLMap 采用 5 种独特的 SQL 注入技术:

  1. 基于布尔类型的盲注:根据返回页面判断条件真假的注入
  2. 基于时间的盲注:通过条件语句查看时间延迟判断是否执行
  3. 基于报错注入:页面返回错误信息或直接返回注入语句结果
  4. 联合查询注入:可使用 Union 情况下的注入
  5. 堆查询注入:可同时执行多条语句时的注入

强大功能

  • 数据库指纹识别
  • 数据库枚举
  • 数据提取
  • 访问目标文件系统
  • 获取完全操作权限时执行任意命令

2. SQLMap 安装

环境要求

  • Python 环境(不支持 Python 3)
  • 推荐 Python 2.7.3

安装步骤

  1. 从官网下载 Python 安装包并安装
  2. 将 Python 安装目录添加到环境变量
  3. 从 SQLMap 官网 (http://www.sqlmap.org) 下载最新版
  4. 将 SQLMap 目录加到环境变量中
  5. 在命令行输入 sqlmap.py 测试运行

3. SQLMap 基础使用

判断是否存在注入

sqlmap.py -u http://192.168.1.104/sql1/Less-1/?id=1

多参数时加双引号:

sqlmap.py -u "http://192.168.1.104/sql1/Less-1/?id=1&uid=2"

从文件加载 HTTP 请求

sqlmap.py -r request.txt

查询当前用户下的所有数据库

sqlmap.py -u http://192.168.1.104/sql1/Less-1/?id=1 --dbs

获取数据库中的表名

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" -D dkeye --tables

获取表中的字段名

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" -D dkeye -T user_info --columns

获取字段内容

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" -D dkeye -T user_info -C username,password --dump

获取数据库所有用户

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --users

获取数据库用户密码

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --passwords

获取当前网站数据库名称

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --current-db

获取当前网站数据库用户

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --current-user

4. SQLMap 高级功能

探测等级 (--level)

参数 --level 指定测试等级(1-5),默认1。等级越高,检测越全面但速度越慢。

检查当前用户权限

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --is-dba

运行自定义 SQL 语句

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --sql-shell

执行操作系统命令

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --os-cmd "whoami"

文件操作

读取服务器文件:

sqlmap.py -u "http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther" --file-read "C:/example.exe" -v 1

上传文件到服务器:

sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" --file-write "/software/nc.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1

5. 绕过脚本 (tamper)

SQLMap 提供绕过 WAF 的 tamper 脚本,使用方式:

sqlmap.py XXXXX --tamper "模块名"

常用 tamper 脚本

  1. apostrophemask.py:将引号替换为 UTF-8
  2. base64encode.py:替换为 base64 编码
  3. space2plus.py:用+号替换空格
  4. space2comment.py:将空格替换为/**/
  5. equaltolike.py:将等号替换为 like
  6. greatest.py:用 GREATEST 替换大于号
  7. ifnull2ifisnull.py:替换 IFNULL(A,B) 为 IF(ISNULL(A),B,A)
  8. modsecurityversioned.py:使用 MySQL 内联注释
  9. space2mysqldash.py:将空格替换为--并加换行符
  10. bluecoat.py:用随机空白符替换空格符,用 LIKE 替换等于号

6. WAF 检测

sqlmap.py --identify-waf

Burp Suite 渗透测试工具详解

1. Burp Suite 安装

环境要求

  • Java 运行环境 (JRE)
  • 从官网下载 Burp Suite 免费版或专业版

安装步骤

  1. 安装 JDK 并配置环境变量
  2. 直接双击 BurpLoader.jar 运行

2. Burp Suite 基础功能

Proxy 代理

  • Intercept:拦截、查看、修改客户端与服务端之间的数据
  • Forward:发送拦截的数据包
  • Drop:丢弃当前拦截的数据包
  • Interception is on/off:开启/关闭拦截功能

消息分析选项

  1. Raw:纯文本格式显示数据包
  2. Params:显示请求参数信息
  3. Headers:以名称/值格式显示消息头
  4. Hex:二进制内容编辑

Spider 爬虫

帮助了解系统结构,爬取内容在 Target 中展示

Decoder 编码解码

支持多种编码格式转换:

  • URL、HTML、Base64、ASCII
  • 十六进制、八进制、二进制
  • GZIP

支持多种散列算法:

  • SHA 系列、MD2、MD5

3. Burp Suite 高级功能

Scanner 扫描器

主动扫描(Active Scanning)

  • 客户端漏洞:XSS、HTTP头注入等
  • 服务端漏洞:SQL注入、命令注入等

被动扫描(Passive Scanning)

  • 明文密码提交
  • 不安全的cookie属性
  • 敏感信息泄露等

扫描结果可导出为 HTML 报告

Intruder 入侵者

用于自动化攻击,如:

  • 枚举用户名、ID
  • 模糊测试
  • SQL注入、跨站等

攻击类型

  1. Sniper:单一Payload组
  2. Battering ram:重复Payload
  3. Pitchfork:多Payload组同步迭代
  4. Cluster bomb:多Payload组组合测试

Repeater 重放器

手动修改、补发HTTP请求并分析响应

Comparer 比较器

对比两次数据之间的区别,用于:

  • 枚举用户名时比较成功/失败响应
  • SQL盲注测试时比较响应差异

Sequencer 序列分析

分析数据样本随机性质量,用于测试:

  • 会话令牌
  • 密码重置令牌是否可预测

Nmap 网络扫描工具详解

1. Nmap 概述

Nmap (Network Mapper) 是一款开源的网络探测和安全审核工具,功能包括:

  • 主机探测
  • 端口扫描
  • 版本检测
  • 系统检测
  • 支持脚本编写 (NSE)

2. Nmap 安装

从官网 https://nmap.org/download.html 下载安装

3. Nmap 基础使用

扫描参数

目标指定

  • -iL:从文件导入目标
  • -iR:随机选择目标
  • --exclude:排除特定主机

主机发现

  • -sL:列表扫描,仅列举IP
  • -sn:Ping扫描,只进行主机发现
  • -Pn:跳过主机发现

端口扫描

  • -sS:TCP SYN扫描
  • -sT:TCP Connect()扫描
  • -sU:UDP扫描

常用命令

nmap -T4 -A -v ip
  • -T4:指定时序级别(0-5)
  • -A:进攻性方式扫描
  • -v:显示冗余信息

常用扫描方法

  1. 扫描单个目标:
nmap 192.168.0.100
  1. 扫描多个目标:
nmap 192.168.0.100 192.168.0.105
  1. 扫描范围:
nmap 192.168.0.100-110
  1. 扫描C段:
nmap 192.168.0.100/24
  1. 从文件加载目标:
nmap -iL targets.txt
  1. 排除特定目标:
nmap 192.168.0.100/24 -exclude 192.168.0.105
  1. 指定端口扫描:
nmap 192.168.0.100 -p 21,22,23,80
  1. 路由跟踪:
nmap --traceroute 192.168.0.105
  1. C段在线检测:
nmap -sP 192.168.0.100/24
  1. 操作系统识别:
nmap -O 192.168.0.105
  1. 服务版本检测:
nmap -sV 192.168.0.105
  1. 防火墙探测:
nmap -sF -T4 192.168.0.105

端口状态

  1. open:端口开放
  2. closed:端口关闭
  3. filtered:端口被过滤
  4. unfiltered:端口可访问但状态未知
  5. open|filtered:无法确定开放还是过滤
  6. closed|filtered:无法确定关闭还是过滤

4. Nmap 脚本引擎 (NSE)

脚本位于 /xx/nmap/scripts 目录下

脚本分类

  1. auth:处理鉴权证书
  2. broadcast:局域网服务探查
  3. brute:暴力破解
  4. default:默认脚本
  5. discovery:网络信息搜集
  6. dos:拒绝服务攻击
  7. exploit:利用已知漏洞
  8. external:利用第三方资源
  9. fuzzer:模糊测试
  10. intrusive:入侵性脚本
  11. malware:探测恶意软件
  12. safe:安全性脚本
  13. version:增强版本扫描
  14. vuln:检查常见漏洞

脚本参数

  • -sC/--script=default:使用默认脚本
  • --script=<Lua scripts>:使用特定脚本
  • --script-args=key1=value1:传递脚本参数
  • --script-trace:显示脚本执行数据

脚本实例

  1. 鉴权扫描:
nmap --script=auth 192.168.0.105
  1. 暴力破解:
nmap --script=brute 192.168.0.105
  1. 漏洞扫描:
nmap --script=vuln 192.168.0.105
  1. 应用服务扫描:
nmap --script=realvnc-auth-bypass 192.168.0.105
  1. 局域网服务探测:
nmap -n -p 445 --script=broadcast 192.168.0.105
  1. Whois解析:
nmap -script external baidu.com
SQLMap 渗透测试工具详解 1. SQLMap 概述 SQLMap 是一个自动化的 SQL 注入工具,主要功能是扫描、发现并利用给定 URL 的 SQL 注入漏洞。它内置了很多绕过插件,支持多种数据库: MySQL、Oracle、PostgreSQL Microsoft SQL Server、Microsoft Access IBM DB2、SQLite、Firebird Sybase 和 SAP MaxDB SQL 注入技术 SQLMap 采用 5 种独特的 SQL 注入技术: 基于布尔类型的盲注 :根据返回页面判断条件真假的注入 基于时间的盲注 :通过条件语句查看时间延迟判断是否执行 基于报错注入 :页面返回错误信息或直接返回注入语句结果 联合查询注入 :可使用 Union 情况下的注入 堆查询注入 :可同时执行多条语句时的注入 强大功能 数据库指纹识别 数据库枚举 数据提取 访问目标文件系统 获取完全操作权限时执行任意命令 2. SQLMap 安装 环境要求 Python 环境(不支持 Python 3) 推荐 Python 2.7.3 安装步骤 从官网下载 Python 安装包并安装 将 Python 安装目录添加到环境变量 从 SQLMap 官网 (http://www.sqlmap.org) 下载最新版 将 SQLMap 目录加到环境变量中 在命令行输入 sqlmap.py 测试运行 3. SQLMap 基础使用 判断是否存在注入 多参数时加双引号: 从文件加载 HTTP 请求 查询当前用户下的所有数据库 获取数据库中的表名 获取表中的字段名 获取字段内容 获取数据库所有用户 获取数据库用户密码 获取当前网站数据库名称 获取当前网站数据库用户 4. SQLMap 高级功能 探测等级 (--level) 参数 --level 指定测试等级(1-5),默认1。等级越高,检测越全面但速度越慢。 检查当前用户权限 运行自定义 SQL 语句 执行操作系统命令 文件操作 读取服务器文件: 上传文件到服务器: 5. 绕过脚本 (tamper) SQLMap 提供绕过 WAF 的 tamper 脚本,使用方式: 常用 tamper 脚本 apostrophemask.py :将引号替换为 UTF-8 base64encode.py :替换为 base64 编码 space2plus.py :用+号替换空格 space2comment.py :将空格替换为/** / equaltolike.py :将等号替换为 like greatest.py :用 GREATEST 替换大于号 ifnull2ifisnull.py :替换 IFNULL(A,B) 为 IF(ISNULL(A),B,A) modsecurityversioned.py :使用 MySQL 内联注释 space2mysqldash.py :将空格替换为--并加换行符 bluecoat.py :用随机空白符替换空格符,用 LIKE 替换等于号 6. WAF 检测 Burp Suite 渗透测试工具详解 1. Burp Suite 安装 环境要求 Java 运行环境 (JRE) 从官网下载 Burp Suite 免费版或专业版 安装步骤 安装 JDK 并配置环境变量 直接双击 BurpLoader.jar 运行 2. Burp Suite 基础功能 Proxy 代理 Intercept :拦截、查看、修改客户端与服务端之间的数据 Forward :发送拦截的数据包 Drop :丢弃当前拦截的数据包 Interception is on/off :开启/关闭拦截功能 消息分析选项 Raw :纯文本格式显示数据包 Params :显示请求参数信息 Headers :以名称/值格式显示消息头 Hex :二进制内容编辑 Spider 爬虫 帮助了解系统结构,爬取内容在 Target 中展示 Decoder 编码解码 支持多种编码格式转换: URL、HTML、Base64、ASCII 十六进制、八进制、二进制 GZIP 支持多种散列算法: SHA 系列、MD2、MD5 3. Burp Suite 高级功能 Scanner 扫描器 主动扫描(Active Scanning) : 客户端漏洞:XSS、HTTP头注入等 服务端漏洞:SQL注入、命令注入等 被动扫描(Passive Scanning) : 明文密码提交 不安全的cookie属性 敏感信息泄露等 扫描结果可导出为 HTML 报告 Intruder 入侵者 用于自动化攻击,如: 枚举用户名、ID 模糊测试 SQL注入、跨站等 攻击类型 : Sniper :单一Payload组 Battering ram :重复Payload Pitchfork :多Payload组同步迭代 Cluster bomb :多Payload组组合测试 Repeater 重放器 手动修改、补发HTTP请求并分析响应 Comparer 比较器 对比两次数据之间的区别,用于: 枚举用户名时比较成功/失败响应 SQL盲注测试时比较响应差异 Sequencer 序列分析 分析数据样本随机性质量,用于测试: 会话令牌 密码重置令牌是否可预测 Nmap 网络扫描工具详解 1. Nmap 概述 Nmap (Network Mapper) 是一款开源的网络探测和安全审核工具,功能包括: 主机探测 端口扫描 版本检测 系统检测 支持脚本编写 (NSE) 2. Nmap 安装 从官网 https://nmap.org/download.html 下载安装 3. Nmap 基础使用 扫描参数 目标指定 : -iL :从文件导入目标 -iR :随机选择目标 --exclude :排除特定主机 主机发现 : -sL :列表扫描,仅列举IP -sn :Ping扫描,只进行主机发现 -Pn :跳过主机发现 端口扫描 : -sS :TCP SYN扫描 -sT :TCP Connect()扫描 -sU :UDP扫描 常用命令 : -T4 :指定时序级别(0-5) -A :进攻性方式扫描 -v :显示冗余信息 常用扫描方法 扫描单个目标: 扫描多个目标: 扫描范围: 扫描C段: 从文件加载目标: 排除特定目标: 指定端口扫描: 路由跟踪: C段在线检测: 操作系统识别: 服务版本检测: 防火墙探测: 端口状态 open :端口开放 closed :端口关闭 filtered :端口被过滤 unfiltered :端口可访问但状态未知 open|filtered :无法确定开放还是过滤 closed|filtered :无法确定关闭还是过滤 4. Nmap 脚本引擎 (NSE) 脚本位于 /xx/nmap/scripts 目录下 脚本分类 auth :处理鉴权证书 broadcast :局域网服务探查 brute :暴力破解 default :默认脚本 discovery :网络信息搜集 dos :拒绝服务攻击 exploit :利用已知漏洞 external :利用第三方资源 fuzzer :模糊测试 intrusive :入侵性脚本 malware :探测恶意软件 safe :安全性脚本 version :增强版本扫描 vuln :检查常见漏洞 脚本参数 -sC/--script=default :使用默认脚本 --script=<Lua scripts> :使用特定脚本 --script-args=key1=value1 :传递脚本参数 --script-trace :显示脚本执行数据 脚本实例 鉴权扫描: 暴力破解: 漏洞扫描: 应用服务扫描: 局域网服务探测: Whois解析: