注册
登录
论坛
搜索
插件
默认风格
默认风格_6hOY
D Dark
greenwall
jeans
fashion
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
【3.A.S.T】网络安全爱好者
»
技术交流
» [讨论]学习溢出中遇到的一个问题
返回列表
发帖
jjcd
发短消息
加为好友
jjcd
当前离线
UID
1222
帖子
176
精华
1
积分
477
威望
758
金钱
638
阅读权限
50
在线时间
0 小时
注册时间
2008-7-16
最后登录
2008-7-28
3.A.S.T上尉
帖子
176
积分
477
威望
758
金钱
638
在线时间
0 小时
1
楼
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2008-7-21 00:18
|
显示全部帖子
[讨论]学习溢出中遇到的一个问题
学习
,
讨论
[讨论]学习溢出中遇到的一个问题
议题作者:achillis
信息来源:邪恶八进制信息安全团队(
www.eviloctal.com
)
小弟初学溢出,在分析一个比较简单的栈例子时出已经定位了溢出点。
使用经典的'AA....A'+jmp esp+shellcode填充方法已经可以执行自己的"shellcode".
但是,因为这个溢出原因是文件路径超长引起的,使用的shellcode必须不能出现非法字符。
问题就在于,在这种字符要求下,我如何执行真正的shellcode?即编码问题如何解决?
详细情况我画个图.
因为是文件名过长溢出,总长度有259字节。前面有206个字节可以自己填充,中间是4字节的jmp esp,后面还有49个字节可以得用。正确填充后,溢出时就会执行后面49字节的内容。如果我使用"CCCCC"(16进制为0x43)填充的话,可以被当成inc ebx执行。
但是,49字节太短,不能放置一个真正有实用功能的shellcode。记得看到别人的想法是把真正的shellcode放在别处,而在这里放一个search code,让它真正的shellcode并执行。
在我这个例子里面,我想这么搞:
把编码过的符合要求的shellcode放在前面的206字节中,在后面的49字节处只需要一个跳转,跳到这206字节的起始处开始执行就可以了。为了不出现非法字法,我使用了一段编码指令把shellcode编码为只含有字母和数字的,但是其解码头部就有52字节长,用来编码前面的shellcode可以,但是后面只有49字节就不行了。所以,我现在需要的是一个符合编码要求的跳转指令即可。但苦于找不到,所以到这里求助。
其它数据有:
溢出时esp=0013E5E8
缓冲区首址=0013E51A,
在esp后面有49个字节可以利用。
其它利用方法我也尝试过,ebx指向Unicode编码过的缓冲区,貌似可以call ebx.我参考了gyzy兄的《编写Unicode有效的shellcode 》(在此感谢gyzy兄的好文章),但是它的编码头部中有不符合文件名要求的特殊字符。所以后来还是利用jmp esp方法 。大家有其它什么方法指点下小弟也可。
附件
未命名.JPG
(13 KB)
2008-1-28 15:17
缓冲区分析
学习中.......
帖子54 精华
0
积分194 阅读权限40 性别男 在线时间12 小时 注册时间2006-9-10 最后登录2008-7-18
查看详细资料
引用
报告
回复
TOP
赚更多的钱
plbb18
晶莹剔透§烈日灼然
收藏
分享
返回列表
【 新 手 入 门 】
初入江湖
有问必答
软件交流
程序设计
黑客播报
操作系统
Windows专区
Unix 专区
【 技 术 交 流 】
原创专区
QQ技巧
反黑知识
网站建设
教程发布
技术交流
免杀技术
0day发布
专题归类
私服技术
【 论 坛 水 区 】
被黑站点
激情灌水
极品贴图
开心乐园
影音专区
广告专区
【 论 坛 管 理 】
新人报到
论坛管理
勋章申请
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]
全国地图
@@@ 加入本站会员 一个月月赚1200+的秘密@@@