воскресенье, 14 июля 2013 г.

htaccess

Инструкции, направленные на переопределение (rewrite) должны всегда предваряться следующими строками:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

Добавить в обработку как php другие форматы:

AddType application/x-httpd-php .php .php3 .php4 .phtml .html .jpg


Чтобы переадресовать запросы, созданные не по https протоколу на https, и решить проблему необходимости повторной авторизации при использовании htpasswd

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "google.com"
ErrorDocument 403 https://google.com

Для группы файлов типа blog/this.php?gh

RedirectMatch 301 /blog(.*) http://www.askapache.com/$1

Форсированная загрузка файла вместо отображения его содержимого прямо в браузере

AddType application/octet-stream .mpg

Разрешение только методов GET и PUT при обращении к серверу.

Options -ExecCGI -Indexes -All +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} !^(GET|PUT)
RewriteRule .* - [F]
Обработка всех файлов gif скриптом cgi
Action image/gif /cgi-bin/filter.cgi

Запретить обработку php файлов.

<FilesMatch ".(php) $">
Order Allow,Deny
Deny from all
</FilesMatch>


Запрет доступа по IP

Закрыть доступ ВСЕМ, кроме определенных IP:

Order deny,allow
deny from all
# Список IP через пробел, с которых доступ разрешен
Allow from 194.111.70.48 194.78.47.128

Разрешение доступа только с определенных IP к определенной папке (адреса записываются через пробел):

# Указываем папку, к которой запрещаем доступ по имени хоста и его IP

Order deny, allow
deny from all
#Адреса записываются через пробел
Allow from 198.69.144.98 198.69.144.94 198.69.144.92 
# неполный адрес, если необходимо закрыть доступ по маске то используем неполный адрес
Allow from 198.69. 


SSH socks proxy


ssh -CND 1080  login@server

  • 1080 - порт на локальном компе, через который мы и будем выходить в инет
  • C - нужна здесь для сжатия данных
  • N - для того чтобы не было записи в wtmp
  • D - благодаря этому ключу всё и работает.


В браузере, где вбивается socks proxy написать locаlhost port 1080, ну и поставить галочку напротив socks5

Еще говорится, что в конфиге sshd.conf должна быть такая строчка:

AllowTcpForwarding yes

http://ruunix.ru/496-xitrosti-ssh.html



суббота, 13 июля 2013 г.

Спрятать inject

Папка cgi-bin чаще всего находится вне каталога htdocs и потому остается без внимания. На самом деле именно она нередко становится местом для хостинга малвари. К примеру, в ней легко может оказаться файл php.ini, содержащий строчку вроде:

 auto_append_file = "/home/user/USER/
 cgi-bin/security.cgi
 #php in .htaccess
 php_value auto_append_file /путь/к/вирусу 

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

Таблица символов Unicode

Опасные функции PHP

Рекомендуется отключить следующие PHP функции: 

exec, system, passthru, readfile, shell_exec, escapeshellarg, escapeshellcmd, proc_close, proc_open, ini_alter, dl, popen, parse_ini_file, show_source, curl_exec.

так как именно они чаще всего применяются во вредоносных скриптах.

Для того чтобы это сделать, необходимо привести раздел disable_functions файла php.ini к следующему виду:
 

disable_functions = "exec,system,passthru,readfile,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,parse_ini_file,show_source,curl_exec,pcntl_exec,expect_popen"

service php-fpm restart 

Если ваши сайты (Joomla) используют ini файлы, то parse_ini_file лучше не отключать.

Также рекомендуется отключить чтение и использование удаленных файлов, это реализуется путем изменения значения опции allow_url_fopen off и allow_url_include off в файле php.ini

Описание указанных функций:

exec — вызов внешней программы
ini_get — получает значение опции конфигурации
ini_get_all — получает все опции конфигурации
parse_ini_file — разбирает файл конфигурации
passthru — вызов внешней программы и вывод «сырых» результата на дисплей
php_uname — возвращает информацию об ОС, на которой php был построен
popen — открывает файловый указатель процесса
proc_open — выполняет команду и открывает файловый указатель для ввода/вывода
shell_exec — выполняет команду в оболочке/shell и возвращает полный вывод в виде строки
show_source — вывод исходного текста текущей веб страницы
system — вызов внешней программы и вывод результата на дисплей
Также стоит подумать над отключением таких функций:
diskfreespace — псевдоним функции disk_free_space
disk_free_space — получить размер доступного пространства в каталоге
disk_total_space — возвращает общий размер диска
eval — вычисляет строку, заданную в code_str, как код PHP (eval ( string code_str))
fileperms — получить информацию о правах на файл
fopen — открывает файл или URL
opendir — возвращает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir()
phpinfo — выводит всю информацию об php, Ос
phpversion — выводит версию php
posix_getpwuid — возвращает информацию о пользователе по его user id
posix_getgrgid — возвращает информацию о группе по её group id
posix_uname — получает системное имя, возвращает хэш строк с информацией о системе

sql-injection от а до я

Очень полезные команды Linux на одном листе

http://www.f-notes.info/linux:linux_command

Блоги и форумы по WEB безопасности

Очень много разных ресурсов: http://hacker.yakuza112.org/

http://raz0r.name/
http://oxod.ru
http://devteev.blogspot.ru
http://kaimi.ru/

http://mrthe.name/ 
http://godinside.ru/
http://rushter.com

http://www.securitylab.ru/

http://brutezone.ru/showthread.php?t=2842 

eng
Forums
http://evilzone.org/
http://www.hackcommunity.com/Forum-Website-Exploits-Discussion
http://www.ic0de.org/forum.php
http://www.enigmagroup.org/forums/


Blogs
http://hackademix.net
http://haacked.com/
http://blog.yakuza112.org/
http://www.room362.com/blog/
http://carnal0wnage.attackresearch.com/
http://pentestn00b.wordpress.com/
http://www.darkoperator.com/

http://netsecurity.about.com/

Закрытые ресурсы:
https://coru.ws/

old
http://poc-hack.blogspot.ru/

фрикинг
http://dogber1.blogspot.ru/

WAF

пятница, 12 июля 2013 г.

Обход php-функции Addslashes для SQL-инъекций

Для справки: addslashes добавляет экранирующий символ (то есть слэш «/») перед символами одинарных (0x27) и двойных (0x22) кавычек, бэкслэшем (0x5c) и перед null-байтом (0x00). Таким образом, данное экранирование лишает взломщика возможности провести инъекцию.

Но в определенных ситуациях мы можем обойти эту функцию. В каких? Когда при взаимодействии с базой данных используются мультибайтовые кодировки — SJIS, BIG5, GBK, CP932. Возможны и другие, но точно не UTF. Могут быть дополнительные ограничения в виде MySQL 4.1.х-4.1.20, 5.0.x-5.0.22 и PHP < 5.2.5 Как видишь, спектр возможных целей сужается, но все же стоит об этом помнить, особенно «работая» с иностранными сайтами.

Но посмотрим, в чем же суть уязвимости. Для кодировки GBK, например, 0xbf27 — неправильная последовательность, такого символа нет. В то же время символ 0xbf5c — есть. Теперь посмотрим на работу функции addslashes: она берет по одному байту и экранирует его, если необходимо. 0xbf — это «Ќ„», 0x27 — это кавычка, ее экранируем.
На выходе получается 0xbf5c27 (. \'), но в MySQL воспринимается два символа — 0xbf5c и 0х27, то есть «что-то» и кавычка.

http://test.com/Vuln.php?id=%bf%27 OR 1=1 /*

К описанному выше можно добавить, что и с mysql_escape_string могут быть похожие проблемы, хотя и в очень специфических ситуациях. Подробнее читай в следующих постах:


http://www.xakep.ru/post/57042/default.asp