zoukankan      html  css  js  c++  java
  • POST注入-双注入

    Less-11

    双注入(来自b站大佬视频https://www.bilibili.com/video/av77851975?t=26&p=7

    1.首先随便写一点 然后直接抓包

     可以看见报错了

     这个时候我们加个单引号,然后分析后台报错得语句

     

     可以看见我们只看见了passwd得语法问题 没有看见uname得报错  我们初衷就是要加单引号,通过报错看看uname得语法

    所以加一个双引号看看

     这个时候后台报错就出来了

     这个时候想办法让他不报错直接admin‘# 闭合单引号

     可以看见不报错了

    然后用order by测试列数(用二分法)

    最后才测到是2

     然后union select联合查询

     可以发现不显示内容 只能看见有没有报错,那么我们就没办法通过回显数据来查询我们想要得数据

    所以 得换新方法!!

    回到我们第一步报错得地方

    思路就是 既然他能通过报错去暴露一些语法信息  那么能不能通过报错去暴露一些敏感信息呢

    可以 就是今天的方法 双注入(也就是注入里面会用到两个select)

    floor(rand()*2)这个意思就是在0和1里面取随机值 floor是取整数位,这个的目的就是要出现重复组件

    count(1)是统计行数

    group by 的意思是分组,把所有的列按照属性进行分组

    比如(下图的意思就是要统计所有mysql数据库的每一个数据库里面有几个表,group by table_schema 的意思就是按照table_schema进行分组)

             (count(1)是统计行数)

    画图展示其原理

    先建立临时表 挨个查询,(此处建议看视频)

    为什么是这个结果呢 ?

    当mysql里面一个表里面出现两个数据相同的时候,会提示这样的错误叫重复条目(因为组件冲突了)

    这个时候我们使用concat的

     可以看出当我把版本信息这个组件加入的时候,组件冲突,mysql表就报错了,同时把这个值内容爆出来了

    那我们就换 把version()改为database(),数据库就出来了

     好 双select来了

     可以用group _concat()但是这里group _concat()不行 于是就limit一行一行来(这个limit之前讲过在post单符号注入)

     可以爆出第一个表emails

     

     limit 4 ,1就爆不出了 说明里面有三个表

    再去爆字段

     

     再去爆字段的值

     

     再去看看users表中id的字段

  • 相关阅读:
    Spring Boot整合Freemarker
    Spring Boot异常处理
    CSAPP缓冲区溢出攻击实验(下)
    SparkSQL基础应用(1.3.1)
    程序员的自我修养:(1)目标文件
    CSAPP缓冲区溢出攻击实验(上)
    Redis源码学习:字符串
    六星经典CSAPP-笔记(7)加载与链接(上)
    Redis源码学习:Lua脚本
    六星经典CSAPP-笔记(10)系统IO
  • 原文地址:https://www.cnblogs.com/cat47/p/12528841.html
Copyright © 2011-2022 走看看