1. 程式人生 > 其它 >hgame-week1-web-wp

hgame-week1-web-wp

hgame第一週總結

寫好了一直沒發qwq(就是懶(bushi)

一、Tetris plus!

題目裡說玩到3000分就給flag,還真有點點難度,手機玩到3000跳出來flag被隱藏了,於是又用電腦玩(這裡經歷了重重磨難,首先手機上用了3部手機,前兩部剛開始就飛出頁面外了,不知道是不是程式碼不相容的問題,電腦主機上也是這樣,最後還好虛擬機器裡遊戲可以正常執行)

第一天的時候找啊找,能做的都做了(瞎貓亂撞),最後鎖定在幾個js程式碼裡,發現了幾個可疑的地方:

前面兩個好像沒什麼作用,那麼這個突然出現的長串jsfuck就值得關注了,先是去解了個碼,好像有點接近了,可能是方式不太對,查了一下,jsfuck一般放在控制檯執行(先按提示允許貼上大量程式碼),然後執行。下面是解碼和控制檯執行結果:

我們就得到了flag!

hgame{jsfuck_1s_S0_fUu1n}

二、蛛蛛...嘿嘿♥我的蛛蛛

看名字猜測是網頁的爬蟲,心中竊喜(啥都不會啊喂),開啟一看,有點像hackergame某題,無限點點點

hackergame2021是這樣的

(從1970-01-01點到2021當天)那題比較簡單一點,payload後面的數字對應往後幾天,當時先輸了一個很大的數,跳到了2030那年某日,然後二分法調整一下就出來了,,再來看這道題:

這裡注意初始的payload,後面每一個頁面前半部分的payload都是一樣的,但是我們沒法從後面的payload裡找到順序,那麼還剩連點器和指令碼,假設它和hackergame那個一樣,甚至更多,那麼連點器會很難控制停止頁和次數。

,上指令碼,,,什麼?不會爬蟲?自學他個2天!,,還是要請教一下大佬們關於python的使用,減少走歪路。在引導之下,我使用瞭如下程式碼:

# coding=utf-8
from cgitb import text        #這個包貌似本來就有
import requests              
from bs4 import BeautifulSoup
import re                  #有些可能需要pip install但是我主機上的pycharm貌似都有了,就直接可以運行了
def xhtml( stra,num = 0 ):
    flag_num = 1
    strHtml = requests.get(stra)         # Get方式獲取網頁資料
    html = strHtml.text#結果轉換為文字格式
    soup=BeautifulSoup(html,"html.parser")#轉換成xml格式方便提取,這個用法不常見,需要百度其用法
    if html.count("你現在在") == 0:#或者("flag")==2#或者長度不為特定1-x天頁面字數固定某幾個長度(有一點猜測的成分,但是多試幾次就好了,實現方法很多。這裡程式碼的意思是當前頁面沒有了你現在在這四個字。
        flag_num = 2
    global keykkK

    for k in soup.find_all('a'):#a標籤,超連結(開啟原始碼可以看到有幾個點我試試就有幾個a標籤,而每次都只有一個a標籤裡面有內容,即?key=……,那麼我們把它取下來和前面的url進行拼接
        num = num + 1                      # 用於驗證
        if len(k['href']) != 0:
            keykkK =  k['href']#直接獲取a標籤href屬性值
                                     # 查詢flag實現 待實現 之後將flag帶到while中判斷
    return flag_num ,keykkK,num
                                          # 返回 flag標記、url、當前關卡數
uflag = 1     # flag 初始化
key = 0         #驗證 第幾個頁面
a = 0           #驗證 第幾關
straa = 'https://hgame-spider.vidar.club/ba357f7c0a'

while uflag == 1 :#直到出現目標停止迴圈

    if key == a:
        key += 1                            #相等就證明在執行正常
        resu = xhtml(straa)
                                            #獲取返回值

        print("第"+ str(resu[2]) +"關")
        a = resu[2]#當前頁面幾個[點我試試]
        uflag = resu[0]#獲取標誌引數情況
        kk = resu[1]                         #key值,進行url拼接
        straa = 'https://hgame-spider.vidar.club/ba357f7c0a'  #強制重置URL
        straa = straa + kk
        print(straa)









這裡插一句,觀察網頁頁面特徵和原始碼極為重要,就像這個a標籤裡的內容就是觀察得知

執行指令碼:

計數器最後跳回了第一關(只是一個標記),說明找到了,最後這個100關和第1關的網址就是存在flag的那一頁

然後就找找了,找到flag:

hgame{8a777c618441180e3c3ca82ad2a13023c8d3602197b69ab373f8724e2381f368}

三、Fujiwara Tofu Shop

這道題出的很好,下次不準再出了。。把我這菜菜逼瘋了

上來一個不熟悉的地址xxx.xxx.top,提示qiumingshan.net,很蠢的試了億下,還各種抓包,啥事兒沒有,幾經周折,噢,原來是http報文頭,,解題常用:Referer、Cookie、User-Agent、XFF

burp請求和響應報文頭例如:

通用頭部欄位 : 1.Cache-Control 2、Connection 3、Transfer-Encoding 4、Via

請求頭部欄位: 1 Accept 2 Accept-Encoding 3 Accept-Language 4 Authorization 5 If-Match 與If-None-Match 6 If-Modified-Since與If-Unmodified-Since 7 If-Range 8 Referer 9 User-Agent

響應頭部欄位: 1 Accept-Ranges 2 Age 3 Etag 4 Location 5 Server 6 Vary 7 WWW-Authenticate

實體頭部欄位: 1 Allow 2 Content-Encoding 3 Content-Language 4 Content-Length 5 Content-MD5

Cookie相關的頭部欄位:1. Set-Cookie 2.Cookie

解:試了一下,qiumingshan.net是referer偽造(表示來源,這裡個人理解為創造了一個秋名山的地點來源)

然後是User-Agent(使用者代理)

oh,樹莓曲奇,曲奇很容易想到cookie,那就cookie吧,試了一下啊,啥都沒有

卡的有點久,東找找西找找看到了個警告,cookie的flavor值,說明要flavor=Raspberry

emmm,這裡沒辦法了,抓個包試試

好傢伙,再一查汽油的英文:gasoline,真好,,

下面就是XFF填本地地址了127.0.0.1

焯!大黑闊,大黑客……要幹啥?

一整個大出乎意料給到,奇怪的姿勢增加了,X-Real-IP,而且如果XFF存在的話會把它覆蓋掉,所以

:X-Real-IP: 127.0.0.1

nice!雖然中間走了很多彎路,浪費不少時間,但是還是有收穫噠……

hgame{I_b0ught_4_S3xy_sw1mSu1t}

4.easy_auth

首先題目描述裡面,題目auth提示登入(驗證使用者是否擁有訪問系統的權利)(即鑑權問題),描述裡“沒有除錯完”提示存在弱密碼等問題,f12檢視,只有一處出現了反常,本地儲存裡出現了token(前後端互動使用)。正常登入獲得自己的token

,前往jwt解析工具

翻譯了一下,簽名無效(驗證失敗),把secret刪了,成功

看上面的資訊,手動改username: "admin"(題目描述),猜測id: 1(1,2,3……)(原來username為另外字母,id好像是6049)。然後重新生成了一個encoded

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJRCI6MSwiVXNlck5hbWUiOiJhZG1pbiIsIlBob25lIjoiIiwiRW1haWwiOiIiLCJleHAiOjE2NDQzNTUyMzQsImlzcyI6Ik1KY2xvdWRzIn0.-j4xVQDz-41hFneJoAychIMhZn0umBJr6Sfr93XgaYs

重新放到token裡

得到

hgame{S0_y0u_K1n0w_hOw_JwT_Works1l1lL}