Bugku_never desistir

Insira a descrição da imagem aqui
Abra o título, apenas uma linha é exibida, never never never give up !!!não há outras informações.
Capture o pacote e reproduza-o, e então haverá um comentário em HTML.
Insira a descrição da imagem aqui
Em seguida, visite 1p.html, verifique o código-fonte da página da web e encontre um URL- string codificada, que é obtida após a decodificação

<!--JTIyJTNCaWYlMjglMjElMjRfR0VUJTVCJTI3aWQlMjclNUQlMjklMEElN0IlMEElMDloZWFkZXIlMjglMjdMb2NhdGlvbiUzQSUyMGhlbGxvLnBocCUzRmlkJTNEMSUyNyUyOSUzQiUwQSUwOWV4aXQlMjglMjklM0IlMEElN0QlMEElMjRpZCUzRCUyNF9HRVQlNUIlMjdpZCUyNyU1RCUzQiUwQSUyNGElM0QlMjRfR0VUJTVCJTI3YSUyNyU1RCUzQiUwQSUyNGIlM0QlMjRfR0VUJTVCJTI3YiUyNyU1RCUzQiUwQWlmJTI4c3RyaXBvcyUyOCUyNGElMkMlMjcuJTI3JTI5JTI5JTBBJTdCJTBBJTA5ZWNobyUyMCUyN25vJTIwbm8lMjBubyUyMG5vJTIwbm8lMjBubyUyMG5vJTI3JTNCJTBBJTA5cmV0dXJuJTIwJTNCJTBBJTdEJTBBJTI0ZGF0YSUyMCUzRCUyMEBmaWxlX2dldF9jb250ZW50cyUyOCUyNGElMkMlMjdyJTI3JTI5JTNCJTBBaWYlMjglMjRkYXRhJTNEJTNEJTIyYnVna3UlMjBpcyUyMGElMjBuaWNlJTIwcGxhdGVmb3JtJTIxJTIyJTIwYW5kJTIwJTI0aWQlM0QlM0QwJTIwYW5kJTIwc3RybGVuJTI4JTI0YiUyOSUzRTUlMjBhbmQlMjBlcmVnaSUyOCUyMjExMSUyMi5zdWJzdHIlMjglMjRiJTJDMCUyQzElMjklMkMlMjIxMTE0JTIyJTI5JTIwYW5kJTIwc3Vic3RyJTI4JTI0YiUyQzAlMkMxJTI5JTIxJTNENCUyOSUwQSU3QiUwQSUwOXJlcXVpcmUlMjglMjJmNGwyYTNnLnR4dCUyMiUyOSUzQiUwQSU3RCUwQWVsc2UlMEElN0IlMEElMDlwcmludCUyMCUyMm5ldmVyJTIwbmV2ZXIlMjBuZXZlciUyMGdpdmUlMjB1cCUyMCUyMSUyMSUyMSUyMiUzQiUwQSU3RCUwQSUwQSUwQSUzRiUzRQ==-->" 

Em seguida, decodifique-o em base64 e, em seguida, decodifique-o por url para obter o seguinte código:

<?php
if(!$_GET['id'])
{
    
    
	header('Location: hello.php?id=1');
	exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))
{
    
    
	echo 'no no no no no no no';
	return ;
}
$data = @file_get_contents($a,'r');
if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
{
    
    
	require("f4l2a3g.txt");
}
else
{
    
    
	print "never never never give up !!!";
}


?>
  • Passe parâmetros para id, a, b por meio de get
  • O primeiro se: não pode estar contido em um‘.’
  • O valor de $ data é o conteúdo lido de um arquivo. Mas um é passado através do parâmetro GET da url, não do arquivo.Neste momento, ele pode ser ignorado através de php: // input. A seguir está um exemplo desse método:
<?php


$a=$_GET['a'];


$data = @file_get_contents($a,'r');
if($data=="abd" )
{
    
    
	echo 'you are so smart';
	
}
else
{
    
    
	print "never never never give up !!!";
}


?>

Insira a descrição da imagem aqui

  • O valor de id precisa ser 0, mas não é possível passar diretamente em 0. Aqui você pode passar caracteres / strings ou símbolos para ignorar
  • A função eregi () tem uma vulnerabilidade de truncamento de caractere nulo, ou seja, quando a expressão regular no parâmetro ou a string a ser correspondida encontra um caractere nulo, os dados a seguir serão truncados e descartados. A string a ser correspondida (o segundo parâmetro) no código-fonte foi determinada como "1114" e a expressão regular (o primeiro parâmetro) consiste em "111" conectado ao primeiro caractere de b. Se substr ($ b , 0, 1) = "\ x00", o que significa que "1114" e "111" são correspondidos.

Depois de saber o que foi acima, a carga útil pode ser construída:

http://target/test/hello.php?id=w&b=%001234567&a=php://input

Insira a descrição da imagem aqui

O mais chato é! ! ! ! ! !

Insira a descrição da imagem aqui

Você pode acessar diretamente este arquivo para obter o sinalizador. . . . .
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_43749601/article/details/109202556
Recomendado
Clasificación