PDA

Просмотр полной версии : Нужна помощь с SSRF


WallHack
10.09.2023, 18:46
Всем привет.
Имеем SSRF через file_get_contents, но с ограничением по загрузки фотографий с расширением gif, png, jpg
Фильтров ввода нет
Такой вариант срабатывает
file:///var/www/fastuser/data/www/site/1.png
Есть возможность через враперы пхп что то сделать?

Gustavo Fring
10.09.2023, 19:49
А попробуйте так


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

WallHack
11.09.2023, 13:17
N1GGA сказал(а):

А попробуйте так


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


Попытка не плохая, спасибо)
Загуглил, там внури

PHP:



$wh_im
=
@
GetImageSize
(
$image_tmp_name
)
;
if
(
$wh_im
[
"mime"
]
==
'image/jpeg'
or
$wh_im
[
"mime"
]
==
'image/jpg'
)
{
$pict
=
@
imagecreatefromjpeg
(
$image_tmp_name
)
;
}
elseif
(
$wh_im
[
"mime"
]
==
'image/png'
)
{
$pict
=
@
imagecreatefrompng
(
$image_tmp_name
)
;
}
elseif
(
$wh_im
[
"mime"
]
==
'image/gif'
)
{
$pict
=
@
imagecreatefromgif
(
$image_tmp_name
)
;
}
else
{
$error
=
"Загружать можно только следующие форматы gif, jpg, jpeg, png"
;
}
if
(
!
$error
)
{
if
(
!
$pict
)
{
$error
=
"Ошибка формата картинки"
;
}
elseif
(
$image_size
==
0
or
$image_size
>
512000
)
{
$error
=
"Максималный размер файла 500 Kb."
;
}
elseif
(
@
imagecreatefromstring
(
file_get_contents
(
$image_tmp_name
)
)
===
false
)
{
$error
=
"Ошибка формата картинки"
;
}
elseif
(
$wh_im
[
0
]
!=
$w
or
$wh_im
[
1
]
!=
$h
)
{
$error
=
"Ошибка! Картинка баннера не соответствует нужному размеру "
.
$w
.
"х"
.
$h
;
}
}