一道题也没有做出来,赛后复现两道看过的。
pwnbox
一个非常小的binary栈溢出,什么都没有,没有libc,没有gadget,需要去vdso里找gadget。
涉及到rsp在栈和bss端之间来回地切换,还要去使用vdso中的gadget,首先需要泄露vdos
1 | #!/usr/bin/python |
本地调试的时候需要手动把vdso restore进来,本地调试的时候还要把read stdout改回read stdin。这一题是从stdout里读数据的。
1 | (gdb) restore ./remotedump 0x7ffd9c705000 |
最后getshell是使用SROP。
1 | #!/usr/bin/python |
atelier
1 | #!/usr/bin/env python3 |
tkmk说像fastjson的autotype,在反序列化的时候自动创建对象,技巧是魔术方法套娃。
比赛的时候在拿本机有的module字段去fuzz远程的module字段可取的值,结果发现只能是main,然后就不知道怎么做了,看wp才知道要sqlalchemy是可以做module字段的。