判断sql注入漏洞的类型
2017-09-08 22:19
176 查看
通常 Sql 注入漏洞分为 2 种类型:
数字型
字符型
其实所有的类型都是根据数据库本身表的类型所产生的,在我们创建表的时候会发现其后总有个数据类型的限制,而不同的数据库又有不同的数据类型,但是无论怎么分常用的查询数据类型总是以数字与字符来区分的,所以就会产生注入点为何种类型。
这种类型可以使用经典的
Url 地址中输入
Url 地址中继续输入
原因如下:
当输入
没有语法错误且逻辑判断为正确,所以返回正常。
当输入
没有语法错误但是逻辑判断为假,所以返回错误。
我们再使用假设法:如果这是字符型注入的话,我们输入以上语句之后应该出现如下情况:
查询语句将 and 语句全部转换为了字符串,并没有进行 and 的逻辑判断,所以不会出现以上结果,故假设是不成立的。
这种类型我们同样可以使用
Url 地址中输入
Url 地址中继续输入
原因如下:
当输入
语法正确,逻辑判断正确,所以返回正确。
当输入
语法正确,但逻辑判断错误,所以返回正确。同学们同样可以使用假设法来验证。
数字型
字符型
其实所有的类型都是根据数据库本身表的类型所产生的,在我们创建表的时候会发现其后总有个数据类型的限制,而不同的数据库又有不同的数据类型,但是无论怎么分常用的查询数据类型总是以数字与字符来区分的,所以就会产生注入点为何种类型。
5.2.1 数字型判断:
当输入的参 x 为整型时,通常 abc.php 中 Sql 语句类型大致如下:select * from <表名> where id = x
这种类型可以使用经典的
and 1=1和
and 1=2来判断:
Url 地址中输入
http://xxx/abc.php?id= x and 1=1页面依旧运行正常,继续进行下一步。
Url 地址中继续输入
http://xxx/abc.php?id= x and 1=2页面运行错误,则说明此 Sql 注入为数字型注入。
原因如下:
当输入
and 1=1时,后台执行 Sql 语句:
select * from <表名> where id = x and 1=1
没有语法错误且逻辑判断为正确,所以返回正常。
当输入
and 1=2时,后台执行 Sql 语句:
select * from <表名> where id = x and 1=2
没有语法错误但是逻辑判断为假,所以返回错误。
我们再使用假设法:如果这是字符型注入的话,我们输入以上语句之后应该出现如下情况:
select * from <表名> where id = 'x and 1=1' select * from <表名> where id = 'x and 1=2'
查询语句将 and 语句全部转换为了字符串,并没有进行 and 的逻辑判断,所以不会出现以上结果,故假设是不成立的。
5.2.2 字符型判断:
当输入的参 x 为字符型时,通常 abc.php 中 SQL 语句类型大致如下:select * from <表名> where id = 'x'
这种类型我们同样可以使用
and '1'='1和
and '1'='2来判断:
Url 地址中输入
http://xxx/abc.php?id= x' and '1'='1页面运行正常,继续进行下一步。
Url 地址中继续输入
http://xxx/abc.php?id= x' and '1'='2页面运行错误,则说明此 Sql 注入为字符型注入。
原因如下:
当输入
and '1'='1时,后台执行 Sql 语句:
select * from <表名> where id = 'x' and '1'='1'
语法正确,逻辑判断正确,所以返回正确。
当输入
and '1'='2时,后台执行 Sql 语句:
select * from <表名> where id = 'x' and '1'='2'
语法正确,但逻辑判断错误,所以返回正确。同学们同样可以使用假设法来验证。
相关文章推荐
- SQL注入漏洞的判断
- Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
- php 上传文件类型判断函数(避免上传漏洞 )
- php 判断上传类型 避免上传漏洞
- sql注入过程中后台数据库类型的三种判断方式
- SQL注入漏洞的判断
- 包含漏洞 文件类型白名单验证及判断后缀的解决办法
- php 上传文件类型判断函数(避免上传漏洞 )
- Android网络判断是否连接和网络类型
- 防范SQL注入漏洞
- 预防SQL注入漏洞函数
- 浅玩JavaScript的数据类型判断
- Yii2数据安全查询,防止sql注入漏洞
- js根据客户端浏览器类型,判断跳转官网/手机网站
- Android判断网络类型的方法(2g,3g还是wifi)
- sql注入漏洞的一种实例
- python 类型true,false判断
- Bigdecimal类型判断是否等于0(用equals方法的坑)
- javaScript如何简单而准确地判断复杂数据类型
- 【python】实例-判断用户输入数字的类型