# picoCTF <font size='5px' color='#FF1493' face="DFKai-sb"><b> </b> </font> ## <font size='10px'>Web Exploitation</font> ### <font size='6px'>題目GET aHEAD</font>  * <font color='red'>提示</font> 1. 他說可能我們用大於兩種的選擇 2. 我們可以透過burpsuit類似工具來修改請求 * <font color='red'>解題思路</font> 先打開F12看一下,我們會看到html裡面兩個按鈕請求不一樣。  一個是GET 跟POST當然根據提示我們還可以用別種請求試試看, 這裡用到[curl指令](https://blog.techbridge.cc/2019/02/01/linux-curl-command-tutorial/) ```bash $curl -I URL ``` 就會顯示出來了  ### <font size='6px'>題目Cookies</font>  * <font color='red'>解題思路</font> 看題目一定八九不離十跟cookie有關係, 一樣打開F12->application 改改看cookie, 會發現每改一次他輸出都不太一樣,可以順著這個思路去改改看, 會發現在name=18時,可以看到我們的flag。 不過這題是因為數字比較小,如果牠放到很後面,我們當然不可能慢慢點, 所以我們可以通過寫程式方式,我這邊提供[別人的程式](https://github.com/JeffersonDing/CTF/blob/master/pico_CTF_2021/web/cookies/ape.py),他用py迴圈去檢測,當然也可以直接在shell下 ```bash $for i in {1..100}; do #你要的指令curl之類的 ``` ### <font size='6px'>題目Insp3ct0r</font>  * <font color='red'>解題思路</font> 題目說了要我們檢查code,我們就F12檢查吧, 首先看到html他有註解沒有刪掉,而且看起來像旗幟  不過好像只給1/3的部分,我們接著找其他檔案。 F12->Source 依序在js 跟css找到我們剩餘的flag。 這題對新手蠻實用的,許多人架網站註解都會忘記刪掉。 ### <font size='6px'>題目Scavenger Hunt</font>  * <font color='red'>解題思路</font> 題目叫做尋寶獵人,且敘述說周圍隱藏者一些有趣的訊息, 感覺就跟上一題很像,那我們一樣檢查網站的code,馬上就在html看到一小段flag, css第二段,可惜的是js沒有找到但他也提供我們訊息防止google引擎查詢, 馬上就聯想到[robots.txt](https://www.newscan.com.tw/all-seo/robots-block-search-engines.htm),我們訪問看看。  這裡也出現一段flag並出現提示,網頁適用阿帕契架的,那就有可能會有[.htaccess](https://www.newscan.com.tw/all-seo/block-search-engines-htaccess.htm),我們在這裡找到第四段,接下來的提示是mac,那我們再找找看[.DS_Store](https://zh.wikipedia.org/zh-tw/.DS_Store)全部flag就找到了。 ### <font size='6px'>題目where are the robots</font>  * <font color='red'>解題思路</font> 題目寫哪裡有robots,還記得上一題我們才剛剛寫到robots.txt嗎, 我們試試看直接去查看/robot.txt,發現他有阻止一個網站被找到,  我們就去看看這是甚麼網站吧,很好進去答案就找到了:> ### <font size='6px'>題目logon</font>  * <font color='red'>解題思路</font> 題目說好像不會講檢查登入?除了joe,那我們猜測joe應該是root管理員, 我先隨便打帳密進去,進去發現應該是權限不足? !,F12到處檢查一下, 我發現cookie有一個admin=false看起來超奇怪的,我把它改成True, 結果Flag就出來了 ### <font size='6px'>題目dont-use-client-side</font>  * <font color='red'>解題思路</font> 題目說沒有使用者? !不太懂他得意思, 沒關係我們一樣F12看一下有沒有可以利用的咚咚, 我看了一下Html裡面藏著js驗證指令  細看發現,把後面按照split順序拼起來就是flag, <font color=' DeepPink'>picoCTF{no_clients_plz_7723ce}</font> 我也懂了為啥叫做沒有使用者,因為他怎麼樣都不會進去。 你正確他也不會跳轉,他只會跟你講對了而已。 ### <font size='6px'>題目login</font>  * <font color='red'>解題思路</font> 打開F12,東看看西看看看到他的js,感覺很奇怪我們可以用[縮排網站](https://www.tutorialspoint.com/online_javascript_formatter.htm)幫忙縮排, 然後縮完,會看到一串很像base64的密文  ,可以用線上[Decode解解看](https://emn178.github.io/online-tools/base64_decode.html)答案就出來了。 ### <font size='6px'>題目Includes</font>  * <font color='red'>解題思路</font> 這題我是不太知道要考甚麼,他說去維基百科查include,好吧, 一樣先看F12有啥東西,恩..js跟css註解就有答案了,完全不知道這題要考啥。 ### <font size='6px'>題目Inspect HTML</font>  * <font color='red'>解題思路</font> 題目叫做檢查html,那就F12一樣檢查看看吧,恩..又是註解。 你看超簡單你只要會看F12就能解大部分題目了。 ### <font size='6px'>題目Local Authority</font>  * <font color='red'>解題思路</font> 看到題目這個名字,我以為是改cookie之類的,因為我點開也有admin咚咚, 超奇怪但我試了幾次都沒有,我點開了提示,他說檢查看看網站是怎麼驗證的, 那我們就登登看,發現會跳轉到login.php,我們打開看一下F12, 他驗證的程式有沒有寫在裡面吧,欸發現了secure.js點開就會看到帳密, 登進去flag就出來了。 ### <font size='6px'>題目Search source</font>  * <font color='red'>解題思路</font> 題目說好像有留強大重大的神器?,不太懂不管我們一樣F12找找看, 他的網站超級多的,為了效率我們ctrl+f搜尋picoCTF,結果發現在style.css, 裡面出現flag。 ### <font size='6px'>題目caas</font>  * <font color='red'>解題思路</font> 這題還蠻有趣的,點開網站看得出,他叫我們把訊息寫在網址後, 就能跟這個cowsay互動,不管寫甚麼他都可以印出來,那我們試試看有沒有文件漏洞, 我打上linux指令,盡然可以互動欸  那我們查查看這個falg.txt看起來超奇怪的檔案, 在後面加cat falg.txt答案就出來了。  這個題目超有趣 ### <font size='6px'>題目picobrowser</font>  * <font color='red'>解題思路</font> 這題我點網址進去,中間出現了flag看起來很奇怪,點點看, 跳出了 ``` You're not picobrowser! Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 ``` 反正就是要我用picobrowser才給我點,F12的右邊點更多,有一個 more tool然後裡面有一個network conditions,點開可以改瀏覽器名字 我們可以把它改成他要的picobrowser像這樣  重新點就可以了,flag就出來了 ### <font size='6px'>題目Client-side-again</font>  * <font color='red'>解題思路</font> 他說我們能不能闖進這個超強門呢,恩不知道一樣F12打開, 欸奇怪盡然沒有js或是css檔案,不過他要驗證一定會有js,所以應該是寫在 html裡面,我們看一下,果然有一個很長的js code,我們複製用之前那個 [js排版工具](https://www.tutorialspoint.com/online_javascript_formatter.htm) 我們會看到一堆flag片段,我們按造順序把它組合起來就是答案了。 不過組合過程偏麻煩,還要用到F12 console查看js變數,然後一個一個對照, 我這裡就不做了,我傳別人寫好的[網址](https://ithelp.ithome.com.tw/articles/10246749) ### <font size='6px'>題目Web Gauntlet</font>  * <font color='red'>解題思路</font> 這題看提示似乎要我們用注入器,但是可能給我們另一個網址好像是他的過濾器, 我們可以對應看看過濾器,下面是每個回合。 1. 第一回合過濾器說不能用OR,那我們試試看admin' -- 2. 第二回合過濾器說不能用--,那我們用admin'/* 3. 第三回合過濾器說不能用><,那等於上回合還可以用 4. 第四回合過濾器說不能用admin,那我用字串結合的方式a'||'dmin'/* 5. 第五回合過濾器說不能用union攻擊,那上回合一樣可以用 最後他叫我們再去檢查看看filter.php,裡面就出現了全部回合的驗證步驟, 以及flag註解,這題可以上網查sql注入清單一個一個是拉。 ### <font size='6px'>題目Irish-Name-Repo 1</font>  * <font color='red'>提示</font> 1. 我想知道用戶是否保存在數據庫中? 2. 嘗試考慮網站如何驗證您的登錄信息。 * <font color='red'>解題思路</font> 從以上提示能判斷出,題目想要叫我們去看他的程式碼是怎麼判別登入的。 首先F12 Elements 層層打開能看到一個login.php 用post  我們試試看把debug 後面value改成1  跳出這個sql的語法,那我就能試試看以前sql注入的漏洞 參考網址:https://ithelp.ithome.com.tw/articles/10189201 在username上打'OR 1=1 -- 便能破解  ### <font size='6px'>題目Forbidden Paths</font>  * <font color='red'>解題思路</font> 題目說flag在flag.txt上 進到網頁我們會發現這個read看起來很可疑  又因為題目說nginx的index放在/usr/share/nginx/html下 所以我用打了linex語法 ../../../../flag.txt 便找到  ### <font size='6px'>題目SQLiLite</font>  * <font color='red'>解題思路</font> 測試了一下發現也是sql注入 一樣打'OR 1=1 -- 就可以登入 當然他的flag藏起來了,這裡F12打開就可以看到  ## <font size='10px'>Foriensics 鑑識</font> <font color='purple' size='6px'><span>基本工具</span> </font> * binwalk * [strings](https://eecsmt.com/linux/linux-strings/) ### <font size='6px'>題目Matryoshka doll </font>  * <font color='red'>解題思路</font> 提示中跟我們講,有隱藏的文件那我們用binwalk掃掃看 ```bash $binwalk -e dolls.jpg ``` 會發現隱藏文件出來了 一層一層的解開會找到最後一層的flag.txt ### <font size='6px'>題目Glory of the Garden</font>  * <font color='red'>解題思路</font> 直接點開裡面的圖長這樣  提示有說16禁制編輯器? 我們先用vim打開看看,然後<font color='pink'>/picoCTf</font>就出現了, 他藏在最後面  ### <font size='6px'>題目Enhance!</font>  * <font color='red'>解題思路</font> strings指令用來檢視二進位檔案。 用strings來檢查看看 會發現答案藏在裡面 ```bash $strings drawing.flag.svg ``` ### <font size='6px'>題目Lookey here</font>  * <font color='red'>解題思路</font> 需要了解grep用法 .*代表所有字元都可替代 ```bash $cat anthem.flag.txt | grep picoCTF{.*} ``` ### <font size='6px'>題目Packets Primer</font>  * <font color='red'>解題思路</font> 用wireshark打開選擇任一個tcp 右鍵點擊follow看他的tcp stream裡面就是我們找的flag ### <font size='6px'>題目Redaction gone wrong</font>  * <font color='red'>解題思路</font> 把下載完的pdf點開,發現有一部分是黑的  我們試試將他反白就會發現最後一個是我們的flag ### <font size='6px'>題目So Meta</font>  * <font color='red'>解題思路</font> 二進制打開順便記得用grep查查看 ```bash $strings pico_img.png | grep picoCTF{.*} ``` 可以找到我們的flag了 ### <font size='6px'>題目shark on wire 1</font>  * <font color='red'>解題思路</font> 提示要我們用wireshark以及檢查所有stream 我們就一個一個檢查,檢查到第六個時找到了答案  ### <font size='6px'>題目extensions</font>  * <font color='red'>解題思路</font> 我們vim打開發現一堆亂碼,但開頭顯示png 代表這有可能是一個png檔,我們將他改副檔名 便成功找出flag ### <font size='6px'>題目What Lies Within</font>  * <font color='red'>解題思路</font> 提示叫我們找線上decode,那我們就找吧 找[decode image](https://stylesuxx.github.io/steganography/) 照片上傳上去flag就出來了 ### <font size='6px'>題目MacroHard WeakEdge</font>  * <font color='red'>解題思路</font> 這題好難好麻煩,我看這個人的[解答](https://ctftime.org/writeup/26975) 我列出幾點我比較不熟習 1. $7z -x file(解壓縮) 2. ls -la *(可以遞迴顯示) 3. echo "string" | base64 -d (解密) 依序上面三點網址 [7z](http://note.drx.tw/2008/04/command.html) [ls *](https://n.sfs.tw/mymedia/index/10365) [base64](https://shengyu7697.github.io/linux-base64/) ## <font size='10px'>General Skills</font> [**grep指令**](https://blog.gtwang.org/linux/linux-grep-command-tutorial-examples/) ```bash $grep 關鍵字 檔案1 檔案2 ... $grep 關鍵字 /kali/123.file $grep 關鍵字 /kali/*.conf #在kali下所有.conf,尋找關鍵字 $grep -i 關鍵字 /kali/123.file #不分大小寫 $grep -n 關鍵字 /kali/123.file #顯示行數 $grep -v 關鍵字 /kali/123.file #反向搜尋除了關鍵字其他顯示 $grep -r 關鍵字 /kali/123.file #遞迴搜尋 $grep -A 1 關鍵字 /kali/123.file #多顯示後一行 $grep -B 1 關鍵字 /kali/123.file #多顯示前一行 $grep -B 1 關鍵字 /kali/123.file #多顯示前後各一行 ``` [**find指令**](https://blog.gtwang.org/linux/unix-linux-find-command-examples/) ```bash $find / -name "flag.txt" #從根目錄底下搜尋 $find / -name "flag.txt" 2>/dev/null #過濾掉報錯訊息 ``` ### <font size='6px'>題目Big Zip</font>  * <font color='red'>解題思路</font> 這題解壓縮完有許多txt檔跟資料夾 要從這麼多資料一個一個找到flag 是有點難,所以要透過grep來尋找 ```bash $unzip big-zip-files.zip $grep -r pico * ``` ### <font size='6px'>題目First Find</font>  * <font color='red'>解題思路</font> 此題跟上一題有異曲同工之妙 解壓縮完看起來很多資料夾跟txt 我們一樣用grep 遞迴去尋找 ```bash $unzip files.zip $grep -r pico * ``` ### <font size='6px'>題目Based</font>  * <font color='red'>解題思路</font> 反正就是nc連線過去會出現一堆題目, 教你分別把二、八、十六進制轉成string 我們可以用線上轉換器 [二進制、十六進制to string](https://www.rapidtables.com/convert/number/binary-to-ascii.html) [八進制to string](http://www.unit-conversion.info/texttools/octal/) 我不知道為啥第一個網站沒辦法八進制轉string 回答完flag就跑出來了 ### <font size='6px'>題目mus1c</font>  * <font color='red' >解題思路</font> 老實說這題我是看不懂要幹嘛, 但提示有講到rockstar這程式語言 我們就將他給的文件丟上去看看 [網站](https://codewithrockstar.com/online) 轉換發現看起來像是ASCII 我們丟上去ASCII to string的[網站](https://codebeautify.org/ascii-to-text) 發現出現<font color='blue'>rrrocknrn0113r</font> 轉成<font color='pink'>picoCTF{rrrocknrn0113r}</font> 就是答案了 ### <font size='6px'>題目flag_shop</font>  * <font color='red' >解題思路</font> 這題我們先看他的程式<font color='blue'>store.c</font> 然後看了一下提示,我猜是要把c程式用爆, c的int是有[大小限制的](https://openhome.cc/Gossip/CGossip/Datatype.html) 我們是看看輸入會超過的範圍,他將會產生亂數使我們金額剩餘超大 便可以買我們的flag了
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up