1.搜索框 或 URL 末尾加入单引号’
提交,
结果:如果出现错误提示,则该网站可能就存在注入漏洞。
2.数字型判断是否有注入;
语句:and 1=1 ;and 1=2
(经典), ' and '1'='1
(字符型)
结果:分别返回 不同的页面,说明存在注入漏洞.
分析:and 的意思是“和”如果没有过滤我们的语句,and 1=1
就会被代入SQL查询语句进行查询,
如果and前后的两条语句都是真的话就不会出错,但如果前后语句有一个为假的话,程序就会暴错。
也就表明程序有注入漏洞
防注入 - 解决办法:
- 使用
or 2>1 ; or 1>2
来进行判断
结果:分别返回不同的页面,说明存在注入漏洞.
分析:or
注入只要求前后两个语句只要有一个正确就为真,如果前后两个语句都是正确的,反而为假。
记住:or
注入时,or
后面的语句如果是正确的,则返回错误页面!如果是错误,则返回正确页面,说明存在注入点。 - 使用
xor 1=1; xor 1=2
结果:分别返回不同的页面,说明存在注入漏洞.
分析:xor
代表着异或,意思即连接的表达式仅有一个为真的时候才为真。
记住:xor
注入时,xor
后面的语句如果是正确的,则返回错误页面积,如果是错误,则返回正确页面,说明存在注入点。 - 把
and 1=1
转换成URL
编码形式后在提交and 1=1
URL编码:%41%4E%44%20%%31%3D%31
- 使用
-1
;-0
分析:如果返回的页面和前面不同,是另一则新闻,则表示有注入漏洞,是数字型的注入漏洞;在URL
地址后面加上-0
,URL
变成news.asp?id=123-0
,返回的页面和前面的页面相同,加上-1
,返回错误页面,则也表示存在注入漏洞.
3.字符型判断是否有注入:
语句:' and '1'='1;' and '1=2
(经典)
结果:结果:分别返回不同的页面,说明存在注入漏洞.
分析:加入' and '1'='1
返回正确页面,加入' and '1=2
返回错误页面,说明有注入漏同。
防注入 - 解决办法:
- 在URL的地址后面加上
'%2B'
(字符型)
分析:URL地址变为:news.asp?id=123'%2B'
,返回的页面和1同;
加上'2%2B'asdf
,URL地址变为:news.asp?id=123'%2Basdf
,返回的页面和1
不同,或者说未发现该条记录,或者错误,则表示存在注入点,是文本型的。
4.搜索型判断是否有注入:
简单的判断搜索型注入漏洞存在不存在的办法是先搜索'
,如果出错,说明90%
存在这个漏洞。
然后搜索%
,如果正常返回,说明95%
有洞了。
说明:加入如&;
、["、"]
、%
、$
、@
等特殊字符,都可以实现,如果出现错误,说明有问题
操作:
搜索一个关键字
比如
2006
吧,正常返回所有2006相关的信息,再搜索2006%'and 1=1 and '%'='
和2006%'and 1=2 and '%'='
,存在异同的话,就是100%有洞了。
关键字%' and 1=1 and '%'='%
关键字%' and 1=2 and '%'='%
将and 1=1
换成注入语句就可以了