[GYCTF2020]Blacklist
進入題目就給了一個送出框,輸入1送出一下
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn1UejRUT61kaOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwczM0MDNyMTMxMDMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
感覺應該是sql注入,進行嘗試
存在注入點,繼續操作
順利查出字段數為2,但是繼續的時候就遇到了問題
發現過濾了select,繞了好久都沒有繞過去,就換了個思路,使用堆疊注入。
順利查出表名,接着查字段
ok,接着就是查字段内容了,因為這題和強網杯2019的随便注很像,我剛開始就直接用的set指派變量變量來解。我的payload是這樣的
因為過濾了select,我就用concat來拼接語句,但是執行結果
…然後我仔細看了一下,過濾了set和prepare。好吧,我是瞎子。
之後我就去看了一下其他大佬的wp,又學到了一種新姿勢——handler繞過select過濾
handler文法
handler table_name open ... //擷取句柄
handler ... read first //讀取第一行資料
handler ... read next //讀取下一行資料
現在我們在本地測試一下
我本地有一個名為hack的表
現在回到題目,我們已經知道了表名,就可以直接用handler來讀取
這樣就拿到flag了