Batch file 绕过非安全密码

Batch file 绕过非安全密码,batch-file,password-protection,Batch File,Password Protection,因此,我制作了一个非常简单、非常不安全的批处理程序,将您输入的密码与程序中的密码进行比较。现在我想看看我是否可以绕过它(我个人正在考虑类似于SQL注入的东西)。唯一的限制是你不能阅读源代码。那么,有什么建议吗 @echo off :A echo enter password to activate the program set/p "pass=>" if NOT %pass% == l33t goto :A start program cls exit 这是我们的一批货 if(密码=

因此,我制作了一个非常简单、非常不安全的批处理程序,将您输入的密码与程序中的密码进行比较。现在我想看看我是否可以绕过它(我个人正在考虑类似于SQL注入的东西)。唯一的限制是你不能阅读源代码。那么,有什么建议吗

@echo off
:A
echo enter password to activate the program
set/p "pass=>"
if NOT %pass% == l33t  goto :A
start program
cls
exit
这是我们的一批货

if(密码==“l33t”){start program}。


编辑:您也不能强制执行它。

在控制台中键入
启动程序。这将绕过密码“保护”

天然橡胶



无论如何,代码中没有注入漏洞。

这里有一个批处理程序,需要3分钟才能找到您的代码。哈哈

@echo off&cls
setlocal EnableDelayedExpansion

set $ListChar=a b c d e f g h i j k l m o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0

::For a code with 4 char (without special char)

echo %time%>Brutef.txt
for %%a in (%$Listchar%) do (
   for %%b in (%$Listchar%) do (
      for %%c in (%$Listchar%) do (
        for %%d in (%$Listchar%) do (
               set $CODE=%%a%%b%%c%%d
               if "!$CODE!"=="l33t" (echo !time!>>Brutef.txt
                                     echo CODE FOUND : !$Code!
                                     PAUSE
                                     start program)))))

您可以在
Brutef.txt
中查看所需的时间,我看不出这个答案有什么坏处,因为如果您知道批处理源代码,那么您可能知道如何启动程序

让我们试着进入:

EXIST blabla.txt

这将抛出一个错误,但批处理将继续,因此您将绕过if子句。

您不知道程序的名称是program。它只需要一个密码。我想看看我是否可以自己设置密码保护,其他人如何绕过它,以及我如何使它更安全。基本上只是为了更好地理解密码。还有,martinstoeckli发现了密码中的漏洞。这正是我所寻找的,我尝试了它,它成功了。然而,它为什么要启动该计划?错误不应该终止整个程序吗?还有,我怎样才能保证程序的安全性?非常感谢您的回答:)哦,我知道您在那里做了什么,您可以使用exist命令和if命令。我仍然不知道它为什么不将exist命令作为字符串读取,或者如何防御它。@user3207874要防止这种情况,您可以将它作为字符串引用
,如果不是“%pass%”==“l33t”goto:a