more
This commit is contained in:
57
vault-door-1/VaultDoor1.java
Executable file
57
vault-door-1/VaultDoor1.java
Executable file
@@ -0,0 +1,57 @@
|
||||
import java.util.*;
|
||||
|
||||
class VaultDoor1 {
|
||||
public static void main(String args[]) {
|
||||
VaultDoor1 vaultDoor = new VaultDoor1();
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
System.out.print("Enter vault password: ");
|
||||
String userInput = scanner.next();
|
||||
String input = userInput.substring("picoCTF{".length(),userInput.length()-1);
|
||||
if (vaultDoor.checkPassword(input)) {
|
||||
System.out.println("Access granted.");
|
||||
} else {
|
||||
System.out.println("Access denied!");
|
||||
}
|
||||
}
|
||||
|
||||
// I came up with a more secure way to check the password without putting
|
||||
// the password itself in the source code. I think this is going to be
|
||||
// UNHACKABLE!! I hope Dr. Evil agrees...
|
||||
//
|
||||
// -Minion #8728
|
||||
public boolean checkPassword(String password) {
|
||||
return password.length() == 32 &&
|
||||
password.charAt(0) == 'd' &&
|
||||
password.charAt(29) == '3' &&
|
||||
password.charAt(4) == 'r' &&
|
||||
password.charAt(2) == '5' &&
|
||||
password.charAt(23) == 'r' &&
|
||||
password.charAt(3) == 'c' &&
|
||||
password.charAt(17) == '4' &&
|
||||
password.charAt(1) == '3' &&
|
||||
password.charAt(7) == 'b' &&
|
||||
password.charAt(10) == '_' &&
|
||||
password.charAt(5) == '4' &&
|
||||
password.charAt(9) == '3' &&
|
||||
password.charAt(11) == 't' &&
|
||||
password.charAt(15) == 'c' &&
|
||||
password.charAt(8) == 'l' &&
|
||||
password.charAt(12) == 'H' &&
|
||||
password.charAt(20) == 'c' &&
|
||||
password.charAt(14) == '_' &&
|
||||
password.charAt(6) == 'm' &&
|
||||
password.charAt(24) == '5' &&
|
||||
password.charAt(18) == 'r' &&
|
||||
password.charAt(13) == '3' &&
|
||||
password.charAt(19) == '4' &&
|
||||
password.charAt(21) == 'T' &&
|
||||
password.charAt(16) == 'H' &&
|
||||
password.charAt(27) == 'f' &&
|
||||
password.charAt(30) == 'b' &&
|
||||
password.charAt(25) == '_' &&
|
||||
password.charAt(22) == '3' &&
|
||||
password.charAt(28) == '6' &&
|
||||
password.charAt(26) == 'f' &&
|
||||
password.charAt(31) == '0';
|
||||
}
|
||||
}
|
||||
41
vault-door-1/sol.py
Executable file
41
vault-door-1/sol.py
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/home/maxime/.pyvenv/bin/python3
|
||||
|
||||
S = '''
|
||||
password.charAt(0) == 'd' &&
|
||||
password.charAt(1) == '3' &&
|
||||
password.charAt(2) == '5' &&
|
||||
password.charAt(3) == 'c' &&
|
||||
password.charAt(4) == 'r' &&
|
||||
password.charAt(5) == '4' &&
|
||||
password.charAt(7) == 'b' &&
|
||||
password.charAt(17) == '4' &&
|
||||
password.charAt(23) == 'r' &&
|
||||
password.charAt(29) == '3' &&
|
||||
password.charAt(10) == '_' &&
|
||||
password.charAt(9) == '3' &&
|
||||
password.charAt(11) == 't' &&
|
||||
password.charAt(15) == 'c' &&
|
||||
password.charAt(8) == 'l' &&
|
||||
password.charAt(12) == 'H' &&
|
||||
password.charAt(20) == 'c' &&
|
||||
password.charAt(14) == '_' &&
|
||||
password.charAt(6) == 'm' &&
|
||||
password.charAt(24) == '5' &&
|
||||
password.charAt(18) == 'r' &&
|
||||
password.charAt(13) == '3' &&
|
||||
password.charAt(19) == '4' &&
|
||||
password.charAt(21) == 'T' &&
|
||||
password.charAt(16) == 'H' &&
|
||||
password.charAt(27) == 'f' &&
|
||||
password.charAt(30) == 'b' &&
|
||||
password.charAt(25) == '_' &&
|
||||
password.charAt(22) == '3' &&
|
||||
password.charAt(28) == '6' &&
|
||||
password.charAt(26) == 'f' &&
|
||||
password.charAt(31) == '0'
|
||||
'''
|
||||
|
||||
l = list(map(lambda a: [int(a[0]), a[1]], map(lambda a: a.strip().replace(" ", ' ').split(' '), S.strip().replace("password.charAt(", '').replace(')', '').replace(" &&", '').replace("== ", '').splitlines())))
|
||||
l.sort()
|
||||
print(''.join(map(lambda a: a[1].replace('\'', ''), l)))
|
||||
|
||||
Reference in New Issue
Block a user