小谈批处中的注入与防注 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    转载于暗组技术论坛

    我是第一次写文章,如果写得不好希望大家不要见笑啊!

    我这次写的是关于批处的

    我上次经常在网上看到一些CMD加密程序,原理大家都知道就是在

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\coomand processor键

    下新建一个autorun键字符串值,当你运行CMD时就会自动运行这个

    键值所指的程序,

小谈批处中的注入与防注

。大部分CMD加密程序就是用这个方法指向一个批处

    文件来加密CMD的,不过大部分程序都没有意识到其实批处也是可以

    注入的!

    下面我来分析一段常见的CMD加密的批处代码:

    (以下密码都为5566)

    @echo off

    :login

    cls

    set /p mima=请输入CMD密码:

    if %mima%==5566 (goto begin) else (goto login)

    :begin

    cls

    把上面的代码保存为 5566.bat 在把autorun指向它,当我们运行CMD

    的时候就会提示输入密码,这时我们输入5566就会来到:begin,输入

    别的就会跳到:login

    这里是通过IF来判断pwd是不是等于5566的,看我来饶过去把!!

    我们运行CMD后输入:not 123

    语句就变成 如下:

    if not 123==5566 (goto begin) else (goto login)

    由于123不等于5566为真 所以就执行了(goto begin)

    那有人会说把IF代码写成:

    if "%mima%"=="5566" (goto begin) else (goto login)。

    我们在密码里面输入" luanxie 试试,结果如下:

    此时不应有 sdf"=="5566" (goto begin) else (goto login)。

    怎么样?连密码都暴出来了,哈哈

    那么语句为下呢?

    if "5566"=="%mima%" (goto begin) else (goto login)

    还是" luanxie搞定,只是不能暴密码,不过已经能用CMD了

    总结有一下,我们要饶过CMD密码就只要制造出特殊的"密码"来让语句

    形成逻辑错误而错误跳转或崩溃(后来我发现一个 " 能解决所有问题)

    关于防其实我也没什么好的方法,本人技术有限!呵呵

    我自己就写了一段相对安全点的代码:

    @echo off

    :login

    cls

    set /p mima=请输入CMD密码:

    if ^|aaa==^%mima%aaa (set mima=1)

    if ^

    if ^>aaa==^%mima%aaa (set mima=1)

    if ^&aaa==^%mima%aaa (set mima=1)

    if ^^aaa==^%mima%aaa (set mima=1)

    if ^"==^%mima% (set mima=1)

    if 5566==%mima% (goto begin) else (goto login)

    exit

    :begin

    cls

    为什么说相对安全,就是因为要注入它一个"是不行的,但是还是能注

    入的不过要 ^" or ^& or &" 组合起来才能注入,这样一般不容易想

    到(看过此文后例外,呵呵)

    如果你有心情就按第五行过滤吧!(不过是过滤并不完的,哈哈)

    老是把它的程序搞出错是不是很无聊呢?那么你看这个!

    time% (dir) else (pause)&echo 123

    是不是把goto :begin暴露出来了

    我们知道跳转的地方了几好办了

    time% (dir) else (goto begin)&echo 123

    程序没出错我也不知道密码但是我还是进来了,哈哈!

    还真是漏洞百出啊!

    我就说奇怪了,难道就真的没有稍微安全一点的代码吗?

    终于我费尽心思终于写出了我只找到一个饶过方法(应该不止一个方

    法)的代码:

    @echo off

    :login

    mkdir C:\CMD密码\

    cls

    set /p mima=请输入CMD密码:

    echo 5566>>"C:\CMD密码\a%mima%a.txt"

    if exist C:\CMD密码\a5566a.txt (goto begin) else ("del C:\CMD密码\*.txt")&(goto login)

    exit

    :begin

    echo chenggong

    del "C:\CMD密码\*.txt"

    cls

    至于这个怎么饶过我先卖个小关子大家自己想

最新文章