思路

产生漏洞的原因无外乎两点:可控变量执行函数。
而防护也是针对这两点来的,要么对可控变量进行适当过滤,要么对执行函数进行一个筛选使用。
在实战中测试SQL注入漏洞可有以下三种思路:

  • 关键字查找

当用seay或者fortity打开项目后查找关键字,比如:seleect、insert、update、sql、sql_query等,确定位置后查询可控变量的过滤以及使用情况。

  • 功能点查找

打开系统后查询系统可能存在与数据库进行交互的功能点,然后抓包定位功能点在项目文件中的路径,然后打开该文件进行详细的代码审计。

  • 数据库监控

当用seay打开项目时,seay存在一个插件-mysql查询监控,当打开目标系统时如果有数据库交互情况,那么插件就会监测到相关流量包,有了具体流量包以后我们就可以详细定位目标位置进行查看了。

魔术引号绕过

有两种方式进行绕过:

  • 宽字节注入
  • 二次注入

先insert,后update才可以