
Formation à l'exploitation -- CVE-2013-2028 : Dépassement de tampon basé sur la pile de Nginx
Ce dépôt contient le code source de nginx 1.4.0 ainsi que des binaires précompilés (avec et sans cookies de pile). Il y a aussi un Vagrantfile pour une configuration facile.
Annonce et correctif : http://mailman.nginx.org/pipermail/nginx-announce/2013/000112.html Rapport de bogue : http://www.vnsecurity.net/research/2013/05/21/analysis-of-nginx-cve-2013-2028.html
vagrant up
vagrant ssh
sudo /vagrant/bin/nginx1
Nginx est exposé sur le port 80 à l'intérieur de la VM et sur le port 8080 à l'extérieur (sur l'hôte).
# Dans la VM
curl 127.0.0.1
# En dehors de la VM
curl 127.0.0.1:8080
sudo gdb /vagrant/bin/nginx1
gdb> set follow-fork-mode child
gdb> r
Vous n'avez pas besoin de faire cela pour développer votre exploit, c'est surtout pour mémoire.
# Cloner le dépôt
hg clone http://hg.nginx.org/nginx
# Voir les tags
hg tags
# Basculer vers 1.4.0
hg up 7809529022b8
Sans cookies de pile :
./auto/configure --without-http_rewrite_module --without-http_gzip_module
vim objs/Makefile
# Ajouter '-fno-stack-protector' aux CFLAGS
make -j4
sudo make install
Avec cookies de pile :
./auto/configure --without-http_rewrite_module --without-http_gzip_module
make -j4
sudo make install
# Racine web dans /usr/local/nginx/html/
sudo ./objs/nginx