(https://ctf-wiki.org)
00 基礎了解
CTF簡介 (wolai.com)
00-1 CTF題目型別
-
Web
大部分情況下和網、Web、HTTP等相關技能有關,
Web攻防的一些知識技巧,諸如SQL注入、XSS、代碼執行、代碼審計等等都是很常見的考點,
-
Pwn
Pwn類題目重點考察選手對于二進制漏洞的挖掘和利用能力,其考點也通常在堆疊溢位、格式化漏洞、UAF、Double Free等常見二進制漏洞上,
選手需要根據題目中給出的二進制可執行檔案進行逆向分析,找出其中的漏洞并進行利用,撰寫對應的漏洞攻擊腳本(Exploit),進而對主辦方給出的遠程服務器進行攻擊并獲取flag
通常來說Pwn類題目給出的遠程服務器資訊為nc IP_ADDRESS PORT,例如nc 1.2.3.4 4567這種形式,表示在1.2.3.4這個IP的4567埠上運行了該題目
-
Reverse
Re類題目考察選手
逆向工程能力,題目會給出一個可執行二進制檔案,有些時候也可能是Android的APK安裝包,選手需要逆向給出的程式,分析其程式作業原理,最終根據程式行為等獲得flag -
Crypto
Crypto類題目考察選手對
密碼學相關知識的了解程度,諸如RSA、AES、DES等都是密碼學題目的常客,有些時候也會給出一個加密腳本和密文,根據加密流程逆推出明文, -
Misc
Misc意為雜項,即不包含在以上分類的題目都會放到這個分類,題目會給出一個附件,選手下載該附件進行分析,最終得出flag 常見的題型有圖片隱寫、視頻隱寫、檔案隱寫、流量分析、協議分析、游戲、IoT相關等等,五花八門,種類繁多,
題目型別ctfhub{c8fde6edc982a5a29d6ae461f1373fe6}
BY-NC-SA協議
00-2競賽模式
ctfhub{c18732f48a96c40d40a06e74b1305706}
理論知識
理論題多見于國內比賽,通常為選擇題,包含單選及多選,
Jeopardy-解題
類似于 ACM 編程競賽、資訊學奧林匹克賽,根據總分和時間來進行排名,
一般會設定 一血(First Blood) 、 二血(Second Blood) 、 三血(Third Blood)
AwD-攻防模式
每個隊伍之間的GameBox配置及漏洞是完全一致的,選手需要防護自己的GameBox不被攻擊的同時挖掘漏洞并攻擊對手服務來得分
RHG-自動化[ AI自動化]
利用人工智能或是AI或是自動化攻擊程式來全自動的挖掘并利用漏洞,考驗選手對于漏洞理解以及工程化能力,
選手需要撰寫自動化程式來請求介面獲取題目相關資訊,該類程式通常稱之為bot,在程式中全自動訪問并挖掘目標漏洞,完成利用漏洞攻擊并獲取flag的程序,獲取到的flag也由程式自動化提交,RHG因為是由bot全自動進行作業,所以比賽開始即可視為結束,
RW-真實世界
該賽制著重考察選手在面對真實的環境下的漏洞挖掘與利用能力,通常RW模式出題也會圍繞著能夠應用于真實滲透攻擊當中的漏洞
RW常見題型為VM/Docker逃逸、針對瀏覽器的攻擊、針對IoT/Car等設備的攻擊,Web類攻擊等等
RW模式是以展示效果來作為題目是否完成的準則,所以在RW模式中并不存在Flag,
KoH-搶占山頭
選手面對的是一個黑盒的目標,需要先挖掘漏洞并利用漏洞控制目標,將自己的隊伍標識(隊伍名稱或是Token之類)寫入到指定檔案,隨后在該主機上進行加固等操作防止其他隊伍攻擊,主辦方會定期去檢查標識檔案,根據檔案中的隊伍標識來判定本回合分數給予哪個隊伍,
Mix[混合]
混合模式結合了以上多種模式,采取積分制裁定序列,
ctfhub{d452bfcf91e0a1f8e4a1b26a03c59c9c}
00-3 比賽形式
CTF比賽一般分為線上賽和線下賽,通常來說,線上賽多為初賽, 線下賽多為決賽, 但是也不排除直接進行
ctfhub{46ea72b1f8baa828b6fdab002a8ffdff}
01 Web前置技能
01-1 Http協議
01-1-1 請求方式-題目
題目如下:

題目考點是 HTTP Method
我就去搜了搜Http 請求方法是什么,
HTTP 請求方法 | 菜鳥教程 (runoob.com)
根據 HTTP 標準,HTTP 請求可以使用多種請求方法,
HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD 方法,
HTTP1.1 新增了六種請求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法,
這次這道題學會了GET請求指定的頁面資訊,并回傳物體主體,
示例域 (example.com)
關于curl命令的用法:
curl 的用法指南 - 阮一峰的網路日志 (ruanyifeng.com)
本題學到curl -v
輸出通信的整個程序,用于除錯,
curl 控制臺請求,引數帶中文,回傳中文亂碼問題小結這篇講解了使用curl出中文亂碼的解決以及curl的本意,
題解頁面 請求方式 | CTFHub
題解:
curl -v -X CTFHUB http:.............
//后續視情況而定
我獲得的答案flag: ctfhub{e78226f7835380a09fb17d51}
01-2-1 302跳轉-題目

我的問題在于找不到這個界面,也就不知道它原本是php而不是html;其次是php向html的轉換就是302跳轉嗎?這方面的知識我實在不明白,
1015-解決一部分
好了解決了一部分:在已經打開頁面控制器的情況下,訪問index.php,但是會發現跳轉到index.html,從下圖可以看出發生了這種變化,至于具體細節,上面的時間條是什么,后續得了解一下edge的控制器,
1016-已解決,
解決方法,可以看到頁面上有Give me Flag的鏈接,點擊后卻跳轉到No Flag here! (ctfhub.com)說明發生了302跳轉,
題解頁面 302跳轉 | CTFHub
本題考點:HTTP狀態碼
//-1-1 HTTP狀態碼 | 菜鳥教程 (runoob.com)概覽
當瀏覽者訪問一個網頁時,瀏覽者的瀏覽器會向網頁所在服務器發出請求,當瀏覽器接收并顯示網頁前,此網頁所在的服務器會回傳一個包含HTTP狀態碼的資訊頭(server header)用以回應瀏覽器的請求,
HTTP狀態碼的英文為HTTP Status Code,
下面是常見的HTTP狀態碼:
200 - 請求成功
301 - 資源(網頁等)被永久轉移到其它URL
302- 臨時移動,與301類似,但資源只是臨時被移動,客戶端應繼續使用原有URI
404 - 請求的資源(網頁等)不存在
500 - 內部服務器錯誤
//-2-2 特別地,關于302狀態碼;
(http302跳轉的區別 )
當你用瀏覽器點擊一個頁面鏈接的時候,隨即你看到了一個新的網頁展示在瀏覽器內,在這個程序中,瀏覽器其實是在不斷的接收服務器端的應答(這個應答是服務器端的狀態,所以回傳碼叫狀態碼),從而來決策下一步來做什么(盡管大部分情況下,你毫無感知的就打開了你想要的頁面),這個應答即狀態碼(status code)
而狀態碼為301和302就表示重定向,
301表示這個網頁已經永久的由服務器的A路徑下移動到路徑B下,
而302表示臨時移動到B路徑下,對應到Url地址也即http://baidu.com/file/A/1.html到http://baidu.com/file/B/1.html,當瀏覽器訪問前面一個地址的時候,這個時候服務器會告知瀏覽器,請到B路徑下獲取這個檔案,隨后瀏覽器重新發起網路請求,請求B路徑下的頁面,經過渲染,呈現給用戶,例如淘寶的例子,請求http://taobao.com,收到302,從而瀏覽器再次請求http://www.taobao.com獲得頁面內容,
//-3-3 顯性URL和隱性URL
301重定向,也叫“永久性轉移“,搜索引擎在抓取新內容的同時也將舊的網址替換為重定向之后的網址, 302跳轉,”臨時跳轉“,搜索引擎在抓取新的內容也將舊的網址替換為重定向之后的網址, 統稱為顯式跳轉
為什么要有301重定向呢?
首先是網址規范化問題 http://www.test.com http://test.com http://www.test.com/index.html http://test.com/index.html 站長是沒辦法控制別的網站使用哪一個網址連向自己的主頁,所以應該在主機服務器上,把所有可能成為主頁網址的URL,通過301重定向到選擇的主頁版本上, 另外是如果站長有諸多個域名: http://test.com http://test.net http://test.org http://test.com.cn http://test.cn 這些域名全部指向一個網站http://test.com 或者 注冊了一個很長的域名http://longtestnametest.com,也注冊了縮寫域名方便記住test.com,其中一個做域名,另一個就可以轉向到主域名,
使用301重定向,當網頁A用301重定向到網頁B時,搜索引擎可以肯定網頁A永久的改變位置,或者說實際上不存在了,搜索引擎就會把網頁B當作唯一有效目標,
很多時候其他網站會鏈接到 http://test.com http://www.test.com/index.html http://test.com/index.html 而不是希望的 http://www.test.com 如果使用301跳轉,把前三個URL轉到最后一個上,PR也就集中在網頁 http://www.test.com了, PR : PageRank 網頁排名
本文下面是一些關于301和302的實作,這需要瀏覽器的分析工具:分析運行時性能入門 - Microsoft Edge Development | Microsoft Docs,到這里疑問基本可以收束了,
上面301、302都是顯示跳轉,下面多了解一下隱式調轉,隱式跳轉的實際效果就比如:網址欄中還是 yinshi.weihaitong.xyz,而實際頁面就已經是百度的初始頁面了,這個到這里回頭再深入了解,
決議頁面:No Flag here! (ctfhub.com)
題解分析:
可以發現用Give me Flag訪問,會自動跳轉到index.html,可知發生了302

題解1 直接用 curl 訪問 index.php 即可得到 flag
curl -v http://..........
即可;
親身實踐,-v可以,不加不行,
解法2(未作
可以掛上 BurpSuite 之后訪問 index.php

由于做題極其吃力,我去看了看菜鳥教程的HTTP教程
HTTP 簡介 | 菜鳥教程 (runoob.com)但是看完總感覺缺了點什么,太理論了,不知道對實際有什么指導,
于是我去搜了搜http實戰
此外關于這道題還有一件事:302跳轉時怎么被實作的?
搜了一下接結果出來
-
php 如何實作302跳轉
-
PHP的301,302自動跳轉代碼_
1 //php 如何實作302跳轉 2 <?php 3 4 $the_host = $_SERVER['HTTP_HOST']; 5 if($the_host == 'ieflex.com'){ 6 Header("HTTP/1.1 301 Moved Permanently"); 7 Header("Location: http://www.ieflex.com"); 8 exit; 9 } 10 ?> 11 //這個就回頭再看好了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/319593.html
標籤:其他
上一篇:使用動作腳本3檢測顏色

