پرش به


تصویر
* * * * * 1 رای

باگ امنیتی : عدم فیلتر کردن داده ها


  • لطفا وارد حساب کاربری خود شوید تا بتوانید پاسخ دهید
1 پاسخ برای این موضوع

#1 SalaR

SalaR

    مدیر بازنشسته

  • عضو سایت
  • ستارهستارهستاره
  • 463 ارسال

ارسالی 1395/09/18 ساعت 09:33

مشکل : عدم فیلتر کردن داده ها

 

در نسخه 11.1 و پایین تر

میزان خطر : بالا

 

فایل زیر را باز کنید :

/engine/classes/parse.class.php

کد زیر را پیدا کنید :

        if( preg_match( "/[?&;%<\[\]]/", $url ) ) {

            if( $align != "" ) return "[img=" . $align . "]" . $url . "[/img]";
            else return "[img]" . $url . "[/img]";

        }

با کد زیر جایگزین کنید :

        if( preg_match( "/[?&;%<\[\]]/", $url ) ) {

            return $matches[0];

        }

  • 1

#2 Saher

Saher

    عضو سایت

  • عضو سایت
  • ستارهستاره
  • 40 ارسال

ارسالی 1395/09/18 ساعت 16:23

این مورد را در نسخه ۱۱.۲ هم من مشاهده کردم!

 

تنها با یک تفاوت :

خط زیر:

$url = $this->clear_url( urldecode( $url ) );

که پس از :

		if( preg_match( "/[?&;%<\[\]]/", $url ) ) {

			if( $align != "" ) return "[img=" . $align . "]" . $url . "[/img]";
			else return "[img]" . $url . "[/img]";

		}

می باشد ! به قبل آن منتقل شده ! یعنی کد نهایی :

		$url = $this->clear_url( urldecode( $url ) );
		
		if( preg_match( "/[?&;%<\[\]]/", $url ) ) {

			if( $align != "" ) return "[img=" . $align . "]" . $url . "[/img]";
			else return "[img]" . $url . "[/img]";

		}

من تست نکردم ولی با نگاه ظاهری می‌شه فهمید که مشکل عدم فیلتر آدرس تصاویر حل می‌شود و از روش قبلی بهتر است.

 

اما خواهشاً تست کنید من هم تست می‌کنم ...

 

البته اگر گزارش شما سالار جان نبود که من هم اطلاعی نداشتم


  • 1

Saher - ادمین سابق دیتالایف ... کمی از مشغله فارق شدم، به زودی شاهد فعالیت‌های من باشید (تعداد زیادی کتابخانه، ماژول - مد و ویرایش‌های ضروری منتشر نکرده دارم که در حال گسترش آن‌ها هستم).

 

I was here since dle 8.2 ... http://www.datalifeengine.ir/blog/versions/942-datalife-engine-v8.2.html



2 کاربر در حال خواندن این موضوع است

0 کاربر، 2 مهمان و 0 عضو مخفی