SQL注入辨别注入点的常见方法
1.通过简单的测试语句判断
方法 1:
AND 1=2
测试
• 数字型注入:
• 输入:?id=1 AND 1=2
• 如果页面显示不正常(例如没有数据或报错),说明是数字型注入。
• 字符型注入:
• 输入:?id=1 AND 1=2
• 如果页面显示正常,说明是字符型注入。
方法 2:单引号和双引号测试
• 单引号测试:
• 输入:?id=1'
• 如果页面报错,说明是单引号闭合的字符型注入。
• 双引号测试:
• 输入:?id=1"
• 如果页面报错,说明是双引号闭合的字符型注入。
• 无报错:
• 如果两种测试都没有报错,说明可能是数字型注入。
2.通过构造闭合语句判断
方法 1:构造闭合语句
• 单引号闭合:
• 输入:?id=1' --+
• 如果页面正常显示,说明是单引号闭合的字符型注入。
• 双引号闭合:
• 输入:?id=1" --+
• 如果页面正常显示,说明是双引号闭合的字符型注入。
方法 2:测试不同类型的闭合
• 数字型注入:
• 输入:?id=1'
• 如果页面报错,说明是字符型注入。
• 字符型注入:
• 输入:?id=1'
• 如果页面不报错,说明可能是数字型注入。
3.通过布尔盲注判断
方法:布尔盲注测试
• 数字型注入:
• 输入:?id=1 AND 1=2
• 如果页面显示不正常,说明是数字型注入。
• 字符型注入:
• 输入:?id=1' AND 1=2 --+
• 如果页面显示正常,说明是字符型注入。
4.通过时间盲注判断
方法:时间盲注测试
• 数字型注入:
• 输入:?id=1 AND SLEEP(5)
• 如果页面延迟响应,说明是数字型注入。
• 字符型注入:
• 输入:?id=1' AND SLEEP(5) --+
• 如果页面延迟响应,说明是字符型注入。
5.通过联合查询判断
方法:联合查询测试
• 数字型注入:
• 输入:?id=1 UNION SELECT 1,2,3
• 如果页面显示联合查询的结果,说明是数字型注入。
• 字符型注入:
• 输入:?id=1' UNION SELECT 1,2,3 --+
• 如果页面显示联合查询的结果,说明是字符型注入。
总结
• 数字型注入:通常通过AND 1=2
或SLEEP(5)
测试,页面显示不正常或延迟响应。
• 字符型注入:通常通过单引号或双引号闭合测试,页面报错或正常显示。
通过上述方法,你可以快速判断SQL注入点是字符型还是数字型,从而选择合适的注入策略。
感谢浏览和学习,作者:鱼油YOU,转载请注明原文链接:https://www.cnblogs.com/OmegaYOU3/p/18810601,或者可以➕主播WX:OmegaAnimeman_desu;QQ:3819054512