SQLi-LABS 学习SQL注入(less 39-less53 )

Less-39

单引号闭合根据报错发现是数字型注入
SQLi-LABS 学习SQL注入(less 39-less53 )_第1张图片
图片.png

看源码跟less-38一样,都是堆叠注入,只是单引号闭合变为数字型了。
SQLi-LABS 学习SQL注入(less 39-less53 )_第2张图片
图片.png
另外分号后面的语句显示的结果是显示不出来的
SQLi-LABS 学习SQL注入(less 39-less53 )_第3张图片
图片.png

Less-40

与Less38和Less39一样,就是闭合方式变为('变量'),而且不会报错,需要用盲注猜测闭合方式


图片.png

不是单引号和双引号闭合
SQLi-LABS 学习SQL注入(less 39-less53 )_第4张图片
图片.png
是括号加单引号闭合
SQLi-LABS 学习SQL注入(less 39-less53 )_第5张图片
图片.png
同样可以用堆叠注入
SQLi-LABS 学习SQL注入(less 39-less53 )_第6张图片
图片.png
SQLi-LABS 学习SQL注入(less 39-less53 )_第7张图片
图片.png

Less-41

同样是堆叠注入,不会报错,变为数字型注入。

Less-42

单引号闭合绕过


SQLi-LABS 学习SQL注入(less 39-less53 )_第8张图片
图片.png

源码中过滤了user,没有过滤password
图片.png

由于源码中仍然有
SQLi-LABS 学习SQL注入(less 39-less53 )_第9张图片
图片.png

所以可以继续使用堆叠注入,创建一个等于users的text2表,
SQLi-LABS 学习SQL注入(less 39-less53 )_第10张图片
图片.png
SQLi-LABS 学习SQL注入(less 39-less53 )_第11张图片
图片.png

当然更改密码页面也有一个之前用过的漏洞就不再写了
SQLi-LABS 学习SQL注入(less 39-less53 )_第12张图片
图片.png

Less-43

单引号报错
SQLi-LABS 学习SQL注入(less 39-less53 )_第13张图片
图片.png

以为是数字型注入,发现进不去。最后发现是括号加单引号闭合
SQLi-LABS 学习SQL注入(less 39-less53 )_第14张图片
图片.png
其余等同Less-42
这样他会报错' '
图片.png
图片.png

Less-44

这里和42其实相差不多,只不多这里没有了报错,但是注入语句还是一样的
直接就进去了

SQLi-LABS 学习SQL注入(less 39-less53 )_第15张图片
多试几种闭合方式,如果不行就用布尔盲注。

Less-45

依然是堆叠注入,这也跟前面的一样,就是不会报错了,各种尝试就好了
SQLi-LABS 学习SQL注入(less 39-less53 )_第16张图片
图片.png

Less - 46 ORDER BY-Error-Numeric(第46节:GET - 基于错误 - 数字型 - ORDER BY 从句)

发现标题变了

SQLi-LABS 学习SQL注入(less 39-less53 )_第17张图片
看一下源码,发现语句变为select * from users order by $id;,也就是输进去的id值是对应的那一列排序。
SQLi-LABS 学习SQL注入(less 39-less53 )_第18张图片
图片.png

sort=1
SQLi-LABS 学习SQL注入(less 39-less53 )_第19张图片
图片.png

sort=1',数字型注入
SQLi-LABS 学习SQL注入(less 39-less53 )_第20张图片
图片.png

select * from tablename order by id desc:根据id字段按照降序排列,从大到小
select * from tablename order by id asc:根据id字段按照升序排列,从小到大
asc 按升序排列
desc 按降序排列

可以用sort=1 desc和sort=1 asc来判断是否存在oder by 注入
SQLi-LABS 学习SQL注入(less 39-less53 )_第21张图片
图片.png

这道题有报错信息,可以用updatexml报错函数,盲注也可以
SQLi-LABS 学习SQL注入(less 39-less53 )_第22张图片
图片.png
extractvalue函数当然也可以
SQLi-LABS 学习SQL注入(less 39-less53 )_第23张图片
图片.png
然后用select语句替换concat就可以查询想要的信息。
盲注,两个and,前两个条件只要有一个条件是false就不会运行if语句。

http://localhost/sqli-lab/Less-46/index.php?sort=1 and if(1=1, sleep(1), null)
http://localhost/sqli-lab/Less-46/index.php?sort=1 and (length(database())) = 8 and if(1=1, sleep(1), null)
http://localhost/sqli-lab/Less-46/index.php?sort=1 and (ascii(substr((select database()) ,1,1))) = 115 and if(1=1, sleep(1), null)

关于MySQL的SLEEP(N)函数

Less - 47 ORDER BY Clause-Error-Single quote(第47节:ORDER BY 从句 - 基于错误-单引号 )

单引号报错,知道是单引号闭合
SQLi-LABS 学习SQL注入(less 39-less53 )_第24张图片
图片.png

desc正确判断是order by注入
SQLi-LABS 学习SQL注入(less 39-less53 )_第25张图片
图片.png
其余同上

Less - 48 ORDER BY Clause Blind based(第48节:ORDER BY 从句 基于盲注 )

order by注入,没有报错信息

SQLi-LABS 学习SQL注入(less 39-less53 )_第26张图片
图片.png
盲注id=1',1",1'),1",1
图片.png
发现是数字型注入。
然后用报错函数或者盲注

Less - 49 ORDER BY Clause Blind based(第49节:ORDER BY 从句 基于盲注 )

依然不会报错,盲注发现是单引号闭合

图片.png
然后用报错函数或盲注

Less - 50 ORDER BY Clause Blind based(第50节:ORDER BY 从句 基于盲注)

desc,asc判断是order by注入,单引号报错,是数字型

SQLi-LABS 学习SQL注入(less 39-less53 )_第27张图片
图片.png
然后用报错函数或盲注

Less - 51 ORDER BY Clause Blind based(第51节:ORDER BY 从句 基于盲注 )

desc,asc判断是order by注入,单引号报错,是单引号闭合desc,asc判断是order by注入

SQLi-LABS 学习SQL注入(less 39-less53 )_第28张图片
图片.png

报错函数或盲注
SQLi-LABS 学习SQL注入(less 39-less53 )_第29张图片
图片.png
怎么感觉跟前面一摸一样,看了下源代码发现Less50和Less51都有
图片.png

这个函数,可以进行堆叠注入
图片.png

比如删除text2表
SQLi-LABS 学习SQL注入(less 39-less53 )_第30张图片
图片.png

Less - 52 ORDER BY Clause Blind based(第52节:ORDER BY 从句 基于盲注 )

单双引号不会报错,盲注判断为数字型
图片.png

源代码依然有
图片.png
可以进行堆叠注入,其余跟51差不多。

Less-53Less - 53 ORDER BY Clause Blind based(第53节:ORDER BY 从句 基于盲注 )

不显示报错信息,盲注发现为单引号闭合
图片.png

同样可以进行堆叠注入,其他同前几道题。

你可能感兴趣的:(SQLi-LABS 学习SQL注入(less 39-less53 ))