寻找SQL注入:
1、借推理进行测试
2、数据库错误
3、应用程序的响应
4、SQL的盲注
确认SQL注入
1、区分数字和字符串
2、内联SQL注入
3、终止式SQL注入
4、时间延迟
利用SQL注入
1、识别数据库 {1、盲跟踪,2、非盲跟踪}
2、使用UNION语句提取数据 {1、匹配列,2、匹配类型}
3、使用条件语句{1、基于时间,2、基于错误,3、基于内容,4、处理字符串,5、扩展攻击,6、利用SQL注入错误}
4、枚举数据库模式
5、在INSERT查询中实施注入{1、插入用户规定的数据,2、生成INSERT错误,3、其它情形}
6、提升权限
7、窃取哈希口令
8、带外通信
9、自动利用SQL注入,sqlmap,Bobcat,BSQL等工具
SQL盲注利用
1、寻找并确认SQL盲注{1、强制产生通用错误,2、注入带副作用的查询,3、拆分与平衡,4、常见的SQL盲注场景,5、SQL盲注技术}
2、使用基于时间的技术 延迟数据库的查询
3、使用基于响应的技术
4、使用非主流通道 {1、数据库连接2、DNS渗漏,3、e-mail渗漏,4、HTTP渗漏,5、ICMP渗漏}
5、自动利用SQL盲注 Absinthe,BSQL Hacker,SQLBrute,sqlmap,sqlnijia,Squeeza
避开输入过滤器
1、使用大小写变种
2、使用SQL注释
3、使用URL编码
4、使用动态查询执行
5、使用空字节
6、嵌套剥离后的表达式
7、利用截断
8、避开自定义过滤器
9、使用非标准入口点
利用二阶SQL注入
客户端SQL注入漏洞{1、访问本地数据库,2、攻击客户端数据库}
使用混合攻击{1、利用捕获的数据,2、创建跨站的脚本,3、在Oracle上运行操作系统命令,4、利用验证过的漏洞}