I-PRONTO CTF

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:
Aquí Insertar imagen Descripción
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:
Aquí Insertar imagen Descripción
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:
Aquí Insertar imagen Descripción
de acuerdo con las reglas del código fuente cifrado para leer el archivo index.php:
Aquí Insertar imagen Descripción
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:
Aquí Insertar imagen Descripción

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:
Aquí Insertar imagen Descripción
más tarde se enteraron de que el interruptor del código ASCII 10 decimal ,,,,,
consigue el indicador:
Aquí Insertar imagen Descripción

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:
Aquí Insertar imagen Descripción
es decir, si una comparación, que tiene un cifrado de base 64, que será capaz de descifrar para dar una cadena:
Aquí Insertar imagen Descripción
la función de encriptación por delante aspecto:
Aquí Insertar imagen Descripción
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:
Aquí Insertar imagen Descripción
emmm, no sé derecha ,,,,,

Publicados 206 artículos originales · ganado elogios 130 · Vistas de 100.000 +

Supongo que te gusta

Origin blog.csdn.net/qq_42967398/article/details/103323458
Recomendado
Clasificación