文章目录

  • 一:判断注入点和注入类型
  • 二:绕过注入


一:判断注入点和注入类型

因为之前进行了sql注入的学习,但是对于注入点的查询和判断一直是一知半解,所以这次将sql注入点的查询判断方法和原理进行一下总结。

First: 我们要先判断是否有注入点。
通过在参数后面加入单引号。
?id=1',如果页面出现错误,说明存在注入点。
原理:无论字符型和数字型都会因为单引号个数不匹配而出现错误。
PS:页面正确,也可能是源码把单引号过滤了。

Second: 然后判断注入类型。
数字型判断:
1:输入and 1=1,若页面返回正常,进行下一步。
2:输入 and 1=2 , 若页面返回错误,说明sql注入为数字型。
原理: 当进行第一步时,后台sql语句判断为:
id=x and 1=1 语句正确,逻辑为真,所以页面返回正常。
当进行第二步时,后台sql语句判断为:
id=x and 1=2 语句正常,逻辑为假,所以页面返回错误。
所以判断为数字型判断。
假设sql注入为字符型——
第一步:id='x and 1=1' 第二步:id='x and 1=2' sql语句把语句都转换成了字符串,所以页面都返回错误。

字符型判断
1:输入id=x' and '1' ='1,若页面返回正常,进行下一步。
2:输入id=x' and '1'='2 ,若页面返回错误,说明sql注入为字符型。
原理: 当进行第一步时,后台sql语句判断为:
id='x' and '1'='2' 语句正确,逻辑为真,所以页面返回正常。
当进行第二步时,后台sql语句判断为:
id='x' and '1'='2' 语句正确,逻辑为假,页面返回错误。

在判断同时要注意,后台源码可能会对闭合方式进行转换,例如双引号,单引号括号,双引号括号,我们还是要多进行尝试。

寻找后台:在sql注入查询到敏感数据后,可通过谷歌语法或者御剑等工具扫描后台。。。

关于sql注入点的学习还有其他方式方法,希望能够得到大佬的指点。

二:绕过注入

当concat函数被过滤的时候,我们可以通过limit函数来依次查询。
如果表名,库名被检测了,我们可以通过十六进制等方式编码来绕过。

关于sql注入的学习还有很多东西,革命尚未成功,同志仍需努力。