驱动程序开发网技术社区 » 溢出及shellcode » 嘻嘻,本版第一贴了,放个简单的OverflowMe出来练练手 (转到动态网页)
本页主题: 嘻嘻,本版第一贴了,放个简单的OverflowMe出来练练手 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

Backer
级别: 驱动牛犊


精华: 0
发帖: 15
威望: 15 点
积分: 150 分
贡献值: 0 点
好评度: 15 点
原创分: 0 分
注册时间:2004-09-28
最后登录:2008-06-03

 嘻嘻,本版第一贴了,放个简单的OverflowMe出来练练手

程序显示“Succeed, you win!”算过去了。

只能利用溢出。

能不出错为佳。
附件: OverflowMe.rar (20 K) 下载次数:152
顶端 Posted: 2007-01-31 04:08 | 北京市网通 [楼 主]
xikug
级别: 驱动小牛


精华: 0
发帖: 174
威望: 168 点
积分: 1000 分
贡献值: 0 点
好评度: 168 点
原创分: 1 分
注册时间:2001-09-25
最后登录:1970-01-01

 

新版开张。。。处女顶。。。
有空学习学习这个OverflowMe
顶端 Posted: 2007-01-31 22:37 | 上海市闵行区电信ADSL 1 楼
Sucsor
级别: 驱动牛犊


精华: 2
发帖: 24
威望: 25 点
积分: 253 分
贡献值: 0 点
好评度: 25 点
原创分: 2 分
注册时间:2005-02-05
最后登录:1970-01-01

 

顶一下.
顶端 Posted: 2007-02-02 12:18 | 上海市徐家汇区电信 2 楼
wowocock
特殊贡献奖
级别: 驱动老牛


精华: 0
发帖: 4885
威望: 1298 点
积分: 472 分
贡献值: 1 点
好评度: 1227 点
原创分: 1 分
注册时间:2002-04-08
最后登录:1970-01-01

 

执行出错,看来随着新CPU都包括NX执行保护技术的流行,Overflow很快就要消失了......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
顶端 Posted: 2007-02-02 17:53 | Unknown 3 楼
qiweixue
级别: 驱动小牛


精华: 0
发帖: 285
威望: 269 点
积分: 1001 分
贡献值: 0 点
好评度: 268 点
原创分: 1 分
注册时间:2004-07-21
最后登录:1970-01-01

 

0040101A |. 50         |push   eax
0040101B |. 68 50A04000   |push   0040A050                 ; ASCII "%s"
00401020 |. E8 C1010000   |call   004011E6 ---》_scanf函数,格式化输入成字符串方式
00401028 |. 8D4C24 04   |   lea   ecx, dword ptr [esp+4]----》“qiweixue”是我输入的八个字符
0040102C |. C64424 0B 00 |mov   byte ptr [esp+B], 0-----》B-4=7限定7个之后是:“qiweixu”
00401031 |. 51         |push   ecx                       ; /Arg1
00401032 |. E8 49000000   |call   00401080   ; \Overflow.00401080----》关键算法比较函数

00401037 |. 84C0       |test   al, al-----》BOOL al=TRUE就是成功.否则就失败
00401039 |. 75 28       |jnz   short 00401063


Overflow.00401080 算法call
{

00401080 /$ 83EC 08     sub   esp, 8
00401083 |. B0 74       mov   al, 74
00401085 |. C64424 01 65 mov   byte ptr [esp+1], 65
0040108A |. 884424 00   mov   byte ptr [esp], al-----》[esp]指向堆栈顶部,是作者构造“test”字符正确的密码的开始部分
0040108E |. 884424 03   mov   byte ptr [esp+3], al
00401092 |. 8B4424 0C   mov   eax, dword ptr [esp+C]   -----》 我输入的的7个字符串“qiweixu”
00401096 |. C64424 02 73 mov   byte ptr [esp+2], 73
0040109B |. 85C0       test   eax, eax
0040109D |. C64424 04 00 mov   byte ptr [esp+4], 0
004010A2 |. 75 08       jnz   short 004010AC
004010A4 |. 32C0       xor   al, al
004010A6 |. 83C4 08     add   esp, 8
004010A9 |. C2 0400     retn   4
004010AC |> 53         push   ebx
004010AD |. 56         push   esi
004010AE |. 8D7424 08   lea   esi, dword ptr [esp+8]
004010B2 |> 8A10       /mov   dl, byte ptr [eax]---》我的字符串“qiweixe”
004010B4 |. 8A1E       |mov   bl, byte ptr [esi]---》和作者的字符串“test”相互比较.返回数值在al
004010B6 |. 8ACA       |mov   cl, dl             //相等就返回true.提示成功
004010B8 |. 3AD3       |cmp   dl, bl
004010BA |. 75 29       |jnz   short 004010E5
004010BC |. 84C9       |test   cl, cl
004010BE |. 74 16       |je     short 004010D6
004010C0 |. 8A50 01     |mov   dl, byte ptr [eax+1]
004010C3 |. 8A5E 01     |mov   bl, byte ptr [esi+1]
004010C6 |. 8ACA       |mov   cl, dl
004010C8 |. 3AD3       |cmp   dl, bl
004010CA |. 75 19       |jnz   short 004010E5
004010CC |. 83C0 02     |add   eax, 2
004010CF |. 83C6 02     |add   esi, 2
004010D2 |. 84C9       |test   cl, cl
004010D4 |.^ 75 DC       \jnz   short 004010B2
004010D6 |> 33C0       xor   eax, eax
004010D8 |. 5E         pop   esi
004010D9 |. 85C0       test   eax, eax
004010DB |. 0F94C0     sete   al
004010DE |. 5B         pop   ebx
004010DF |. 83C4 08     add   esp, 8
004010E2 |. C2 0400     retn   4
004010E5 |> 1BC0       sbb   eax, eax
004010E7 |. 5E         pop   esi
004010E8 |. 83D8 FF     sbb   eax, -1
004010EB |. 5B         pop   ebx
004010EC |. 85C0       test   eax, eax
004010EE |. 0F94C0     sete   al
004010F1 |. 83C4 08     add   esp, 8
004010F4 \. C2 0400     retn   4
}


我只会输入test返回成功.
不会overflow的.到不到益出的输入代码地方.没有完过shellcode.
有点扫兴!
顶端 Posted: 2007-02-03 13:53 | APNIC 4 楼
qiweixue
级别: 驱动小牛


精华: 0
发帖: 285
威望: 269 点
积分: 1001 分
贡献值: 0 点
好评度: 268 点
原创分: 1 分
注册时间:2004-07-21
最后登录:1970-01-01

 

不好意思,接着来.原来输入的字符串不够多.这回有实验了一下有异常.
please input password:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

回头在分析分析异常点.
算算堆栈返回位置
顶端 Posted: 2007-02-03 14:00 | APNIC 5 楼
qiweixue
级别: 驱动小牛


精华: 0
发帖: 285
威望: 269 点
积分: 1001 分
贡献值: 0 点
好评度: 268 点
原创分: 1 分
注册时间:2004-07-21
最后登录:1970-01-01

 

输入的过多的字符在堆栈中覆盖了最先过滤SEH链子定位到了,修改它的Handler入口到提示成功之处
00401063 |> \E8 98000000   call   00401100 //提示成功之处.

可是到了Dos 窗口输入字符的时候,不知道怎么转换成内存中的16进制地址,不能用Acsii表示出来,
难住了.
在看scanf方法格式输入的是%s.键盘输入行不通了.
顶端 Posted: 2007-02-03 16:06 | APNIC 6 楼
Backer
级别: 驱动牛犊


精华: 0
发帖: 15
威望: 15 点
积分: 150 分
贡献值: 0 点
好评度: 15 点
原创分: 0 分
注册时间:2004-09-28
最后登录:1970-01-01

 

嘿嘿,我昨天把这个OverflowMe完美搞定了,没有弹出错误提示。
缺点是解决方案不兼容。
顶端 Posted: 2007-02-03 19:24 | 北京市网通 7 楼
qiweixue
级别: 驱动小牛


精华: 0
发帖: 285
威望: 269 点
积分: 1001 分
贡献值: 0 点
好评度: 268 点
原创分: 1 分
注册时间:2004-07-21
最后登录:1970-01-01

 

Quote:
引用第7楼Backer2007-02-03 19:24发表的“”:
嘿嘿,我昨天把这个OverflowMe完美搞定了,没有弹出错误提示。
缺点是解决方案不兼容。


我是覆盖SEH益出的...

构造特殊输入的字符很不雅观....

离完美还差些!
顶端 Posted: 2007-02-03 22:55 | 山东省济南市网通 8 楼
qiweixue
级别: 驱动小牛


精华: 0
发帖: 285
威望: 269 点
积分: 1001 分
贡献值: 0 点
好评度: 268 点
原创分: 1 分
注册时间:2004-07-21
最后登录:1970-01-01

 

覆盖最近一个SEH句柄益出,其他方法应该还有...
acsii输入好难看.
没有shellcode修复...
进一步再学习之中..
顶端 Posted: 2007-02-03 23:06 | 山东省济南市网通 9 楼
驱动程序开发网技术社区 » 溢出及shellcode
快速发帖 顶端
内容
HTML 代码不可用

使用签名
Wind Code自动转换

字数检查 恢复数据
按 Ctrl+Enter 直接提交
表情 [更多]

Powered by PHPWind v6.3.2 Code © 2003-08 PHPWind
This is html template view this page faster