RDot

RDot (https://rdot.org/forum/index.php)
-   Аудит Web-приложений/Web Application Security Audit (https://rdot.org/forum/forumdisplay.php?f=27)
-   -   Automatic Code Analysis Tool (https://rdot.org/forum/showthread.php?t=931)

Beched 27.11.2010 15:45

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

Написал альтернативную программу для поиска уязвимостей.
Принцип: расширяемая библиотека регулярных выражений
Описание, исходники: http://ahack.ru/2010/11/27/automatic-code-analysis-tool
Скриншот: http://s014.radikal.ru/i327/1011/d5/feeefa8b03b1.jpg

celebro 27.11.2010 16:50

Новый велосипед?

Beched 27.11.2010 21:38

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

Redwood, извиняюсь, опечатался, refresh.

Beched 27.11.2010 22:08

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

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

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

Например, в известном (и грамотно реализованном) аналоге от Raz0r'а поиск идёт по всем вхождениям функций, а лучше проверять, принимает ли она в качестве аргумента переменную. И вроде бы (могу ошибаться, ибо давно не пользовался), там выдаёт не только искомые функции, но и те, названия которых содержат искомые.

xCedz 27.11.2010 22:13

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

"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


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

А ты велосепидист.

Qwazar 27.11.2010 22:17

В принципе такой подход бесперспективен. Есть сканнер с гораздо более мощным подходом и очень маленьким кол-вом ложных срабатываний, но его автор не отдаст сканнер даже под пытками :( .

Beched 27.11.2010 22:22

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

Qwazar, конечно, такой класс программ - это утилиты ПОЛУавтоматического поиска уязвимостей. Полностью автоматизировать сложнее)

xCedz 27.11.2010 22:23

Цитата:

Сообщение от Qwazar (Сообщение 9790)
В принципе такой подход бесперспективен. Есть сканнер с гораздо более мощным подходом и очень маленьким кол-вом ложных срабатываний, но его автор не отдаст сканнер даже под пытками :( .

а оно надо? :) особенно тем кто сображает в коде. регулярка рулит. хз мож уже охуенные подходыы есть я хз, мб даже ИИ создан и сам автосплоите кодед :D

Qwazar 27.11.2010 22:25

Цитата:

Сообщение от xCedz (Сообщение 9793)
а оно надо? :) особенно тем кто сображает в коде. регулярка рулит. хз мож уже охуенные подходыы есть я хз, мб даже ИИ создан и сам автосплоите кодед :D

Ну а ты попробуй руками просмотреть 10 мб кода ;) А регулярка находит только банальщину. К примеру, когда кодеры на пхп наконец узнали что такое ООП подход, регулярки стали рулить меньше.

xCedz 27.11.2010 22:25

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

vim. Но тебе видимо не занком етот древний редактор :) Да я опечатался. Думаю ничего страшного.


Часовой пояс GMT +3, время: 04:10.

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