PDA

View Full Version : کار دقیق این تابع چیه؟



gigelaknak
جمعه 08 دی 1391, 17:38 عصر
سلام
کار دقیق این تابع چیه؟
97426

gigelaknak
جمعه 08 دی 1391, 18:07 عصر
سلام
توی این شرط بررسی میشه که اگه کاربر یکی از این کاراکتر هایی رو که sql بهش حساس هست رو توی آدرس بار وارد کرده باشه پیغام بده که میخواستی هک کنی؟ وگرنه عملیات رو انجام بده.
این کد واسه جلوگیری از Sql injection هست.
فقط که برای sql injection نیست !
میخوام بدونم دقیقا به کدوم کاراکتر ها حساسه؟ و آیا راهی برای دور زدنش هست؟

hidensoft
جمعه 08 دی 1391, 18:53 عصر
شبیه هر چیزی هست الا sql injection . بیشتر به نظر میاد داره نگاه می کنه که آیا ایندکس page از GET_$ چیزی شبیه به url هست یا خیر. خب برای دور زدنش هم باید یه چیزی که مثله url نباشه وارد کنید.


توی این شرط بررسی میشه که اگه کاربر یکی از این کاراکتر هایی رو که sql بهش حساس هست رو توی آدرس بار وارد کرده باشه پیغام بده که میخواستی هک کنی؟ وگرنه عملیات رو انجام بده.
من هرچی فکر کردم که شما چطوری می تونی یه همچین نتیجه گیری رو از این regx داشته باشی نتونستم خودمو قانع کنم.

mamali-mohammad
جمعه 08 دی 1391, 19:46 عصر
این بررسی میکنه که فایلی که قرار include بشه شامل http یا ftp نباشه
برای جلوگیری از CSRF استفاده کرده
یعنی فقط و فقط فایل های موجود در سایت و همین مسیر فعلی رو میخونه و اگه خارج از این سایت باشه error میده

rezaonline.net
جمعه 08 دی 1391, 21:10 عصر
جناب mamali-mohammad (http://barnamenevis.org/member.php?106765-mamali-mohammad) فکر کنم اونی که شما میگی اسمش remote file include باشه یا یه چیزی توی این مایه ها .
csrf برای مواقعی هست که کاربر رو مورد حمله قرار بدید با خروندن لینک به کاربر .

این چیزی که من میبینم کمی نامطئن هست .
ببینید شما اگر قراره با توجه به متد وردودی چیزی رو include کنید مثل یک کنترلر باید قانون خودتون رو بذارید .
مثلا اگر متد ورودی رو news وارد کرد باید شما فایل theNewsController.php رو اینکلود کنید . همچنین باید توی اون فایل صریحا همچین کلاسی باشه تا بتونید دوباره چک کنید که اگر کلاس موجود نبود (یک فایل دیگه اینکلود شده بود) خطا بده .

خلاصه این روشی که من میبینم شبیه لیست سیاه هست که هیچ وقت پیشنهاد نمیشه .

mamali-mohammad
جمعه 08 دی 1391, 21:53 عصر
بله درسته اینی من گفتم RFI یا LFI هست
همونطور rezaonline گفت نمیشه حتمی ازش جلوگیری کرد
بهترین راهش اینه :


<?php

$file = $_GET['page']; //The page we wish to display

// Only allow include.php
if ( $file != "include.php" ) {
echo "ERROR: File not found!";
exit;
}

?>

gigelaknak
شنبه 09 دی 1391, 09:06 صبح
ممنون که جواب دادید , ولی خودم میدونستم که این فرم مربوط به جلوگیری از باگ remote file inclusion هست ! در حقیقت این فرم مربوط به یه مسابقه ی هک هست که باید یه جوری دورش بزنیم و به با rfi یه لینک رو فراخوانی کنیم

حالا سوال من اینه که این فرم دقیقا به کدوم کاراکتر ها حساسه ؟ یعنی مثلا
abc...xyz
ABC...XYZ
123...89
!@#^#%
/
\

http ftp اینارو خودم فهمیدم

mamali-mohammad
شنبه 09 دی 1391, 11:41 صبح
مسیر رو اینطوری بدی :

yourname.com/page.php?page=../../../../../../../../../etc/passwd
خیلی شیک و تمیز برات اطلاعات رو میاره

رضا قربانی
شنبه 09 دی 1391, 12:51 عصر
سلام
کار دقیق این تابع چیه؟
97426
بهتر نبود کدتون رو داخل ادیتور سایت می نوشتید تا بچه ها از جمله من بتونیم بهتر کمکتون کنیم !

gigelaknak
دوشنبه 11 دی 1391, 10:53 صبح
مسیر رو اینطوری بدی :

yourname.com/page.php?page=../../../../../../../../../etc/passwd
خیلی شیک و تمیز برات اطلاعات رو میاره
نیمشه عزیز ! :| RFI میخوام بگیرم نه LFI

بهتر نبود کدتون رو داخل ادیتور سایت می نوشتید تا بچه ها از جمله من بتونیم بهتر کمکتون کنیم !
بفرمایید :

if(prrg_match("/(data|http|https|ftp):\/\/([a-zA-Z0-9_]+)\.([a-zA-Z0-9-_]+)/i",$_GET['page']))

حالا یکی لطقا بگه این تابع دقیقا چه چیز هایی رو فیلتر میکنه !

رضا قربانی
دوشنبه 11 دی 1391, 20:39 عصر
نیمشه عزیز ! :| RFI میخوام بگیرم نه LFI

بفرمایید :

if(prrg_match("/(data|http|https|ftp):\/\/([a-zA-Z0-9_]+)\.([a-zA-Z0-9-_]+)/i",$_GET['page']))

حالا یکی لطقا بگه این تابع دقیقا چه چیز هایی رو فیلتر میکنه !

بفرمایید :
http://barnamenevis.org/showthread.php?358191-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%B1%DA%AF%D9%88%D9%84%D8%A7%D8%B1-%D8%A7%DA%A9%D8%B3%D9%BE%D8%B1%D8%B4%D9%86-Regular-expression&p=1664705&viewfull=1#post1664705
آخرین پست