iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
Security

一起資安入門 -- picoCTF 探索與解題系列 第 25

[2021鐵人賽 Day25] Web Exploitation Web滲透題目 01

  • 引言
    今天我們來解 Web 滲透 ( 滲透測試 ) 的題目,
    在這之前,你需要先初步了解 HTTP 以及它的許多請求方法

    這邊就簡單講 HTTP 兩個常用請求方法 GET, POST
    以及今天解題用的一個額外方法 HEAD

    1. GET
      這個方法主要用於一般讀取網頁,當你不需要對伺服器傳送什麼參數時,
      主要都是用 GET ,但它也可以傳送參數,只是能傳送的資料少,
      而且資料會直接在網址中看見。
      ( 以 picoCTF 某頁面為例,
      https://play.picoctf.org/practice/challenge/132?category=1&page=1
      網址後會接上由 ? 開頭的一串資料,資料間由 & 分隔,
      這明顯是 GET 請求,且資料是 category=1 、 page=1 ,
      從字面上可以看出這個請求希望帶到「第1個分類」與「第1頁」 )

    2. POST
      當你需要傳送較大量資料時,通常會使用 POST 請求,
      它會將資料以「表單」形式送給伺服器,諸如「登入」、
      「填表單」、「線上測驗」等等,幾乎都是以這種請求完成,
      POST 請求的資料不會在網址中被看到,而且傳送資料大小無限制。

    3. HEAD
      這個請求其實較沒那麼常用,它跟 GET 非常類似,
      但是 GET 會把請求的網頁送過來 ( 你才能看到請求的頁面 ) ,
      HEAD 則不會,它只會把網頁的檔頭資訊傳過來,讓你知道請求內容的大小等資訊,
      因此 HEAD 請求常被用在請求內容相當大時,
      或是你需要短時間內發出許多請求,來確認內容中一些資訊的時候。

    更多資訊可以看看我分享的維基百科連結,或是找找關於 HTTP 的資訊,
    基本上想要解這個主題的題目一定必須對 HTTP 有基本了解。

  • Web Exploitation / GET aHEAD
    https://ithelp.ithome.com.tw/upload/images/20211010/20111429mId5Tv3xv9.png
    這題的標題是有玄機的, get ahead 原來的意思是 獲取成功
    但同時也暗示 get a head ,希望你用 HEAD 請求來解題,才能「獲取成功」。

    題目給了一串網址,直接點進去會看到一組按鈕,一個按了背景變藍,一個按了背景變紅。
    通常拿到網頁第一件事,就是按下 F12 ,開啟開發者工具 (限定 Google Chrome) ,
    https://ithelp.ithome.com.tw/upload/images/20211010/20111429hTlfpdvmUx.png
    你可以從中找到許多網頁的資訊,但是裡面並沒有可用的 flag 線索。

    其實從題目標題下手就行了,我們對伺服器發出 HEAD 請求吧!
    但是要怎麼做呢?

    我們必須寫程式來對這個網頁伺服器發出請求, Python 就是相當適合的工具:

    import requests
    
    r = requests.head('http://mercury.picoctf.net:45028/')
    
    print(r)
    print(r.headers)
    

    Requests 是 Python 中最常用來處理 HTTP 的函式庫,
    其中它也可以處理 HTTP 請求。

    r = requests.head('http://mercury.picoctf.net:45028/')
    代表對該網址發出 HEAD 請求,並把結果回傳給 r 。
    print(r.headers) 可以把請求得到的檔頭印出來。

    執行會得到:

    <Response [200]>
    {'flag': 'picoCTF{r3j3ct_th3_du4l1ty_775f2530}', 'Content-type': 'text/html; charset=UTF-8'}
    

    原來題目將 flag 嵌在 HEAD 請求的檔頭中。


上一篇
[2021鐵人賽 Day24] Forensics 鑑識學題目 01
下一篇
[2021鐵人賽 Day26] Web Exploitation Web滲透題目 02
系列文
一起資安入門 -- picoCTF 探索與解題30

尚未有邦友留言

立即登入留言