1. 程式人生 > >南郵CTF web題目總結

南郵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);
?>

如果會呼叫函式,就可以操作序列化和反序列化,所有重點還是對題目伺服器程式碼的繞過技巧。

轉載指明出處