題目資訊
Can you put agent Gill in the naughty ad section? His phone number is “555-31338”
Service: http://naughtyads.alieni.se/
Author: avlidienbrunn
解法
直接試了 robots.txt
得到:
看到 phps 感覺就是能拿到源碼,嘗試 index.phps 得到:
看到preg_match("/'(?:\w*)\W*?[a-z].*(R|ELECT|OIN|NTO|HERE|NION)/i", $_REQUEST['id'])
有做 SQL injection 防護,原本一直在想要怎麼繞過,嘗試了一段時間都無法成功。
後來發現被檢查的是 $_REQUEST['id']
,但 SQL query 用的是 $_GET['id']
,因此只要同時發送GET
跟POST
資訊就行了。PHP預設是$_REQUEST
會包含$_GET
和$_POST
,重複變數時會由$_POST
蓋掉$_GET
。
舉例:
結果確定可以成功繞過,然後因為很懶就直接交給 sqlmap
去撈資料了XD。
|
|
|
|
看到 login ,想到先前在 robots.txt
看到的,有 admin 的頁面可以登入。把 login table 的資料 dump 出來,發現 password 是經過 md5
hash 的,可以直接用 sqlmap 的字典檔解解看,或是直接上網查。
|
|
用帳號 webmasterofdoom3755
密碼 secret
登入 http://naughtyads.alieni.se/admin/
登入後看到一個上傳表單,上傳欄位有電話、敘述跟圖檔。剛看到時卡住了一下,後來看到 HTML 原始碼裡有貼心提示XD。
把電話欄位填 555-31338
後按上傳就能拿到 flag 了。
Flag: SECT{~tr4nsv3stiT3s_w3lc0me_t00~}
感想
現實上很多問題都出在程式前後不一致的地方呢,看來在開發的時候真的要很小心啊!