buu刷题脚本
第二页
[ZJCTF 2019]EasyHeap
这里有几个点,首先要用ret把栈的地址叠高,这样防止exp覆盖函数原来的数据
第二个就是
1 | from pwn import * |
gyctf_2020_borrowstack
1 | from pwn import * |
ciscn_2019_s_9
call esp
jmp esp都行
1 | from pwn import * |
第三页
ciscn_2019_n_3
虽然是2.27版本的,但是漏洞利用与2.23一致,一个经典的uaf改写地址
1 | from pwn import * |
0ctf_2017_babyheap
详解见fastbin_attack | 鱼非愚 (yufeiyu33.github.io)
1 | from pwn import * |
babyfengshui_33c3_2016
这题的关键是看懂题目的漏洞点,我反正开始没看出来
这个代码的意思是我们申请的chunk的地址加上输入的长度是否长于函数接下的chunk的地址(add一个函数时会生成两个chunk)
1 | from pwn import * |
hitcon2014_stkof
pwn堆—unlink | 鱼非愚 (yufeiyu33.github.io)
1 | from pwn import * |
mrctf2020_shellcode_revenge
要求可见字符串的shellcode,第一次看到
1 | from pwn import * |
jarvisoj_level5
1 | from pwn import * |
pwnable_hacknote
基本uaf
1 | from pwn import * |
mrctf2020_easy_equation
之前遇到这种格式化字符串把某个地址改成指定的值都是直接fmtstr_payload直接生成的,不过这题不行了,看来还是得自己写
解出来方程是2
1 | from pwn import * |
ciscn_2019_es_7
这个和之前有个题一样
picoctf_2018_got_shell
1 | from pwn import * |
cmcc_pwnme2
这题的偏移搞了挺久,当时一看这个不就是一个retlibc吗,然后自信写板子,结果一直卡在一个地方,结果发现是gets下面那个函数的ret是会ret到前一个gets ebp在栈上面的位置,最后调试发现位置是0x6c
附上exp
1 | from pwn import * |
wdb_2018_2nd_easyfmt
找不到远程的libc版本,算了,本地打自己的libc是通的
1 | from pwn import * |
roarctf_2019_easy_pwn
通过off-by-one造成堆重叠,从而泄露libc和改写realloc为one_gadget,注意这题还要把molloc改写为realloc达成一些one_gadget的条件
buu的题,本地用的libc可以打通,远程会超时,大概是libc不对,懒得找了
1 | from pwn import * |
npuctf_2020_easyheap
1 | from pwn import * |
picoctf_2018_can_you_gets_me
ROPgadget一把梭
1 | from pwn import * |
hitcontraining_bamboobox
lambda函数我用不来。。。
buu的超时一如既往,没找到libc,算了,反正本地链接的可以打通
1 | from pwn import * |
x_ctf_b0verfl0w
给了jmp esp,剩下的自己写就好了
1 | from pwn import * |
suctf_2018_basic pwn
后门送脸,好耶好耶
1 | from pwn import * |
inndy_echo
改个got表
1 | from pwn import * |
actf_2019_babystack
栈迁移加上ret2libc,注意栈的位置,后一个溢出的地址要改变,调试得出
1 | from pwn import * |
picoctf_2018_leak_me
直接输入256个字符,密码直接出来了,输入就好了,不会变
wustctf2020_easyfast
后门都给出来了,直接改0x602090的值为0即可,注意不是数字0,是\x00
1 | from pwn import * |
actf_2019_babyheap
这题写的气死我了,开始没看到system /bin/sh\x00全给了,疯狂在想着怎么去泄露libc,因为UAF,想着unsortedbin,结果怎么申请都是tcache_bin 申请多了会直接退出,申请大于0x400会直接失效
结果网上一看wp,吐了
1 | from pwn import * |
[极客大挑战 2019]Not Bad(shellcode)
开始我还想着怎么空间就是不够,原来要先跳转到开辟的空间上面,在执行shellcode
1 | from pwn import * |
axb_2019_fmt64(fmtstr_payload)
fmtstr_payload这个用法也是第一次学到,,
1 | from pwn import * |
wustctf2020_name_your_cat
数组越界直接把后门写到返回地址处
1 | from pwn import * |
cmcc_pwnme1
后门不能用就是ret2libc
1 | from pwn import * |
wdb2018_guess
循环三次,我开始还以为先利用fork爆破canary再ret2libc结果没搞出,后面才知道可以这样利用
详细题解看这个
wdb2018_guess题解 | 鱼非愚 (yufeiyu33.github.io)
1 | from pwn import * |
axb_2019_heap
1 | from pwn import * |
护网杯_2018_gettingstart
1 | from pwn import * |
第四页
ciscn_2019_es_1
老版本的Ubuntu18,可以进行double free
1 | from pwn import * |
hitcon_2018_children_tcache
详解hitcon_2018_children_tcache题解 | 鱼非愚 (yufeiyu33.github.io)
1 | from pwn import * |
第五页
[OGeek2019 Final]OVM
1 | from pwn import * |
后面的后面
[V&N2020 公开赛]easyTHeap
我本地自己打有个\x0a 但是我edit用的是send,这是网上的脚本,我自己调了下
1 | from pwn import * |