
تدريب الاستغلال -- CVE-2013-2028: تجاوز سعة المخزن المؤقت القائم على المكدس في Nginx
يحتوي هذا المستودع على الكود المصدري لـ nginx 1.4.0 بالإضافة إلى الملفات الثنائية المجمعة مسبقًا (مع وبدون ملفات تعريف الارتباط المكدسة (stack cookies)). يوجد أيضًا ملف Vagrantfile للإعداد السهل.
الإعلان والتصحيح: http://mailman.nginx.org/pipermail/nginx-announce/2013/000112.html شرح الثغرة: http://www.vnsecurity.net/research/2013/05/21/analysis-of-nginx-cve-2013-2028.html
vagrant up
vagrant ssh
sudo /vagrant/bin/nginx1
يتم كشف Nginx على المنفذ 80 داخل الجهاز الافتراضي (VM) وعلى المنفذ 8080 من الخارج (على المضيف).
# داخل VM
curl 127.0.0.1
# خارج VM
curl 127.0.0.1:8080
sudo gdb /vagrant/bin/nginx1
gdb> set follow-fork-mode child
gdb> r
لا تحتاج إلى القيام بذلك لتطوير استغلالك، هذا غالبًا فقط من أجل التوثيق.
# استنساخ المستودع
hg clone http://hg.nginx.org/nginx
# رؤية العلامات (tags)
hg tags
# الخروج إلى الإصدار 1.4.0
hg up 7809529022b8
بدون ملفات تعريف الارتباط المكدسة:
./auto/configure --without-http_rewrite_module --without-http_gzip_module
vim objs/Makefile
# أضف '-fno-stack-protector' إلى CFLAGS
make -j4
sudo make install
مع ملفات تعريف الارتباط المكدسة:
./auto/configure --without-http_rewrite_module --without-http_gzip_module
make -j4
sudo make install
# مجلد الجذر (Webroot) في /usr/local/nginx/html/
sudo ./objs/nginx