Старый 27.11.2010, 16:45   #1
Beched
 
Регистрация: 06.07.2010
Сообщений: 395
Репутация: 118
По умолчанию Automatic Code Analysis Tool

//в релизах запостить прав не хватило, пишу тут.

Написал альтернативную программу для поиска уязвимостей.
Принцип: расширяемая библиотека регулярных выражений
Описание, исходники: http://ahack.ru/2010/11/27/automatic-code-analysis-tool
Скриншот:
Beched вне форума   Ответить с цитированием
Старый 27.11.2010, 17:50   #2
celebro
 
Регистрация: 05.07.2010
Сообщений: 4
Репутация: 0
По умолчанию

Новый велосипед?
celebro вне форума   Ответить с цитированием
Старый 27.11.2010, 22:38   #3
Beched
 
Регистрация: 06.07.2010
Сообщений: 395
Репутация: 118
По умолчанию

celebro, ну мы вроде в личке обсудили )

Redwood, извиняюсь, опечатался, refresh.
Beched вне форума   Ответить с цитированием
Старый 27.11.2010, 23:08   #4
Beched
 
Регистрация: 06.07.2010
Сообщений: 395
Репутация: 118
По умолчанию

Лол, я вообще-то просто забыл сменить подпись, а когда я её ставил, ты был совершенно согласен и сам возможно ставил. Так что остынь )

Насчёт велосипеда: я всё время отбрасывал всякие идеи только потому, что они были уже реализованы. Но это неправильно, потому что так ничему не научишься + нужна какая-то конкуренция, возможно в итоге получится что-то хорошее.

К тому же, эта программа хоть и написана кривовата, чем-то отличается от аналогов, уж не знаю, в лучшую ли сторону.
А именно, принципом поиска. Я, собственно говоря, это уже написал.

Например, в известном (и грамотно реализованном) аналоге от Raz0r'а поиск идёт по всем вхождениям функций, а лучше проверять, принимает ли она в качестве аргумента переменную. И вроде бы (могу ошибаться, ибо давно не пользовался), там выдаёт не только искомые функции, но и те, названия которых содержат искомые.
Beched вне форума   Ответить с цитированием
Старый 27.11.2010, 23:13   #5
xCedz
 
Регистрация: 05.07.2010
Сообщений: 33
Репутация: 6
По умолчанию

бла бла бла
на навиме

"PHP bugs"
syntax match bug "\(system\|popen\|shell_exec\|exec\)($_\(GET\|POST \|COOKIE\|REQUEST\|SESSION\).*)"
syntax match bug "eval($_\(GET\|POST\|REQUEST\|COOKIE\).*)"
syntax match bug "mysql_query(.*$_\(GET\|POST\|COOKIE\|SESSION\|REQ UEST\).*)"
syntax match bug "WHERE *. =.*$_\(GET\|POST\|COOKIE\|SESSION\|REQUEST\).*"
syntax match bug "echo\|print\(.*\)$_SERVER['PHP_SELF']"
"PHP - Execution"
syntax match bug "exec\s*\(.*\)"
syntax match bug "`.*`"
syntax match bug "passthru\s*\(.*\)"
syntax match bug "popen\s*\(.*\)"
syntax match bug "proc_close\s*\(.*\)"
syntax match bug "proc_open\s*\(.*\)"
syntax match bug "proc_get_status\s*\(.*\)"
syntax match bug "proc_nice\s*\(.*\)"
syntax match bug "proc_terminate\s*\(.*\)"
syntax match bug "shell_exec\s*\(.*\)"
syntax match bug "system\s*\(.*\)"
"Extensions"
syntax match bug "expect_"
syntax match bug "pcntl_"
syntax match bug "posix_"
"Semaphore extension"
syntax match bug "ftok"
syntax match bug "msg_get_queue"
syntax match bug "msg_queue_exists"
syntax match bug "msg_receive"
syntax match bug "msg_remove_queue"
syntax match bug "msg_send"
syntax match bug "msg_set_queue"
syntax match bug "msg_stat_queue"
syntax match bug "sem_"
syntax match bug "shm_"
syntax match bug "shmop_"
"Informatin disclosure"
syntax match bug "phpinfo\s*\(.*\)"
syntax match bug "phpcredits\s*\(.*\)"
syntax match bug "php_logo_guid\s*\(.*\)"
syntax match bug "php_uname\s*\(.*\)"
syntax match bug "phpversion\s*\(.*\)"
syntax match bug "zend_logo_guid\s*\(.*\)"
syntax match bug "zend_version\s*\(.*\)"
syntax match bug "get_loaded_extensions\s*\(.*\)"
"PHP - Database"
syntax match bug "mysql_connect\s*\(.*\$.*\)"
syntax match bug "mysql_pconnect\s*\(.*\$.*\)"
syntax match bug "mysql_change_user\s*\(.*\$.*\)"
syntax match bug "mysql_query\s*\(.*\$.*\)"
syntax match bug "mysql_error\s*\(.*\$.*\)"
syntax match bug "mysql_set_charset\s*\(.*\$.*\)"
syntax match bug "mysql_unbuffered_query\s*\(.*\$.*\)"
syntax match bug "pg_connect\s*\(.*\$.*\)"
syntax match bug "pg_pconnect\s*\(.*\$.*\)"
syntax match bug "pg_execute\s*\(.*\$.*\)"
syntax match bug "pg_insert\s*\(.*\$.*\)"
syntax match bug "pg_put_line\s*\(.*\$.*\)"
syntax match bug "pg_query\s*\(.*\$.*\)"
syntax match bug "pg_select\s*\(.*\$.*\)"
syntax match bug "pg_send_query\s*\(.*\$.*\)"
syntax match bug "pg_set_client_encoding\s*\(.*\$.*\)"
syntax match bug "pg_update\s*\(.*\$.*\)"
"PHP - Superglobals & Envoronment"
syntax match bug "getenv\s*\(.*\)"
syntax match bug "apache_getenv\s*\(.*\)"
syntax match bug "putenv\s*\(.*\)"
syntax match bug "apache_setenv\s*\(.*\)"
syntax match bug "getallheaders\s*\(.*\)"
syntax match bug "apache_request_headers\s*\(.*\)"
syntax match bug "apache_response_headers\s*\(.*\)"
syntax match bug "\$_ENV\[.*\]"
syntax match bug "\$_GET\[.*\]"
syntax match bug "\$_POST\[.*\]"
syntax match bug "\$_COOKIE\[.*\]"
syntax match bug "\$_REQUEST\[.*\]"
syntax match bug "\$_FILES\[.*\]"
syntax match bug "\$PHPSELF"
syntax match bug "\$HTTP_GET_VARS"
syntax match bug "\$http_get_vars"
syntax match bug "\$HTTP_POST_VARS"
syntax match bug "\$http_post_vars"
syntax match bug "\$HTTP_ENV_VARS"
syntax match bug "\$http_env_vars"
syntax match bug "\$HTTP_POST_FILES"
syntax match bug "\$http_post_files"
"Otherstuffs"
syntax match bug "header\s*\(.*\$_(GET|POST|REQUEST|COOKIE).*\) "
syntax match bug "eval\s*\(\s*.\$.*\s*\)"
syntax match bug "file\s*\(.\$.*\)"
syntax match bug "file_get_contents\s*\(.\$.*\)"
syntax match bug "fopen\s*\(.*\$.*\)"
syntax match bug "fwrite"
syntax match bug "move_uploaded_file\s*\(.*\)"
syntax match bug "stream_"
syntax match bug "create_function\s*\(.*\)"
syntax match bug "mail\s*\(.\$.*\)"
syntax match bug "include\s*\(.*\$.*\)"
syntax match bug "include_once\s*\(.*\$.*\)"
syntax match bug "preg_replace\s*\(.\$*\)"
syntax match bug "readfile\s*\(.\$.*\)"
syntax match bug "require\s*\(.*\$.*\)"
syntax match bug "require_once\s*\(.*\$.*\)"
"Stefan Esser's research"
syntax match bug "unserialize\s*\(.*\)"
syntax match bug "unserialize_callback_func"
"PHP xss signatures"
syntax match bug "echo\s*.*\$(_GET|_POST|_REQUEST|_SESSION|_COOKIE| HTTP).*"
syntax match bug "<\?(php)?\s*=\$(_GET|_POST|_REQUEST|_SESSION|_COO KIE|HTTP).*"

"Perl bug"
syntax match bug "get"
syntax match bug "readdir"
syntax match bug "read"
syntax match bug "sysread"
syntax match bug "exec"
syntax match bug "eval"
syntax match bug "fork"
syntax match bug "`.*`"
syntax match bug "fctnl"
syntax match bug "ioctl"
syntax match bug "bind"
syntax match bug "setpgrp"
syntax match bug "syscall"
syntax match bug "connect"
syntax match bug "system"
syntax match bug "glob"
syntax match bug "open"
syntax match bug "mkdir"
syntax match bug "rmdir"
syntax match bug "link"
syntax match bug "unlink"
syntax match bug "chmod"
syntax match bug "chown"
syntax match bug "chroot"
syntax match bug "symlink"
syntax match bug "truncate"
syntax match bug "kill"
syntax match bug "umask"
highlight link bug Todo


все блять. и больше нахуй ничего не надо

А ты велосепидист.
xCedz вне форума   Ответить с цитированием
Старый 27.11.2010, 23:17   #6
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

В принципе такой подход бесперспективен. Есть сканнер с гораздо более мощным подходом и очень маленьким кол-вом ложных срабатываний, но его автор не отдаст сканнер даже под пытками .
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 27.11.2010, 23:22   #7
Beched
 
Регистрация: 06.07.2010
Сообщений: 395
Репутация: 118
По умолчанию

xcedz, Что такое навим? Я не велосипедист, а человек, обучающийся программированию. Так что не пытайся убедить меня, что я пишу это зря)

Qwazar, конечно, такой класс программ - это утилиты ПОЛУавтоматического поиска уязвимостей. Полностью автоматизировать сложнее)
Beched вне форума   Ответить с цитированием
Старый 27.11.2010, 23:23   #8
xCedz
 
Регистрация: 05.07.2010
Сообщений: 33
Репутация: 6
По умолчанию

Цитата:
Сообщение от Qwazar Посмотреть сообщение
В принципе такой подход бесперспективен. Есть сканнер с гораздо более мощным подходом и очень маленьким кол-вом ложных срабатываний, но его автор не отдаст сканнер даже под пытками .
а оно надо? особенно тем кто сображает в коде. регулярка рулит. хз мож уже охуенные подходыы есть я хз, мб даже ИИ создан и сам автосплоите кодед
xCedz вне форума   Ответить с цитированием
Старый 27.11.2010, 23:25   #9
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Цитата:
Сообщение от xCedz Посмотреть сообщение
а оно надо? особенно тем кто сображает в коде. регулярка рулит. хз мож уже охуенные подходыы есть я хз, мб даже ИИ создан и сам автосплоите кодед
Ну а ты попробуй руками просмотреть 10 мб кода А регулярка находит только банальщину. К примеру, когда кодеры на пхп наконец узнали что такое ООП подход, регулярки стали рулить меньше.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 27.11.2010, 23:25   #10
xCedz
 
Регистрация: 05.07.2010
Сообщений: 33
Репутация: 6
По умолчанию

бечед не навим а на вим то есть

vim. Но тебе видимо не занком етот древний редактор Да я опечатался. Думаю ничего страшного.
xCedz вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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