rip题解

news/2024/5/19 21:26:19 标签: buuctf, CTF, pwn

1.查看文件保护机制

使用的是新版本的checksec

2.拖入IDA分析

查壳

 

是一个64文件,拖入64位IDA

这个文件就是我们要攻击的服务器中的一个进程的代码,进程就是一个正在运行的程序

分析敏感函数

打开字符串窗口

 跟进,光标点在command,Ctrl+x交叉引用,查看使用字符串的函数

 继续跟进

按下空格键切换为文本模式

发现函数地址在0000000000401186 

按下F5反编译

发现这个函数就是调用system来进入shell

只要调用了这个函数就可以进入shell,我们就实现了pwn的目的

我们也知道了这个函数的地址

分析main函数

main函数是程序的入口

发现这个进程会用gets函数来接收一个字符串

gets函数是容易导致内存泄露的非常危险的函数,因为gets并没有输入的字符数量的限制 

s能存储的字符数为15个,剩下的都会溢出

分析这个进程之后我们接下来要做什么,就是一个运行着main函数的进程,我们要用gets函数导致的栈溢出漏洞来劫持进程,运行那个敏感函数,来进入shell

3.hack

文件分析完毕,开始hack

原理

原理是什么呢

内存中有程序开辟的空间

栈空间是从高地址像低地址扩展的

我们在调用一个过程(函数)的时候,会将上一个函数的返回地址压入栈中(回到上一个函数的时候使用这个地址返回),然后在栈(内存)中的是当前过程的指针(EBP)

之后进栈的是我们的局部变量s数组

s在内存中的地址是比存储EBP和返回地址更低的

我们可以写入s,利用15个字符来填充s,用接下来的8个字符来填充EBP,后面的字符就会覆盖了原来的返回地址,这一步叫进程劫持

这样这个程序返回时,就会返回我们想要去的地方

我们想要去的就是那个敏感函数

我们就要把这个发送给被hack的服务器,劫持进程,拿到shell

就可以随心所欲地操作服务器了

返回地址

EBP
s[15]

操作

需要安装Python3环境和pwntools

点击Launch,获得主机名和端口号,一个端口号对应一个进程

 我们python3命令进入Python环境

输入from pwn import *导入pwn

io=remote("node4.buuoj.cn",29965)

创建一个对象,出入主机名和端口号

io.sendline('A'*15+'B'*8+p64(0x401186+1).decode("iso-8859-1"))

向进程发送一个消息来实现利用StackOverflow漏洞的攻击,获得shell

io.interactive()

现在我们获得了shell

完全掌控了对方的服务器

用cat命令将flag中的内容来输出

 

 flag{4c524f38-e6ba-462f-b39c-e73630801af1}

 

 

 


http://www.niftyadmin.cn/n/115662.html

相关文章

Java_数组

数组 1.概念 ​ 需求:现在需要统计软件技术1班47名同学的成绩情况,例如计算平均成绩、最高成绩等。如果只能使用变量的话,那么需要定义100个变量,这样就比较复杂了。这时我们就可以使用数组来记住这47名同学的成绩,然…

Jquery实现增删改除

文章目录一.关于增加部分区别:二.关于删除部分关于在表格中实现增删改1.首先我们需要创建基本的HTML项目2.相关的css和js的引用3.呈上源代码(1).HTML源代码(2).js源代码(自己创建的)3.效果图&am…

Qt学习1-对QT的初步了解(哔站视频学习记录)

目录 一、简介QT 二、选择QT的原因 三、Qt开发工具详解 1、Qt开发工具介绍 2、Qt模块介绍 Qt Creator作为主要学习工具 一、简介QT Qt是一宽跨平台的C图形用户界面库,目前包括Qt Creator、Qt Designer等等快速开发工具。Qt支持Linux/Unix系统和Windows平台&am…

【java基础】一篇文章彻底搞懂lambda表达式

文章目录lambda表达式是什么lambda表达式的语法函数式接口初次使用深入理解方法引用 :: 用法快速入门不同形式的::情况1 object::instanceMethod情况2 Class::instanceMethod情况3 Class::staticMethod对于 :: 的一些示例及其注意事项构造器引用变量作用域使用外部变量定义内部…

Delphi 中 FireDAC 数据库连接(恢复连接 )

参见:Delphi 中 FireDAC 数据库连接(总览)描述了如何在不稳定的环境中工作。FireDAC允许一个应用程序从连接失败中恢复。一、概述一个数据库应用程序可以在一个不稳定的环境中工作,网络可能被物理断开或DBMS服务器可能被重新启动。…

10种常见网站安全攻击手段及防御方法

在某种程度上,互联网上的每个网站都容易遭受安全攻击。从人为失误到网络罪犯团伙发起的复杂攻击均在威胁范围之内。 网络攻击者最主要的动机是求财。无论你运营的是电子商务项目还是简单的小型商业网站,潜在攻击的风险就在那里。 知己知彼百战不殆&…

IP-GUARD服务器是否可以同步AD域、LDAP服务器等服务器的组织架构?

如何升级中继服务器? 有控制台下发升级和手动升级2种升级方式。 控制台下发升级: 控制台菜单进入【工具】-【服务器管理】-【中继服务器管理】,选中要升级的中继右键即可进行升级(带有#标记的为可以升级的中继); 手动升级: 服务器安装目录下找到IPgMidtierUpgrade3.exe文…

【教学类-07-06】20230302《破译电话号码-图形篇(图形固定列不重复)》(三款输入版)

效果展示1、适合中班默写学号——有姓名 有班级,无学号,适合中班幼儿2、适合大班幼儿默写名字——有学号,有班级,无姓名,适合初学者描字(小班、中班、大班)——名字、学号、班级都有&#xff08…