EST a1ien
26.04.2006, 21:17
В CMS системе LDU - Land Down Under мною была найдена активная XSS. Которая позволяет получить куки админа который просматривает рефералы.
Тоесть если взломщик пощлет поддельный запрос с полем Referer равным например
<script src=path to javascript></script>
То скрипт выполнится.
Также я написал сплойт который посылает поддельный запрос взять его можно здесь (http://est.jino-net.ru/uploads/lduxss.pl.txt).
Чтобы устранить уязвимость откройте файл system\common.php найдите в нём вот эти строки
f (@!eregi($cfg['mainurl'], $sys['referer']) && @!eregi($cfg['hostip'],$sys['referer']) && @!eregi(str_replace('www.','',$cfg['mainurl']), $sys['referer']) && !empty($sys['referer']))
{
$sql = ldu_query("SELECT COUNT(*) FROM $db_referers WHERE ref_url = '".$sys['referer']."'");
и замените на вот это
if (@!eregi($cfg['mainurl'], $sys['referer']) && @!eregi($cfg['hostip'],$sys['referer']) && @!eregi(str_replace('www.','',$cfg['mainurl']), $sys['referer']) && !empty($sys['referer']))
{
$sys['referer']=htmlspecialchars($sys['referer']);
$sql = ldu_query("SELECT COUNT(*) FROM $db_referers WHERE ref_url = '".$sys['referer']."'");
Тоесть если взломщик пощлет поддельный запрос с полем Referer равным например
<script src=path to javascript></script>
То скрипт выполнится.
Также я написал сплойт который посылает поддельный запрос взять его можно здесь (http://est.jino-net.ru/uploads/lduxss.pl.txt).
Чтобы устранить уязвимость откройте файл system\common.php найдите в нём вот эти строки
f (@!eregi($cfg['mainurl'], $sys['referer']) && @!eregi($cfg['hostip'],$sys['referer']) && @!eregi(str_replace('www.','',$cfg['mainurl']), $sys['referer']) && !empty($sys['referer']))
{
$sql = ldu_query("SELECT COUNT(*) FROM $db_referers WHERE ref_url = '".$sys['referer']."'");
и замените на вот это
if (@!eregi($cfg['mainurl'], $sys['referer']) && @!eregi($cfg['hostip'],$sys['referer']) && @!eregi(str_replace('www.','',$cfg['mainurl']), $sys['referer']) && !empty($sys['referer']))
{
$sys['referer']=htmlspecialchars($sys['referer']);
$sql = ldu_query("SELECT COUNT(*) FROM $db_referers WHERE ref_url = '".$sys['referer']."'");