发布网友 发布时间:2024-12-10 13:00
共1个回答
热心网友 时间:2024-12-12 12:02
SQLMap进阶技术参数详解
SQLMap进阶技术涉及参数讲解,主要包含:
1. 等级参数(--level 5):用于设置注入测试等级(1-5级),默认为1级。等级5包含最多Payload,可自动破解Cookie、XFF等头部注入,但运行速度较慢。
2. 是否具有管理权限参数(--is-dba):用于检测当前用户是否为数据库管理员账户,通过输入该命令查看结果。
3. 角色查看参数(--roles):在Oracle数据库中用于查看数据库用户的角色。可以通过“-U”参数指定查看特定用户的角色。
4. HTTP Referer头参数(--referer):允许在请求中伪造HTTP中的Referer,当注入等级为3或以上时,尝试Referer注入。可以使用--referer参数添加自定义HTTP Referer头。
5. 执行SQL语句参数(--sql-shell):用于执行指定的SQL语句,通过命令输入特定SQL查询。
6. 运行任意操作系统命令参数(--os-cmd或--os-shell):适用于MySQL、PostgreSQL或Microsoft SQL Server数据库,允许执行系统命令。对于MySQL或PostgreSQL,SQLMap会上传特定函数(sys_exec()和sys_eval())以执行命令。对于Microsoft SQL Server,可使用xp_cmdshell存储过程执行命令。
7. 读取执行文件参数(--file-read):允许从数据库服务器读取执行文件,支持文本或二进制文件,适用于MySQL、PostgreSQL或Microsoft SQL Server数据库。
8. 将本地文件写入数据库服务器参数(--file-write和--file-dest):用于将本地文件写入数据库服务器,同样适用于MySQL、PostgreSQL或Microsoft SQL Server数据库。
SQLMap自带tamper绕过脚本:为了应对注入语句中的单引号过滤等安全措施,SQLMap默认使用CHAR()函数。此外,提供了多个tamper绕过脚本用于修改数据,绕过WAF设备检测,包括apostrophemask.py、baseencode.py、multiplespaces.py等。每个脚本具有特定功能,如apostrophemask.py用于替换单引号,baseencode.py对请求参数进行Base编码,multiplespaces.py在关键字之间添加空格,space2plus.py用加号替换空格等。这些脚本通过正则模块替换字符编码以绕过过滤器,如追加特制字符串、添加随机字符、替换等号为LIKE等。使用方式通常为在命令前添加“--tamper”参数和脚本名。
SQLMap自带tamper绕过脚本提供了多种应对不同安全策略的方法,但实战环境复杂多变,建议用户在学习使用自带脚本的同时,掌握编写自定义tamper绕过脚本的规则,以应对更多具体场景。