Web for pentester靶机sql注入

Example 1

这关进来以后是这样的:
Web for pentester靶机sql注入_第1张图片
从这个页面中我们可以得到name就是注入点,所以就先判断出它的闭合方式,经过尝试发现它是由单引号闭合的,知道闭合方式以后就开始判断它的列数了:

' order by 5 --+

Web for pentester靶机sql注入_第2张图片
Web for pentester靶机sql注入_第3张图片
经过尝试,确定它的列数为5,然后就可以开始注入了,使用最常用的联合注入即可:

' union select 1,2,3,4,5 --+

Web for pentester靶机sql注入_第4张图片

' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),
(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database()),
(select group_concat(name) from users),
4,5 --+

Web for pentester靶机sql注入_第5张图片
这里我把所有要爆的东西都写在了一行当中,不过在做的过程中还是得一步一步的来。

Example 2

这一关就比较复杂一点了,首先经过尝试,判断出了这关的闭合方式还是以单引号闭合的,然后在判断字段数的时候却报错了:
Web for pentester靶机sql注入_第6张图片
一看这个错误,我们得知,这关把空格给过滤,所有我们使用url编码来来进行绕过,空格的url编码为%09:
Web for pentester靶机sql注入_第7张图片
可是输入以后发现页面还是报错,这时想到,会不会把注释符–+也给过滤了,经过尝试,–+的确被过滤,同时#也被过滤了,同样的使用url编码进行绕过,#号的url编码为%23:
Web for pentester靶机sql注入_第8张图片
得知闭合方式,过滤符号后,这样就可以依照上一关的步骤进行注入了。

Example 3

这关还是老方法,先判断它的闭合方式,经过尝试,它的闭合方式还是为单引号闭合,然后判断字段数,发现这关报错和上一关一样:
Web for pentester靶机sql注入_第9张图片
但是,当我们用上一关的方法进行绕过的时候,发现行不通了,同样还是报错,想必它把%09也给过滤了,这时就要想别的方法进行绕过了。既然空格被过滤了,那我们就把空格给它注释掉试试:
Web for pentester靶机sql注入_第10张图片
到这里,我们就知道了它的闭合方式以及过滤符号了,然后进行注入即可。

Example 4

这一关刚开始以为并没有什么过滤的东西,到了后面才发现它过滤了单引号,所以采用16进制转换的方法即可:
Web for pentester靶机sql注入_第11张图片
Web for pentester靶机sql注入_第12张图片
随后按步骤进行注入即可。

Example 5

这一关和上一关一样,也没什么过滤的直接注入就好:
Web for pentester靶机sql注入_第13张图片

Example 6

这一个,经过尝试以后,还是没有闭合,然后再用同样的方法发现这关只是把–+这注释符给过滤了,所以用#进行绕过就行:
Web for pentester靶机sql注入_第14张图片

Example 7

这一个经过尝试以后发现,和上一关的报错是相同的,但是用上一关的方法却行不通,经过各种方法的尝试,终于发现可以使用%0a行绕过:
Web for pentester靶机sql注入_第15张图片
然后,就可以继续进行注入了。

Example 8

这一关进来以后的的页面是这样的:
Web for pentester靶机sql注入_第16张图片
在这一关,经过多次尝试后,和参考源码得知它是用反单引号 ` 闭合的,
Web for pentester靶机sql注入_第17张图片
而且经源码得知,联合,报错等注入都不成,所以我们可以用时间盲注:
Web for pentester靶机sql注入_第18张图片

Example 9

这一关和上一关差不多,这一关没有闭合,同样直接采用的时间盲注即可

你可能感兴趣的:(sql)