南郵CTF web題目總結
這幾天寫了南郵的web題目,都比較基礎,但是對我這個小白來說還是收穫蠻大的。可以藉此總結一下web題的型別
一,資訊都藏在哪
作為ctf題目,肯定是要有些提示的,這些提示有時會在題目介紹裡說有時也會隱藏在某些地方。
1,原始碼,這是最最最常見的。
2,http head頭中,這個一般都會提下 ‘頭’ 什麼的。
3,非常規提示,就比如這個:
如果第一次做ctf題目,不知道還有這些套路,一般不會往這個方面想。
二,302自動跳轉
在開啟某個連結時,會跳轉向另一個連結,而錯過重要資訊。
1,使用burpsuite一步步攔截釋放,這樣不會錯過中間跳轉。
2,如果網頁使用的是js跳轉,可以試試禁用js.
三,訪問來源判斷
這個也是經典題目了,通過判斷ip,後者來源網址。可以總兩個方面偽造
1,http referer頭,這個頭指示的是請求從哪個網站來
2,X-Forward-For頭:這個頭指示請求的ip
四,修改特定資訊
這也是很基礎的,主要有幾個方面
1,GET/POST 表單的內容,包括鍵與值
2,修改HTTP header,多在cookie上有問題
五,php弱型別比較
1,字串與數字比較:這個與mysql的規則比較像,開頭純字母的字串會被轉化為0,
開頭有數字的會被轉化為開頭的數字。
比如:‘123abc’==123
'abc123'==0
這兩個都成立
2,科學計數法:0e開頭的字串會被認為值科學技術法形式,但轉化成科學計數法有時
0成10的若干次方,都是相等的。
‘0e1234560’=='0e789456' 成立
比較明顯的是在MD5加密上,如果兩個字串加密後都以0e開頭,再比較他們的MD5值就會認為相等
也就會認為兩字串相等。
比如:md5('240610708')==md5('QNKCDZO')
3,intvar() 轉換 這個函式可以把字串轉換為數字,規則與第一條類似
六,上傳截斷
參考我的一篇部落格 https://blog.csdn.net/zpy1998zpy/article/details/80545408
七,sql注入
這個平臺上沒有特別在sql注入上難為同學們,也是基本題型
還是參考我的另一篇部落格 https://blog.csdn.net/zpy1998zpy/article/details/80517626
八,十六進位制繞過
十六進位制在於數字比較時,會被轉化為10進位制,但在字串操作時還是16進位制形式。
這裡的繞過就是傳入 54975581388的16進製表示,就可通過對每一位ascii碼的檢查。
九,其他的小知識點
1,javascript aaencode 各種表情符 ,就是特徵
解碼:線上解碼 https://tool.zcmzcm.org/aadecode
有個小問題,如果網頁直接開啟為亂碼,就右鍵另存為,儲存到本地用記事本開啟,再去解碼就行了。
2,JSF*ck 編碼 各種括號加號
線上解碼 http://www.jsfuck.com/
3,.swp檔案,如果有提示就可以檢視 .原檔名.swp
比如:直接訪問 http://站點/ .index.php.swp 可以看到提示內容
4, .bash_history 檔案 同樣的,如果有提示,就可以試著訪問這個檔案,
5,序列化與反序列化,主要還是要懂基本含義與格式,然後呼叫 序列化與反序列化函式即可
這是php反序列化那題生成playload的程式碼
<?php
class just4fun {
var $enter;
var $secret;
}
$o = new just4fun();
$o->enter = &$o->secret;
echo serialize($o);
?>
如果會呼叫函式,就可以操作序列化和反序列化,所有重點還是對題目伺服器程式碼的繞過技巧。
轉載指明出處