思路
产生漏洞的原因无外乎两点:可控变量和执行函数。
而防护也是针对这两点来的,要么对可控变量进行适当过滤,要么对执行函数进行一个筛选使用。
在实战中测试SQL注入漏洞可有以下三种思路:
- 关键字查找
当用seay或者fortity打开项目后查找关键字,比如:seleect、insert、update、sql、sql_query等,确定位置后查询可控变量的过滤以及使用情况。
- 功能点查找
打开系统后查询系统可能存在与数据库进行交互的功能点,然后抓包定位功能点在项目文件中的路径,然后打开该文件进行详细的代码审计。
- 数据库监控
当用seay打开项目时,seay存在一个插件-mysql查询监控,当打开目标系统时如果有数据库交互情况,那么插件就会监测到相关流量包,有了具体流量包以后我们就可以详细定位目标位置进行查看了。
魔术引号绕过
有两种方式进行绕过:
- 宽字节注入
- 二次注入
先insert,后update才可以