CTF入門之旅(三)

2021-10-19 21:47:49 字數 1898 閱讀 8658

請使用微笑過關

題目:開啟位址可以看到這樣的題目介面,進一步開啟其中的源**。

分析上面的**,為了獲得flag,可以得出以下幾條線索:

**審計:

1.必須對"^_^"賦值

2."^_^"的值不能有 . % [0-9] http https ftp telnet 這些東西

3.$_server['query_string'],即"^_^=(輸入的值)"這個字串不能有 _ 這個字元

4.滿足$smile!=0

5.file_exists ($_get['^_^'])必須為0.也就是$_get['^_^']此檔案不存在

6."$smile"必須等於"(●'◡'●)".也就是file_get_contents($_get['^_^'])必須為"(●'◡'●)"

分析:這是一道php偽協議題

為了符合第一點和第三點:既要對"_「賦值,又得想辦法去掉」_「中的」_"

那麼可以採用url編碼變為"%5f".這樣第3點就滿足了,所以輸入應該為"%5f"

繼續分析第2點,這個地方把 http https ftp telnet 這些給過濾了

而第6點又要通過file_get_contents()取出get[』_』]裡的值.

根據第5點get[』_』]又必須不存在

所以get[』_』]只能是字串"(●』◡』●)",不可能是檔名

那麼file_get_contents()裡的引數應該是什麼呢,查了一下,發現data://完美符合.所以我們輸入就應該為"%5f=data:,(●』◡』●)"

介紹一下data型別

"data"型別的url格式,是在rfc2397中提出的,目的對於一些「小」的資料,可以在網頁中直接嵌入,而不是從外部檔案載入。例如對於img這個tag,哪怕這個非常非常的小,小到只有乙個點,也是要從另外乙個外部的檔案例如gif檔案中讀入的,如果瀏覽器實現了data型別的url格式,這個檔案就可以直接從頁面檔案內部讀入了。

data型別的url大概有以下幾種形式:

data:,《文字資料》

data:text/plain,《文字資料》

data:text/html,本題目符合第一種,所以payload為:

我的CTF之旅(一)

最近迷上了ctf capture the flag 刷題,話不多說,開始記錄我的ctf之旅 pico ctf 2013 client side is the best side 75 開啟頁面 看描述應該要輸入密碼,檢視網頁源 找到一段js 發現可以直接找到成功的頁面,開啟連線獲得key yummy...

CTF入門概要

ctf入門簡介 練習平台推薦 1.南郵ctf web題較為簡單,適合入門。其他題較難,短期內不建議寫。writeup多 2.bugku 優點是題量大。難度中等,writeup一般 3.實驗吧 沒寫過,不知道,據說題目難度中等 5.網路空間安全實驗室 題目較為簡單,適合入門學習。先就這麼多吧,以後再不...

ctf入門指南

如何入門?如何組隊?capture the flag 奪旗比賽 型別 web密碼學pwn 程式的邏輯分析,漏洞利用windows linux 小型機等 misc 雜項,隱寫,資料還原,腦洞 社會工程 與資訊保安相關的大資料 reverse 逆向windows linux類 ppc 程式設計類的 國內...