BUUCTF [GYCTF2020] Blacklist
BUUCTF [GYCTF2020] Blacklist
啟動(dòng)靶機(jī):
提交參數(shù)1后正常回顯內(nèi)容:
輸入2/2判斷注入類型:
回顯為2,可以判斷出為字符型注入
輸入select,查看是否存在回顯:
回顯出了黑名單限制的關(guān)鍵字
沒(méi)限制關(guān)鍵字show,所以通過(guò)堆疊注入先查看庫(kù)名:
繼續(xù)獲取表名:
得到兩個(gè)表:FlagHere和words,查詢FlagHere表中詳細(xì)結(jié)構(gòu):
1';desc FlagHere;
得到flag列,推測(cè)其應(yīng)為flag,嘗試獲取其內(nèi)容,但因關(guān)鍵字select被限制,查詢資料得知HANDLER也可作為查詢語(yǔ)句,且性能比select更好,因?yàn)槠錇榉荢QL標(biāo)準(zhǔn)語(yǔ)法,可以降低優(yōu)化器對(duì)于SQL語(yǔ)句的解析與優(yōu)化開(kāi)銷,從而提升查詢性能。
具體語(yǔ)法:
HANDLER tbl_name OPEN [ [AS] alias] HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,…) [ WHERE where_condition ] [LIMIT … ] HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST } [ WHERE where_condition ] [LIMIT … ] HANDLER tbl_name READ { FIRST | NEXT } [ WHERE where_condition ] [LIMIT … ] HANDLER tbl_name CLOSEHANDLER可以通過(guò)指定的索引去訪問(wèn)數(shù)據(jù)。但此語(yǔ)法并不支持DML操作。
可構(gòu)造如下的Payload:
1';HANDLER FlagHere open;HANDLER FlagHere read first;HANDLER FlagHere close;#也就是通過(guò)HANDLER從FlagHere表中,讀取第一個(gè)索引記錄,然后關(guān)閉。
黑名單限制了部分關(guān)鍵字,其中包含最主要的SELECT關(guān)鍵字,通過(guò)堆疊注入的方式,使用HANDLER作為查詢語(yǔ)句,讀取flag。
總結(jié)
以上是生活随笔為你收集整理的BUUCTF [GYCTF2020] Blacklist的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android,IOS QQ在线客服代码
- 下一篇: 四旋翼自主飞行器探测跟踪系统补充