BUU-actf_2019_onerepeater-WP
这是一道简单的格式化字符串和ret2shellcode的题目。

没开nx基本上是shellcode了。



我们就可以知道,程序直接输出了栈地址,还有一个格式化字符串漏洞可以实现任意地址覆写,解决了由于buf大小0x408,我们只能read0x400个字节无法进行栈溢出的问题,但是可以通过格式化字符串来修改ret的地址。然后我们还要注意一下在return前的puts,
…
BUU-360chunqiu2017_smallest-WP
这篇博客写了两天,我也花了很久来理解srop,现在我可以说我会srop了。
这道题的代码非常短
xor rax, rax
mov edx, 400h ; count
mov rsi, rsp ; buf
mov rdi, rax ; fd
syscall ; LINUX - sys_read
retn
仅此六行。由于有syscall和一个read函数,我们可以通过改变read的字节数来控制rax的值,借此实现任意系统调用。于是我们的思路是先调用sys_write泄露栈地址,然后构造signal frame劫持rsp使栈迁移至一个可读写的确定空间(就是我们泄露的地址)。最后再构造一个signal frame指定execve的四个参数并设置系统调用号位execve的调用号,再注入“/bin/sh”,就获得了shell。
…
BUU-inndy_echo2-WP
这是一道非常好的题目,我做完之后很有收获。

从安全措施上来看,本题开启了PIE,没开canary(虽然实际上开与不开是不影响这道题的)
…