一、SQL注入的本质
注入攻击的本质,是把用户输入的数据当做代码执行。
SQL:结构化查询语言,即操作数据库的代码
注入:把用户输入的数据当做代码执行
SQL注入的条件:
第一个是用户能够控制输入。
第二个是原本程序要执行的代码,拼接了用户输入的数据然后进行执行
SQL注入的应用场景:
任何和数据库交互的传参(任何传参点)
想要了解更详细一点,可以看一下这篇博客:SQl注入与正则表达式
二、显错注入
1、判断是否存在注入点
http://59.1.1.1/?id=1
#?代表GET传参,传参值为1
(1)
#当1=1正确而1=2错误时,有可能存在SQL注入
http://59.1.1.1/?id=1 and 1=1
http://59.1.1.1/?id=1 and 1=2
#and 1=1 and 1=2被拦截的几率太高了,可以尝试其它
http://59.1.1.1/?id=1 and -1=-1
http://59.1.1.1/?id=1 and -1=-2
(2)
#URL后面加',看是否报错
http://59.1.1.1/?id=1'
(3)加减乘除
#注意URL栏经过URL编码,会把空格编码为+,+会被理解为空格,如果要使用+,需要进行编码,即%2b
http://59.1.1.1/?id=1%2b1
http://59.1.1.1/?id=2-1
http: