所以我制作了一个非常简单,非常安全的批处理程序,它将您输入的密码与程序中的密码进行比较。现在我想看看我是否可以以某种方式绕过它(我个人在思考类似于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 (password == "l33t") {start program}.
编辑:你也不能强迫它。
答案 0 :(得分:2)
这里有一个批处理的bruteforcer 3分钟找到你的代码。 LOL
@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
答案 1 :(得分:1)
我无法看到这个答案如何造成任何伤害,因为如果您知道批处理源代码,那么您可能知道如何启动程序。
所以让我们尝试输入:
EXIST blabla.txt
这应该抛出一个错误,但批处理继续,因此你绕过了if子句。
答案 2 :(得分:0)
在控制台中输入start program
。这将绕过密码"保护"。
SCNR
无论如何,该代码中没有注入孔。