基于SQLITE数据库的SQL注入

什么是SQLITE数据库

这个问题我懒得写,也懒得复制,想知道的点这里

SQLITE数据库的系统库

熟悉MySQL数据库的人都知道,MySQL中有一个名为informationschema的系统库,里面包含了所有MYSQL数据库中库名,表名,列名的信息,那么SQLITE数据库有没有呢?
答案当然是没有的。对于SQLITE而言,并没有库的概念,而是直接对象就是表了,所以SQLITE没有系统库,但是它是存在系统表的,这个表名为sqlite
master,结构如下图所示 下辈子想做头猪type列中table表示表,index表示索引,tbl_name表示表名,sql内容为创建该表的SQL语句

注入实例演示

1.访问链接,页面内容如图所示
下辈子想做头猪的博客
2.提交单引号,查看爆错信息
下辈子想做头猪的博客
3.根据爆错信息,猜测具体执行的SQL语句

爆错信息中返回的SQL语句部分内容为"'ubuntu'';",去掉首尾的双引号,所以我们可以猜测具体执行的SQL语句为select * from xxx where tag = 'ubuntu你的输入内容';

4.类似MySQL的手动注入流程

查看字段 下辈子想做头猪的博客
union select 查询 下辈子想做头猪的博客
SQLITE数据库中查看版本号的函数为sqlite_version()
查询所有表名 下辈子想做头猪的博客
通过查询创建表的SQL语句,来得到表结构 下辈子想做头猪的博客
通过上图返回的SQL语句,我们就知道了users表中有三个列id,name,password 查询users表的内容 下辈子想做头猪的博客

zhutougg

继续阅读此作者的更多文章