總結參考: q:
s:首先隨便輸入密碼,並正確輸入驗證碼,進行操作。
事實上,我對這個error不感冒,首先直接說賬號為ctfuser,就必定無法直接出結果。
位址列的「y3rmdxnlcg==」進行base64解密為「ctfuser」,則在傳值時將賬號經過base64加密後進行傳遞。
根據題目的提示,我們重置的目標是admin,日常使用burp,看看有何目標:
可以看到「ctfuser」的base64編碼結果出現了兩個地方,但連同最後一行,我們需要修改三個地方。
admin加密:ywrtaw4=
開心。q:
s:檢視原始碼:
invalid password!
根據提示,反斜槓是突破點,可用來轉義,則重點關注$query='select * from users where name=\''.$username.'\' and pass=\''.$password.'\';';,**中仍然是傳入使用者名稱和密碼的,首先經過clean函式的清洗,刪除反斜槓,最後使用htmlentities()方法將把字元轉換為 html 實體,htmlentities($str, ent_quotes)。
這種轉換我們在平時網頁中輸入時也會自動被轉換為html實體,以防止被html解釋或執行。單引號跟上反斜槓也會被轉移。
直接進行轉換:
'select * from users where name=''+username+'' and pass='' + password + '';'
如果傳入的是:username=ctfuser&password=1234
源**即為:select * from users where name='ctfuser' and pass='1234',其中,在資料庫中反斜槓將會被過濾掉,只剩下需要轉移的單引號!,其他單引號用於字串的拼接。
提示中告訴我們可以使用反斜槓對單引號進行轉移,上面的源**可事先進行一些構造:
select * from users where name='ctfuser' and pass='1234'
在mysql查詢語句中轉義字元不參與閉合,所以第乙個單引號將和第三個單引號進行閉合,然後使用
username=ctfuser\&password=or 1 %234,即可繞過,sql語句如下:
需要告一段落了,感覺自己水平有限,還需要實戰中慢慢積累經驗。
繼續加油!
SQL注入1(南郵CTF)
提示看原始碼 secure web login head if post user post pass if query user admin echo query user 看這個 if query user admin echo logged in flag 題目有兩個輸入框,乙個user乙個密...
CTF 南郵攻防平台(web2)
burpsuit抓包,將響應頭中的cookie項的login 0 改為login 1 即得flag 1 按照指示訪問index.txt 2 讀php原始碼,發現是urldecode多進行了一次,那麼傳參的時候多進行兩次url編碼 提交即可 burpsuit抓包,在響應頭中新增x forwarded ...
南郵ctf逆向最後一題
你大概需要乙個優秀的mac 雖然是osx下的程式,但並不一定真的要有mac 正好我也沒mac,只能拖到ida裡面了,發現還真可以 ida有點厲害 找到right wrong字串,觀察下主框架然後果斷f5看下偽 可以看出來就是簡單的輸入長度為56的字串然後經過func1,xfun1,xfun2,xfu...