sqlmap Tamper脚本编写
sqlmap Tamper脚本编写
前言
sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB。采用五种独特的SQL注入技术,分别是:
- 基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
- 基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
- 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
- 联合查询注入,可以使用union的情况下的注入。
- 堆查询注入,可以同时执行多条语句的执行时的注入。
sqlmap是渗透测试中判断sql注入的神器,但是sqlmap不会绕过一些过滤(比如过滤and),也不会绕过安全狗等WAF。为了让sqlmap更加方便(为了让自己偷懒不用手动写python脚本sql 注入)----->sqlmap提供了tamper
tamper内置了很多绕过功能(比如替换双引号 在括号前增减内联注释) 下面就是tamper文件夹中对应的模块。
tamper格式介绍
tamper文件夹下的所有python文件都满足以下格式
import re
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.HIGHEST
# 对当前脚本的介绍(不用管)
def dependencies():
pass
# 对payload进行处理(知识举个例子 payload将空格变成/**/ 将union变成UnIoN)
def tamper(payload, **kwargs):
payload = payload.replace('union', 'UnIoN')
payload = payload.replace(' ', '/**/')
return payload
编写完成后放到tamper文件夹下 sqlmap就可以直接使用
sqlmap -u "xxxxx" --tamper "xxx.py,yyy.py" # tamper可以有一个或多个py文件
遇到sql注入的问题直接使用sqlmap是没有灵魂的,但是如果经过手动判断,自己编写了tamper之后再用sqlmap那就是有灵性的( ͡°ᴥ ͡° ʋ)( ͡°ᴥ ͡° ʋ)( ͡°ᴥ ͡° ʋ)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)