Старый 22.08.2010, 22:59   #1
p(eaZ
 
Регистрация: 07.07.2010
Сообщений: 33
Репутация: 29
По умолчанию Статические анализаторы php. Мини-обзор

С течение времени мы все чаще и чаще можем видеть появление новых систем управления контентом (CMS): форумов, блогов, шопов, социальных сетей, и т.д. и т.п. Многие из них, в силу некомпетентности или недостаточного уровня профессионализма их разработчиков, имеют в коде уязвимые места, позволяющие получить доступ, начиная от банального раскрытия путей до получения полного контроля над сайтом. Это мы наблюдаем каждый день на страницах баг-трэков.

О том, как ищутся уязвимости, и чем пользуются баг-хантеры, я и хотел бы сейчас рассказать.

В данном мини-обзоре я опишу основные инструменты баг-хантера, а если быть более конкретным - статических анализаторов кода веб-приложений разработанных на php.

Статический анализатор кода - это программный продукт, помогающий обнаружить потенциально опасные участки кода программы, не прибегая при этом к её выполнению. В отличии от динамических анализаторов, где исследование проводится в процессе выполнения программы, в статических анализаторах исследуется только исходный код.

Подобных анализаторов в сети достаточно много, и каждый из них обладает своим функционалом и списком поддерживаемых языков. Я буду рассматривать анализаторы веб-языков, а если быть более точным, то делаю упор на PHP по причинам его распространенности в отношении к другим языкам.

Таких программ на моем счету не так уж и много: PHP Bug Scanner by Raz0r, RATS, Graudit, RIPS. Я буду рассматривать работу с Graudit и RIPS, т.к. они более стабильны и функциональны.

Graudit - является семантически-статическим анализатором, который указывает на потенциально опасные места в коде. Представляет собой bash-скрипт, и работает посредством поиска через grep, используя базы сигнатур потенциально уязвимых функций.
Поддерживаемые языки: ASP, JSP, Perl, PHP, Python, C, и является легко расширяемой, в этом плане, утилитой.
Сайт автора: http://www.justanotherhacker.com



Как видно функционал довольно простой. Основные параметры, которые мы будем использовать это:
-d - указывает на базу сигнатур, которую вы захотите использовать. Т.к. обзор пишется в контексте поиска уязвимостей PHP-кода, то -d signatures/php.db
-Z - подсветка потенциально опасных участков кода. Рекомендую к постоянному использованию.
Вот что нам выдаст запуск программы с этими параметрами и прописанным путем к папке со скриптами:



Теперь рассмотрим вторую утилиту - RIPS, упоминание о которой я обнаружил тут
Сайт автора: http://websec.wordpress.com
В отличие от Graudit, RIPS создавался исключительно для поиска уязвимостей в PHP-коде.
Сама программа выполнена в виде веб-интерфейса, с массой дополнительных возможностей и функций:



Программа достаточно интересна тем, что позволяет устанавливать уровень чувствительности к поиску(1), цветовую схему подсветки синтаксиса(2), просматривать список используемых функций(3), составлять эксплойт в exploit creator(4), code viewer для исследования интересующего участка кода(5), список строк с глобальными ассоц. массивами(6).

Для наглядности проверим реакцию программ на уязвимость кода из примера M4g'a:
PHP код:
<?php
include 'connect.php'//подключаемся к бд

if(!get_magic_quotes_gpc())
    {
    
$_GET    add_magic_quotes($_GET   );
    
$_POST   add_magic_quotes($_POST  );
    
$_COOKIE add_magic_quotes($_COOKIE);
    
$_SERVER add_magic_quotes($_SERVER);
     }

$name urldecode($_GET[name]);
$info urldecode($_GET[info]);
mysql_query("INSERT INTO table(name,info) values('$name','$info')");
mysql_close();
?>
Поместив код в отдельный файл(test.php), скормим его анализаторам и посмотрим на их реакцию:
Graudit:



RIPS:



Также, обращаю ваше внимание на то, что галочка subdirs снята (т.к. мы указали на скрипт), и на то, что следует нажимать, чтобы открыть code-viewer и exploit-creator.

На этом мой мини-обзор инструментов закончен.
Удачного баг-хантинга!

Greetings to all members: xaknet.ru, vulnes.com, rdot.org, exploit.in
p(eaZ, 2010.
p(eaZ вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot