[BSidesCF 2019]Sequel

[BSidesCF 2019]Sequel

考点

  • sqlite3盲注

wp

登录页面,随便输提示Username must be alphanumeric.

弱口令爆破,guest/guest,登录后提示数据库

抓包发现cookie是1337_AUTH=eyJ1c2VybmFtZSI6Imd1ZXN0IiwicGFzc3dvcmQiOiJndWVzdCJ9

base64解码是{"username":"guest","password":"guest"},这里可能存在注入

改成{"username":"guest'#","password":"guest"},提示Invalid user.

改成{"username":"guest"#","password":"guest"},提示Server Error

"加个转义符试试,{"username":"guest\"#","password":"guest"},还提示Invalid user.

#改成--{"username":"guest\"--","password":"guest"},成功登录

{"username":"\" or 1=1--","password":"guest"},成功登录

盲注脚本如下

得到表userinfo,reviews,notes

由于sqlite3在进行字符比较时不区分大小写,所以在注入字段时不能用二分法,同时可能会有不可见字符,所以对结果进行hex编码然后再布尔盲注判断字符

结果

然后注入,得到用户名密码

结果如下

小结

sqlite3注入

  1. 找表select name from sqlite_master where type="table",需要限制输出的话是select name from sqlite_master where type="table" limit 1 offset 0,修改offset,从0开始,如果超过表的数量会返回错误

  2. 找字段select sql from sqlite_master where type="table" and name="userinfo"

  3. 盲注考虑编码再注入,避免很多不必要的麻烦

最后更新于