I-PRONTO CTF
Aunque una variedad de CTF todas partes ,,,, clase llena un día, pero todavía hacer la pregunta a hacer! ! ! sólo puede hacerlo un par de platos ,, ~
MISC - soplando barrido bajos del código bidimensional
Descargar archivo encontrado un montón de papeles y encontró todos los archivos jpg, y cada archivo tiene un número de serie, correcta:
ser anidada código de exploración, se le solicite:
BASE Family Bucket ??? 85->64->85->13->16->32
Luego está el paquete de compresión encontró bandera detrás de una cadena de caracteres especiales:
extraídos, siga las instrucciones para atrás desencriptar, se puede obtener la bandera, nota 13 rot13 ,,,,
finalmente obtenida contraseña paquete comprimido, introduce la bandera get:flag{Qr_Is_MeAn1nGfuL}
Web - easy_web
Introduzca la URL de la página que contiene los archivos encontrados, después del descubrimiento es el resultado de dos de cifrado de base 64, así como una capa de texto a hexadecimal:
de acuerdo con las reglas del código fuente cifrado para leer el archivo index.php:
obtener el código fuente:
<?php
error_reporting(E_ALL || ~ E_NOTICE);
header('content-type:text/html;charset=utf-8');
$cmd = $_GET['cmd'];
if (!isset($_GET['img']) || !isset($_GET['cmd']))
header('Refresh:0;url=./index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=');
$file = hex2bin(base64_decode(base64_decode($_GET['img'])));
$file = preg_replace("/[^a-zA-Z0-9.]+/", "", $file);
if (preg_match("/flag/i", $file)) {
echo '<img src ="./ctf3.jpeg">';
die("xixi~ no flag");
} else {
$txt = base64_encode(file_get_contents($file));
echo "<img src='data:image/gif;base64," . $txt . "'></img>";
echo "<br>";
}
echo $cmd;
echo "<br>";
if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i", $cmd)) {
echo("forbid ~");
echo "<br>";
} else {
if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])) {
echo `$cmd`;
} else {
echo ("md5 is funny ~");
}
}
?>
<html>
<style>
body{
background:url(./bj.png) no-repeat center center;
background-size:cover;
background-attachment:fixed;
background-color:#CCCCCC;
}
</style>
<body>
</body>
</html>
Después del análisis que las necesidades para la construcción de dos cadenas diferentes, pero después de los resultados de MD5 como
a través de la Internet para encontrar get:
a=%D89%A4%FD%14%EC%0EL%1A%FEG%ED%5B%D0%C0%7D%CAh%16%B4%DFl%08Z%FA%1DA%05i%29%C4%FF%80%11%14%E8jk5%0DK%DAa%FC%2B%DC%9F%95ab%D2%09P%A1%5D%12%3B%1ETZ%AA%92%16y%29%CC%7DV%3A%FF%B8e%7FK%D6%CD%1D%DF/a%DE%27%29%EF%08%FC%C0%15%D1%1B%14%C1LYy%B2%F9%88%DF%E2%5B%9E%7D%04c%B1%B0%AFj%1E%7Ch%B0%96%A7%E5U%EBn1q%CA%D0%8B%C7%1BSP
b=%D89%A4%FD%14%EC%0EL%1A%FEG%ED%5B%D0%C0%7D%CAh%164%DFl%08Z%FA%1DA%05i%29%C4%FF%80%11%14%E8jk5%0DK%DAa%FC%2B%5C%A0%95ab%D2%09P%A1%5D%12%3B%1ET%DA%AA%92%16y%29%CC%7DV%3A%FF%B8e%7FK%D6%CD%1D%DF/a%DE%27%29o%08%FC%C0%15%D1%1B%14%C1LYy%B2%F9%88%DF%E2%5B%9E%7D%04c%B1%B0%AFj%9E%7Bh%B0%96%A7%E5U%EBn1q%CA%D0%0B%C7%1BSP
Construido directamente, sin pasar por el filtro, a la bandera dar:
CRYPTO - easyphp
En primer lugar, descargue el archivo para obtener el código fuente:
<?php
$miwen="=Z2KqkyJnu1IKMIIHgyJDO1GBkRGCWIFWqxFSEHFXS0C/NxC80GB54mC9DQA0RGZ";
function encode($str){
$str1=array();
$str1=unpack("C*",$str);
for($aaa=0;$aaa<count($str1);$aaa++){
$bbb=$str1[$aaa];
$_=$_.$bbb;
}
$ddd=array();
for($ccc=0;$ccc<strlen($_);$ccc++){
$ddd[$ccc]=substr($_,$ccc,1);
$eee=ord($ddd[$ccc])+$ccc;
$fff=chr($eee);
$__=$__.$fff;
if($__%100==0)
$__=base64_encode($__);
}
$__=strrev(str_rot13(base64_encode($__)));
return $__;
}
$str = "123";
$anwser=encode($str);
print($anwser);
?>
emmmm, bien entendido lógica Bueno, ya sabes código PHP será capaz de hacer ,,,
La clave es que desempaquetar no saben es hacer, en primer lugar invertir de nuevo, escribir script PHP:
<?php
$miwen="=Z2KqkyJnu1IKMIIHgyJDO1GBkRGCWIFWqxFSEHFXS0C/NxC80GB54mC9DQA0RGZ";
$s = base64_decode(str_rot13(strrev("=Z2KqkyJnu1IKMIIHgyJDO1GBkRGCWIFWqxFSEHFXS0C/NxC80GB54mC9DQA0RGZ")));
$_ = "";
for($i=0;$i<strlen($s);$i++){
$_ = $_.chr(ord($s[$i]) - $i);
}
echo $_;
?>
Obtener los resultados:
más tarde se enteraron de que el interruptor del código ASCII 10 decimal ,,,,,
consigue el indicador:
RE - Easy_Encryption
De hecho esta pregunta, no sé ,,, bandera justo después del juego, ya que está hecho ,,,
título en el Abierto de encontrar la función principal:
es decir, si una comparación, que tiene un cifrado de base 64, que será capaz de descifrar para dar una cadena:
la función de encriptación por delante aspecto:
lógica clara ~~
guión resolución de escritura:
s = "artqkoehqpkbihv"
x = "abcdefghijklmnopqrstuvwxyz"
for i in range(0,15):
for j in x:
if ( (ord(j) + (32 - i) - 97) % 26 + 97 > 122 ):
v5 = (ord(j) + (32 - i) - 97) % 26 + 71
else:
v5 = (ord(j) + (32 - i) - 97) % 26 + 97
if( chr(v5) == s[i]):
print(j,end="")
break
Se puede obtener Bandera:
emmm, no sé derecha ,,,,,