發現了注釋資訊以及head裡面有flag欄位,明顯是乙個base64,嘗試解密提交失敗。注釋說要傳送乙個key為margin的post資料,重新整理多次發現flag都不同,所以只能指令碼了
import requests
import base64
import re #正則匹配模組
s = requests.session(
)#建立會話
url =
""head = s.get(url)
.headers #獲取頭部資訊
result = head[
'flag'
]#得到flag的value
result = base64.b64decode(result)
.decode(
'utf-8'
)#第一次base64解碼
result = re.search(
'\w+$'
, result)
.group(0)
#正則匹配base64編碼的flag
result = base64.b64decode(result)
.decode(
'utf-8'
)#第二次解碼
payload =
print
(s.post(url, data=payload)
.text)
#post傳輸資料且輸出返回資訊
這題沒有什麼難度,作用是熟悉一下requests模組。坑是注意head裡的flag第一次是全部base64編碼,解碼後輸出的那串字串也是base64,需要再解碼一次
bugku 速度要快
在源 裡有乙個提示,說傳遞margin引數,但是又不知道傳什麼,在響應頭里有個flag,應該是base64加密的,然後解密後發現好像還可以再解密一次,讓後再此解密,所以就把base64解密的數值傳過去試試。但是好像它一直在變,讓後就要寫指令碼自動傳遞,我也不知道為啥。寫指令碼和一直變又什麼聯絡嗎,但...
bugku 速度要快
開啟題目 抓包 但是多go幾次就會發現flag值是動態改變的,所以傳送post請求時必須與get請求在同一會話下才能行。先把flag拿去base64解碼 py指令碼如下 import requests import base64 url session requests.session myrequ...
BugKu 速度要快
題目鏈結 這題開啟就只有 我感覺你得快點 這句話,抓包檢視發現有段注釋,讓我們post margin的值。看來又是編寫指令碼來實現了。關鍵是margin的值在哪呀,通過抓包在response的headers中發現了名為flag的字串,仔細看了下應該是base64加密了。所以進行解密,但只有 後面是正...