這是一道bugku平台的一道web題,今天距上一次寫ctf題差不多有兩個月了,抱歉!走了一趟寫策劃書的開發路線(發現自己真語言組織能力太low,而且也沒啥開發經驗,就像寫作文一樣次次都是寫著文件走創意賽,,,),打算回歸我的ctf正常軌道,希望還能趕上之前的朋友們進度,為自己鼓勵!!!!
屁話太多,會被打,言歸正題
首先這題是一周前寫的,今天重做了一遍
開啟**,常規操作f12看下原始碼,檢視**頭資訊
**貼上:
import requests
import base64
url = ""
r = requests.session()
headers = r.get(url).headers
str1 = base64.b64decode(headers['flag'])
#str1 = str1.decode() //防止下行**split函式出錯
#str2 = base64.b64decode(str1.split(':')[1])
str2 = base64.b64decode(repr(str1).split(':')[1]) # repr()函式將物件轉化為供直譯器讀取的形式(bety->str)
data =
print (r.post(url,data).text)
得到flag值:key
沒有加str1 = str1.decode()那一步時一直報錯;
——是因為字串有byte型別和str型別,有時運算元型別和操作型別不匹配就會報錯……這時候就要把型別轉換一下(無論是轉換運算元還是操作都行,只要兩者匹配
乙個簡單的方法:
1、byte型轉str型
str1 = str1.decode()
2、str型轉byte型
str1 = str1.encode()
後來發現另一篇部落格用repr函式解決了上述問題。 bugku 速度要快
在源 裡有乙個提示,說傳遞margin引數,但是又不知道傳什麼,在響應頭里有個flag,應該是base64加密的,然後解密後發現好像還可以再解密一次,讓後再此解密,所以就把base64解密的數值傳過去試試。但是好像它一直在變,讓後就要寫指令碼自動傳遞,我也不知道為啥。寫指令碼和一直變又什麼聯絡嗎,但...
bugku 速度要快
開啟題目 抓包 但是多go幾次就會發現flag值是動態改變的,所以傳送post請求時必須與get請求在同一會話下才能行。先把flag拿去base64解碼 py指令碼如下 import requests import base64 url session requests.session myrequ...
bugku 速度要快
發現了注釋資訊以及head裡面有flag欄位,明顯是乙個base64,嘗試解密提交失敗。注釋說要傳送乙個key為margin的post資料,重新整理多次發現flag都不同,所以只能指令碼了 import requests import base64 import re 正則匹配模組 s reques...