PHP - XSS Security

DarkDesert

Kıdemli Üye
17 Eki 2011
2,043
1
TurkHackTeam
Selamun Aleyküm..

XSS Filtrelemek için 3 Tane Yöntemden Bahsettim.




Vuln:

Kod:
<?PHP
$adi = $_GET["adi"];
$soyadi = $_GET["soyadi"];

echo $adi;
echo $soyadi;
?>

Değişkenler ile , GET Metodu aracılığıyla inputlardan direk çekilmiş ve Yansıtılmış.

Bu da



adi="**********alert(’VULN’)</script>
soyadi="**********alert(’VULN’)</script>

XSS ye Yol Açar.



Fix 1:
--------------------
Kod:
<?PHP
$adi = htmlspecialchars($_GET["adi"]);
$soyadi = htmlspecialchars($_GET["soyadi"]);

echo $adi;
echo $soyadi;
?>
--------------------

htmlspecialchars fonksiyonu ile <,’,> gibi karakterleri kısıtlayarak Fixledik.

--------------------
Fix 2 :


Kod:
<?PHP
$adi = $_GET["adi"];
$soyadi = $_GET["soyadi"];

$adi = str_replace("’","",$adi);
$adi = str_replace("(","",$adi);
$adi = str_replace(")","",$adi);
$adi = str_replace(";","",$adi);
$adi = str_replace(":","",$adi);
$adi = str_replace("<","",$adi);

$soyadi = str_replace("’","",$soyadi);
$soyadi = str_replace("(","",$soyadi);
$soyadi = str_replace(")","",$soyadi);
$soyadi = str_replace(";","",$soyadi);
$soyadi = str_replace(":","",$soyadi);
$soyadi = str_replace("<","",$soyadi);


echo $adi;
echo $soyadi;
?>


--------------------

str_replace fonksiyonu ile tek tek isteğimiz doğrultusundaki karakterleri kısıtladık.

3 bölmeden oluşuyor.

1. Bölmeye Kısıtlamak istediğimiz karakter , kelime vs.
2. Bölümde dönüştürülecek şey.(Boş bırakarak boşa çeviriyoruz.)
3. Bölüme ise Değişkenimizi.

-----------------

Fix 3 :


Kod:
<?PHP
$adi = $_GET["adi"];
$soyadi = $_GET["soyadi"];

echo $adi;
echo $soyadi;
?>

------------
Kod:
<?php

if(isset($adi = $_GET[’adi’]));
if(isset($soyadi = $_GET[’soyadi’]));

echo htmlentities($_GET [’adi’], ENT_QUOTES);
echo htmlentities($_GET [’soyadi’], ENT_QUOTES);

?>


------------------
Burada İf ile kontrol Ediyoruz..


htmlentities ilede < , > gibi karakterlei ’<’ , ’>’ gibi karakterlere çevirir.(Tırnak İçine Alır)

ENT_QUOTES = Bu kod ise Tırnak İşaretlerini Filtreler..
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.