سلام و وقت بخیر، دو تا سوال داشتم: 1. کد php در صورتی جواب می دهد که سایت مورد نظر با استفاده از php نوشته شده باشد؟ 2. در صورتی که WAF پیلود را تشخیص دهد و یا هنگام ssh زدن یا ftp زدن فایروال جلوی ارسال درخواست به وب سرور رو بگیره امکان دور زدن وجود داره؟ این راه حل ها تنها در صورتی جواب میدن که درخواست ها از فایروال عبور کنن؟
سلام و وقت بخیر، دو تا سوال داشتم: 1. کد php در صورتی جواب می دهد که سایت مورد نظر با استفاده از php نوشته شده باشد؟ 2. در صورتی که WAF پیلود را تشخیص دهد و یا هنگام ssh زدن یا ftp زدن فایروال جلوی ارسال درخواست به وب سرور رو بگیره امکان دور زدن وجود داره؟ این راه حل ها تنها در صورتی جواب میدن که درخواست ها از فایروال عبور کنن؟
سلام
وقت بخیر
عذرمیخوام اینکه مسیر temp کجا هست رو چطور باید پیدا کرد؟
جدای از این مورد نحوه نام گذاری فایل های temp در همه وب سرورهای مشابه بالا (ابتدا نام زبان برنامه نویسی شده و سپس 4 کاراکتر با کاراکترست 0-9 و a-f) هستن؟ و پسوندشون هم tmp هست؟
حس میکنم این تکنیک خیلی خاص و فقط در شرایط خیلی خاصی قابل استفاده هست
سلام
وقت بخیر
عذرمیخوام اینکه مسیر temp کجا هست رو چطور باید پیدا کرد؟
جدای از این مورد نحوه نام گذاری فایل های temp در همه وب سرورهای مشابه بالا (ابتدا نام زبان برنامه نویسی شده و سپس 4 کاراکتر با کاراکترست 0-9 و a-f) هستن؟ و پسوندشون هم tmp هست؟
حس میکنم این تکنیک خیلی خاص و فقط در شرایط خیلی خاصی قابل استفاده هست
سلام
وقت بخیر
عذر میخوام اگر وب سایت با استفاده از asp نوشته شده باشه Wrapper های مخصوص این زبان داریم؟
یا مشابه دستورات بالا هستن با این تفاوت که مثلاً در input wrapper در قسمت بدنه باید کد asp بنویسیم که CMD را فراخونی کند؟
سلام
وقت بخیر
عذر میخوام اگر وب سایت با استفاده از asp نوشته شده باشه Wrapper های مخصوص این زبان داریم؟
یا مشابه دستورات بالا هستن با این تفاوت که مثلاً در input wrapper در قسمت بدنه باید کد asp بنویسیم که CMD را فراخونی کند؟
مچکرم. الان چهطوری میتونیم جلوی اینها رو بگیریم؟ روی سرور خودمون تست کردم که لاراول نصب کردیم هیچ کودوم جواب ندادن ولی خب چهطور اینا رو بزاریم تو بلک لیست سرور؟
مچکرم. الان چهطوری میتونیم جلوی اینها رو بگیریم؟ روی سرور خودمون تست کردم که لاراول نصب کردیم هیچ کودوم جواب ندادن ولی خب چهطور اینا رو بزاریم تو بلک لیست سرور؟
مچکرم. الان چهطوری میتونیم جلوی اینها رو بگیریم؟ روی سرور خودمون تست کردم که لاراول نصب کردیم هیچ کودوم جواب ندادن ولی خب چهطور اینا رو بزاریم تو بلک لیست سرور؟
<p>با سلام<br />ممنون از دقت نظر شما.</p>
<p>نکته اول این که توی این مدل موارد هیچ موقع از استراتژی بلک لیست استفاده نکنید و سعی کنید همیشه از وایت لیست استفاده کنید.</p>
<p>نکته دوم این که در مورد جلوگیری از این موارد هم توصیه ما به شما این هست که کلا اگر توی URL وروردی دریافت می‌کنید هیچ موقع این ورودی رو در آدرسی که میخواید include کنید قرار ندهید و به جای این مورد از یه id برای لود کردن صفحات مختلف استفاده کنید. با این روش نه اسم فایل ها و احیانا مسیرشون لو میره و نه دچار LFI می شید.<br />برای مثال به جای این که کدی که نوشتید مانند کد زیر باشه:</p>
<pre class="line-numbers language-php"><code>include 'pages/'.$_GET['page'];</code></pre>
<p>و به شکل example.com/index.php?page=gallery.php صفحه گالری رو باز کنید می تونید از کدی مانند شبه کد زیر استفاده کنید که id رو دریافت کنه و ادرس رو از پایگاه داده بگیره:</p>
<pre class="line-numbers language-php"><code>$page_id = $_GET['page'];
$address = getPageAddressFromDB($page_id);
include 'pages/'.$address;</code></pre>
<p>حالا می تونید با آدرسی مانند example.com/index.php?page=1 صفحه گالری سایت رو لود کنید.<br />تابع getPageAddressFromDB در شبه کد بالا در واقع به پایگاه داده وصل میشه و از اون بر اساس id که شما دادید اسم فایل PHP که باید include کنه رو میخونه. البته حواستون باشه که برای ارتباط با پایگاه داده حتما از توابع و ORM موجود در خود Laravel استفاده کنید و به صورت دستی خودتون توابع رو ننویسید.<br />توجه کنید اگر صفحاتی که include می‌کنید تعدادشون کم هست می تونید از if else یا switch case هم استفاده کنید که ساده‌تر از وصل شدن به پایگاه داده هست. مثلا اگر سه صفحه gallery و contactus و aboutus رو دارید می تونید از کدی مانند زیر استفاده کنید:</p>
<pre class="line-numbers language-php"><code>$page_id = $_GET['page'];
if($page_id == 1) include 'pages/gallery.php' ;
elseif($page_id == 2) include 'pages/aboutus.php' ;
elseif($page_id == 3) include 'pages/contactus.php' ;
else include 'pages/404.php' ;</code></pre>
<p><br />همونطور که می بینید اگر کاربر هرچیزی غیر از این ۳ تا id رو بخواد به صفحه 404 و خطای not found برخورد میکنه.</p>
<p><br />اما اگر فقط نگران Wrapper ها هستید می تونید از تابع stream_wrapper_unregister که به صورت پیش‌فرض در خود PHP وجود داره استفاده کنید. توجه داشته باشید این تابع فقط توی فایلی که ازش استفاده میشه Wrapper ها رو غیرفعال میکنه و اگر کلا میخواید غیرفعال کنید باید به یه نوعی در همه فایل ها این قطعه کد رو اجرا کنید. برای مطالعه بیشتر میتونید از لینک زیر استفاده کنید.<br /><code class="custom-inline-code">https://www.php.net/manual/en/function.stream-wrapper-unregister.php</code></p>
<p>با سلام<br />ممنون از دقت نظر شما.</p>
<p>نکته اول این که توی این مدل موارد هیچ موقع از استراتژی بلک لیست استفاده نکنید و سعی کنید همیشه از وایت لیست استفاده کنید.</p>
<p>نکته دوم این که در مورد جلوگیری از این موارد هم توصیه ما به شما این هست که کلا اگر توی URL وروردی دریافت می‌کنید هیچ موقع این ورودی رو در آدرسی که میخواید include کنید قرار ندهید و به جای این مورد از یه id برای لود کردن صفحات مختلف استفاده کنید. با این روش نه اسم فایل ها و احیانا مسیرشون لو میره و نه دچار LFI می شید.<br />برای مثال به جای این که کدی که نوشتید مانند کد زیر باشه:</p>
<pre class="line-numbers language-php"><code>include 'pages/'.$_GET['page'];</code></pre>
<p>و به شکل example.com/index.php?page=gallery.php صفحه گالری رو باز کنید می تونید از کدی مانند شبه کد زیر استفاده کنید که id رو دریافت کنه و ادرس رو از پایگاه داده بگیره:</p>
<pre class="line-numbers language-php"><code>$page_id = $_GET['page'];
$address = getPageAddressFromDB($page_id);
include 'pages/'.$address;</code></pre>
<p>حالا می تونید با آدرسی مانند example.com/index.php?page=1 صفحه گالری سایت رو لود کنید.<br />تابع getPageAddressFromDB در شبه کد بالا در واقع به پایگاه داده وصل میشه و از اون بر اساس id که شما دادید اسم فایل PHP که باید include کنه رو میخونه. البته حواستون باشه که برای ارتباط با پایگاه داده حتما از توابع و ORM موجود در خود Laravel استفاده کنید و به صورت دستی خودتون توابع رو ننویسید.<br />توجه کنید اگر صفحاتی که include می‌کنید تعدادشون کم هست می تونید از if else یا switch case هم استفاده کنید که ساده‌تر از وصل شدن به پایگاه داده هست. مثلا اگر سه صفحه gallery و contactus و aboutus رو دارید می تونید از کدی مانند زیر استفاده کنید:</p>
<pre class="line-numbers language-php"><code>$page_id = $_GET['page'];
if($page_id == 1) include 'pages/gallery.php' ;
elseif($page_id == 2) include 'pages/aboutus.php' ;
elseif($page_id == 3) include 'pages/contactus.php' ;
else include 'pages/404.php' ;</code></pre>
<p><br />همونطور که می بینید اگر کاربر هرچیزی غیر از این ۳ تا id رو بخواد به صفحه 404 و خطای not found برخورد میکنه.</p>
<p><br />اما اگر فقط نگران Wrapper ها هستید می تونید از تابع stream_wrapper_unregister که به صورت پیش‌فرض در خود PHP وجود داره استفاده کنید. توجه داشته باشید این تابع فقط توی فایلی که ازش استفاده میشه Wrapper ها رو غیرفعال میکنه و اگر کلا میخواید غیرفعال کنید باید به یه نوعی در همه فایل ها این قطعه کد رو اجرا کنید. برای مطالعه بیشتر میتونید از لینک زیر استفاده کنید.<br /><code class="custom-inline-code">https://www.php.net/manual/en/function.stream-wrapper-unregister.php</code></p>
سلام و وقت بخیر، دو تا سوال داشتم: 1. کد php در صورتی جواب می دهد که سایت مورد نظر با استفاده از php نوشته شده باشد؟ 2. در صورتی که WAF پیلود را تشخیص دهد و یا هنگام ssh زدن یا ftp زدن فایروال جلوی ارسال درخواست به وب سرور رو بگیره امکان دور زدن وجود داره؟ این راه حل ها تنها در صورتی جواب میدن که درخواست ها از فایروال عبور کنن؟
سلام وقت بخیر عذرمیخوام اینکه مسیر temp کجا هست رو چطور باید پیدا کرد؟ جدای از این مورد نحوه نام گذاری فایل های temp در همه وب سرورهای مشابه بالا (ابتدا نام زبان برنامه نویسی شده و سپس 4 کاراکتر با کاراکترست 0-9 و a-f) هستن؟ و پسوندشون هم tmp هست؟ حس میکنم این تکنیک خیلی خاص و فقط در شرایط خیلی خاصی قابل استفاده هست
سلام وقت بخیر عذر میخوام اگر وب سایت با استفاده از asp نوشته شده باشه Wrapper های مخصوص این زبان داریم؟ یا مشابه دستورات بالا هستن با این تفاوت که مثلاً در input wrapper در قسمت بدنه باید کد asp بنویسیم که CMD را فراخونی کند؟
چه دوره ی جذابی. ممنون
سلام ممنون از مقاله ی خوبتون
مچکرم. الان چهطوری میتونیم جلوی اینها رو بگیریم؟ روی سرور خودمون تست کردم که لاراول نصب کردیم هیچ کودوم جواب ندادن ولی خب چهطور اینا رو بزاریم تو بلک لیست سرور؟
<p>با سلام<br />ممنون از دقت نظر شما.</p> <p>نکته اول این که توی این مدل موارد هیچ موقع از استراتژی بلک لیست استفاده نکنید و سعی کنید همیشه از وایت لیست استفاده کنید.</p> <p>نکته دوم این که در مورد جلوگیری از این موارد هم توصیه ما به شما این هست که کلا اگر توی URL وروردی دریافت می‌کنید هیچ موقع این ورودی رو در آدرسی که میخواید include کنید قرار ندهید و به جای این مورد از یه id برای لود کردن صفحات مختلف استفاده کنید. با این روش نه اسم فایل ها و احیانا مسیرشون لو میره و نه دچار LFI می شید.<br />برای مثال به جای این که کدی که نوشتید مانند کد زیر باشه:</p> <pre class="line-numbers language-php"><code>include 'pages/'.$_GET['page'];</code></pre> <p>و به شکل example.com/index.php?page=gallery.php صفحه گالری رو باز کنید می تونید از کدی مانند شبه کد زیر استفاده کنید که id رو دریافت کنه و ادرس رو از پایگاه داده بگیره:</p> <pre class="line-numbers language-php"><code>$page_id = $_GET['page']; $address = getPageAddressFromDB($page_id); include 'pages/'.$address;</code></pre> <p>حالا می تونید با آدرسی مانند example.com/index.php?page=1 صفحه گالری سایت رو لود کنید.<br />تابع getPageAddressFromDB در شبه کد بالا در واقع به پایگاه داده وصل میشه و از اون بر اساس id که شما دادید اسم فایل PHP که باید include کنه رو میخونه. البته حواستون باشه که برای ارتباط با پایگاه داده حتما از توابع و ORM موجود در خود Laravel استفاده کنید و به صورت دستی خودتون توابع رو ننویسید.<br />توجه کنید اگر صفحاتی که include می‌کنید تعدادشون کم هست می تونید از if else یا switch case هم استفاده کنید که ساده‌تر از وصل شدن به پایگاه داده هست. مثلا اگر سه صفحه gallery و contactus و aboutus رو دارید می تونید از کدی مانند زیر استفاده کنید:</p> <pre class="line-numbers language-php"><code>$page_id = $_GET['page']; if($page_id == 1) include 'pages/gallery.php' ; elseif($page_id == 2) include 'pages/aboutus.php' ; elseif($page_id == 3) include 'pages/contactus.php' ; else include 'pages/404.php' ;</code></pre> <p><br />همونطور که می بینید اگر کاربر هرچیزی غیر از این ۳ تا id رو بخواد به صفحه 404 و خطای not found برخورد میکنه.</p> <p><br />اما اگر فقط نگران Wrapper ها هستید می تونید از تابع stream_wrapper_unregister که به صورت پیش‌فرض در خود PHP وجود داره استفاده کنید. توجه داشته باشید این تابع فقط توی فایلی که ازش استفاده میشه Wrapper ها رو غیرفعال میکنه و اگر کلا میخواید غیرفعال کنید باید به یه نوعی در همه فایل ها این قطعه کد رو اجرا کنید. برای مطالعه بیشتر میتونید از لینک زیر استفاده کنید.<br /><code class="custom-inline-code">https://www.php.net/manual/en/function.stream-wrapper-unregister.php</code></p>
فوق العاده لوس