Jump to content

  •         

Photo
* * * * * 1

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


#1 SalaR

SalaR

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

  • عضو سایت
  • PipPipPip
  • 463 posts

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

    عضو سایت

  • عضو سایت
  • PipPip
  • 40 posts

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



0 members, 1 guests, 0 anonymous users