PDA

View Full Version : حرفه ای: نحوه جلوگیری از حملات SQL Injection



PHP Assistant
دوشنبه 29 فروردین 1390, 06:59 صبح
جلسه اول


حملات SQL Injection چیست؟
در این گونه حملات نفوذگر با تزریق کدهای SQL در سرور می تواند به راحتی و بی سر و صدا پسورد ادمین را به دست آورند. البته این گونه حملات فقط برای سایت های آسیب پذیر کار می دهد و به راحتی می توان سایت خود را محافظت کنیم.
-------------------------------------------------------------------------------
مرحله اول: روش شناسی (Methodology):
قدم اول برای هر هکر SQLI این است که از سایت تست نفوذ پذیری بگیرد. ابتدا او باید صفحه ای از سایت هدف را پیدا کند که مقداری می گیرید که به SQL مرتبط است. مثلا:

news.php?id=1
سپس یکی از علامت های * ' " / \ را جلوی Query String می گذارد:

news.php?id=1'

اگر سایت آسیب پذیر بود، خطای MySQL مشاهده و در غیر این صورت مطالب سایت درست نمایش داده می شود.


با ما باشید تا جلسه بعد...

PHP Assistant
دوشنبه 29 فروردین 1390, 13:24 عصر
جلسه دوم


کاراکترهای ذکرشده برای کوئریها غیرقابل قبول هستند.

این گونه حملات از کجا صورت می گیرید؟
از جایی که اطلاعات گرفته می شود. فرض کنید که یک فرم دارید که با روش GET اطلاعات آن به فایلی فرستاده می شود و در بانک اطلاعاتی ذخیره می شود. در این جا هکر می تواند با وارد کردن کاراکتر تست آسیب پذیری ، امنیت را بسنجد و سپس کوئری را تزریق کند. به هر حال شما با دستور GET یا POST اطلاعات را بدون چک کردن بخواهید به فایلی بفرستید هکر به راحتی می تواند شما را هک کند.

هکرهای تازه وارد SqlI معمولا از فرم ها استفاده نمی کنند. آنها کد را در Query Stringها تزریق می کنند. همان طور که در جلسه قبل گفته شد.

کاراکترهای خراب
کاراکترهای ' * " و / و \ برای بسیاری از سرورها مخصوصا MySQL Server ، جز کاراکترهای غیرقابل ذخیره محسوب می شود. پس ما برای جلوگیری از هک سایتمان باید از وارد کردن این کاراکترها جلوگیری کنیم.


با ما باشید تا جلسه بعد

PHP Assistant
دوشنبه 29 فروردین 1390, 19:59 عصر
جلسه آخر


ابتدا باید مقادیر ورودی را چک کنیم. استفاده از POST یا GET فرقی نمی کند. حتی شما می توانید این دستور را برای کوکی ها نیز بنویسید.
کاری که باید انجام دهیم
ابتدا کاراکترهای مخرب را پیدا می کنیم. می دانیم که هر کاراکتر کد خاصی دارد، مانند %01 پس ما کاراکترهای مخرب را به کد تبدیل می کنیم تا برای پایگاه داده قابل خواندن باشد. ممکن است سخت بنظر بیاید ولی اگر از PHP استفاده می کنید و پایگاه داده تان MySQL Server است، به راحتی می توانید تابع را بنویسید. زیرا خود کتابخانه MySQL چنین توابعی را تدارک دیده. پس از چک کردن مقادیر ورودی می توانید تابع زیر را به کار ببرید. من معمولا توابع مفیدم را در کتابخانه توابع می ریزم و سپس آن را Include می کنم. ابتدا یک تابع ایجاد کنید:


<?php
...............
function PHPASSISTANT_CLEAN ($value) {
...
}
...............
?>

در خط اول ما تابعی با نام PHPASSISTANT_CLEAN ایجاد کردیم. ابتدا چک می کنیم در متغیر $value فاصله ای هست یا نه و آن را حذف کنیم.


<?php
...............
function PHPASSISTANT_CLEAN ($value) {
$value = @trim($value);
...
}
...............
?>

با کدی که اضافه کردیم، تمامی فاصله ها حذف می شود.


گفتیم که یکی از کاراکترهای مخرب / و \ است. پس آن ها را حذف می کنیم. این کاراکترها معمولا در " (Magic Quotes) وجود دارند. به این دلیل که PHP آن ها را به طور خودکار تبدیل می کند. پس ما باید چک کنیم آیا این علامت وجود دارد یا خیر و سپس اسلش (Slash) های آن را حذف کنیم.


<?php
...............
function PHPASSISTANT_CLEAN ($value) {
$value = @trim($value);
if (get_magic_quotes_gpc()) {
$value = stripslashes($values);
}
...
}
...............
?>

در تابع if ما چک کردیم آیا این نسخه از PHP به Magic Quotes اسلش اضافه می کند یا نه. اگر جواب درست بود که تمامی اسلش ها را با استفاده از تابع stripslashes() حذف می کنیم.

mySQL تابعی دارد که ما می توانیم از آن برای escape از کاراکترهای مخرب استفاده کنیم. برای همین آخرین خط تابع را هم اضافه می کنیم.


<?php
...............
function PHPASSISTANT_CLEAN ($value) {
$value = @trim($value);
if (get_magic_quotes_gpc()) {
$value = stripslashes($values);
}
return mysql_real_escape_string($value);
}
...............
?>


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


آرای آموزش بعدی تا پس فردا شمرده میشه و گزینه منتخب آموزش داده میشه:لبخند:

eshpilen
دوشنبه 29 فروردین 1390, 20:11 عصر
کاراکترهای ' * " و / برای بسیاری از سرورها مخصوصا MySQL Server ، جز کاراکترهای غیرقابل ذخیره محسوب می شود.
مطمئنی؟
فکر نمیکنم این کاراکترها غیرقابل ذخیره باشن.
فقط چون در کوئری ها معنای خاصی دارن باید به شکلی علامتگذاری بشن که معنای خاص براشون درنظر گرفته نشه. به این علامتگذاری Escape کردن گفته میشه. بعدش دیگه این کاراکترها در دیتابیس به همون شکل خام ذخیره میشن. اگر نشه ذخیره کرد که مشکل پیش میاد، چون خیلی دیتاهایی که نیاز داریم در دیتابیس ذخیره کنیم نیاز به دارا بودن این کاراکترها دارن.

PHP Assistant
سه شنبه 30 فروردین 1390, 06:58 صبح
از اون جایی که خودم صاحب یه سرورم این حرف رو زدم. چون بارها و بارها دیدم که هنگام ذخیره کاراکتر اسلش ارور میاره. حتی یه بار هنگ هم کرد!

eshpilen
سه شنبه 30 فروردین 1390, 07:46 صبح
مشکل به احتمال زیاد در جای دیگه بوده.
تمام کاراکترها در دیتابیس قابل ذخیره سازی هستن. هیچ محدودیت فنی ای در این ارتباط نمیتونه و نباید وجود داشته باشه.
مشکل فقط موقع ترکیب و تفسیر کوئری هست که اونم راه استاندارد داره.

PHP Assistant
سه شنبه 30 فروردین 1390, 14:12 عصر
فرمایش شما صحیح. ولی من از تجربه خودم این حرف رو زدم و الکی حرف نمی زنم.

eshpilen
سه شنبه 30 فروردین 1390, 14:25 عصر
حرف و تجربهء شما برای خودتون شاید سند باشه، ولی برای دیگران و ادعایی که میکنید نیاز به اثبات هست. اثبات هم سند و مدرک میخواد.
صاحب سرور هم باشید که چی خب؟
شما میگید این کاراکترها در بسیاری از سرور ها بخصوص MySQL Server غیرقابل ذخیره سازی هستن. خب میدونید این حرف چقدر عجیب و غیرواقعی هست؟
با دوتا کد و تست ساده میشه ثابت کرد که این ادعا اشتباه هست. یعنی که چی چنتا کاراکتر متداول رو نمیتونن ذخیره کنن!! پس اینهمه دیتا هست که نیاز به این کاراکترها دارن رو در MySQL ذخیره نمیکنن؟ یا فکر کردید همه جا میشه همینطور هر کاراکتری رو که میخوایم از دیتا حذف کنیم؟
حرفایی میزنید خدایی مخ آدم سوت میکشه.
میخوای یه تست ساده بنویسم ببینی ذخیره میشه یا نه؟
بجز شما بقیه هم میتونن تستش کنن.

اگر میخوای مورد و باگ خاصی رو مطرح کنی هم باید شرح شرایط و test case بدی.
ضمنا حرفی که شما زدی کلی بود و میگی بطور کلی نمیشه این کاراکترها رو ذخیره کرد!!!!!!!!!!
آقا جان دیتابیس اصلا یه سیستم ذخیره سازی عمومی هست. هرنوع دیتایی رو باید بتونه ذخیره کنه. اعم از باینری و متنی. دیتای باینری که عملا محدودیت در کاراکتر نباید داشته باشه و بایتهاش میتونن کد معادل هرکاراکتری رو داشته باشن، دیتای متنی هم تازه همینطور هست. خیلی مسخره و خیالبافی محض هست که بگیم یه دیتابیس به اون عظمت نمیتونه چنتا کاراکتر اونم کاراکترهای خیلی عادی و متداول در متون رو ذخیره کنه.

اشکالاتی هم که شما میبینید ۹۹٪ احتمال بخاطر باگ و عدم توانایی دیتابیس نیست، بلکه بعلت ضعف برنامه نویسی و پیچیدگی هایی هست که در اثر معنای خاص داشتن این کاراکترها در کوئری ها بوجود میان. و همهء اینا راه استاندارد دارن، اما این ضعف برنامه نویسی و اشتباه بشر هست که باعث میشه این کاراکترها جایی مشکل ایجاد کنن. گاهی ممکنه مشکل هم مستقیما در کد و برنامهء شما نباشه و در یکی از برنامه های درگیر دیگر یا اجزای سرور باشه که دیگران نوشتن و یجوری در کار شما نقش ایفا میکنه.
حتی در حرفه ای ترین برنامه ها هم این ضعفها و نقصها ممکنه دیده بشن.
شما تا میبینی یه مشکلی وجود داره میگی دیتابیس نمیتونه این کاراکترها رو ذخیره کنه! آخه یعنی چی این حرف.
و اونایی که دیتابیس رو طراحی کردن لابد خبر نداشتن از این قضیه!!
نهایتش بگی یه باگی داره. نه اینکه بگی خیلی از دیتابیس ها نمیتونن این کاراکترها رو ذخیره کنن. اونم همینطوری شما یه نفر بدون هیچ سند و استدلالی حرفت رو دیگران باید قبول کنن؟

PHP Assistant
سه شنبه 30 فروردین 1390, 20:31 عصر
کاراکترهای مخرب به صورت خام ذخیره نمیشن! بلکه سرور به اون ها کد میده. من درست نمی دونم کدش چیه ولی برای مثال: %90 و بعد شما در دیتابیس منیجر به صورت کاراکتر می بینید.من نمی دونم چرا بعضی ها فقط حرف خودشون رو قبول دارن! "مخ آدم سوت میکشه"؟ پس چرا مخ خودم سوت نکشید؟ سوت کشیدن مخ درمان داره. اگر شما فکر می کنید حرف خودتون درسته خب یه تاپیک ایجاد کنید و توش با فونت بزرگ بنویس.
حرف من هم ممکنه اشتباه باشه.

علیرضا حسن زاده
دوشنبه 05 اردیبهشت 1390, 18:01 عصر
کاراکترهای مخرب به صورت خام ذخیره نمیشن! بلکه سرور به اون ها کد میده. من درست نمی دونم کدش چیه ولی برای مثال: %90 و بعد شما در دیتابیس منیجر به صورت کاراکتر می بینید.من نمی دونم چرا بعضی ها فقط حرف خودشون رو قبول دارن! "مخ آدم سوت میکشه"؟ پس چرا مخ خودم سوت نکشید؟ سوت کشیدن مخ درمان داره. اگر شما فکر می کنید حرف خودتون درسته خب یه تاپیک ایجاد کنید و توش با فونت بزرگ بنویس.
حرف من هم ممکنه اشتباه باشه.
دوست عزیز شما چرا زود ناراحت میشی؟؟!:متعجب:
خیلی راحت می تونی از خودت بپرسی که چرا این کاراکتر ها به قول شما هنگام ذخیره کردن خطا بوجود میاره؟ اون وقته که باید یه کم در مورد مفسر و کامپایلر و این چور چیزا مطالعه کنی و نتیجه ای که بهش می رسی خلاصش اینه که کاراکترهایی که شما معرفی کردی در زبان SQL جز کراکتر های خاص هستند (هر زبانی کارکترها و کلمات کلیدی خاصی رو برای خودش تعریف کرده) پس اگه در دستوری از این زبان مثلا کاراکتر ' رو قرار بدیم منظورمون اینه که تعریف یک رشته رو می خوایم از اینجا شروع کنیم و مفسر SQL هم تا جایی که کاراکتر ' بعدی رو پیدا نکنه تمام عبارت بعد از اولین ' رو داخل رشته تعریف شده توسط ما تلقی می کنه و حالا اگه یه موقع این کاراکتر رو پیدا نکرد طبیعی هست که پیام خطایی رو به کاربر نشون میده، حالا اگه شما خواستی خود این کاراکترها رودر یک رشته قرار بدی و در دیتابیس ذخیره کنی روش های استانداردی داره که 100% خودتون بلدین

سو تفاهم یا هر موردی رو که از طرف من براتون پیش اومده باشه رو به بزرگی خودتون ببخشید و تاپیک رو ادامه بدین

UnnamE
دوشنبه 05 اردیبهشت 1390, 20:01 عصر
' * " و / و \
من متوجه نشدم اينجا منظور اين كاراكتر ها نباس تو url باشن يا كلا در ديتابيس ذخيره نميشن
يعني اگه ذخيره نميشن، پس الان چجوري تو ديتابيس اين وبسايت رفت و آمد دارن؟

eshpilen
سه شنبه 06 اردیبهشت 1390, 08:34 صبح
کاراکترهای مخرب به صورت خام ذخیره نمیشن! بلکه سرور به اون ها کد میده. من درست نمی دونم کدش چیه ولی برای مثال: %90 و بعد شما در دیتابیس منیجر به صورت کاراکتر می بینید.من نمی دونم چرا بعضی ها فقط حرف خودشون رو قبول دارن! "مخ آدم سوت میکشه"؟ پس چرا مخ خودم سوت نکشید؟ سوت کشیدن مخ درمان داره. اگر شما فکر می کنید حرف خودتون درسته خب یه تاپیک ایجاد کنید و توش با فونت بزرگ بنویس.
حرف من هم ممکنه اشتباه باشه.
خب سند برای این ادعاتون کجاست؟
مثل ادعای قبلی که گفتید این کاراکترها در بیشتر دیتابیس ها قابل ذخیره نیستن و سندی براش نیاوردید حتما برای اینهم سندی ندارید.
منکه کل رفرنس MySQL رو قبلا خونده بودم به چنین چیزی برنخوردم. حالا شما از کجا آوردید معلوم نیست.
بعدهم گیرم که اینطور، برای برنامه نویس که محدودیتی در استفاده از این کاراکترها وجود نداره. داره؟
شما خودتون فرمودید که:

پس ما برای جلوگیری از هک سایتمان باید از وارد کردن این کاراکترها جلوگیری کنیم.منظورتون از جلوگیری از وارد کردن این کاراکترها آیا حذف اونها در ورودی نبوده؟
چون از طرف دیگه فرمودید:

از اون جایی که خودم صاحب یه سرورم این حرف رو زدم. چون بارها و بارها دیدم که هنگام ذخیره کاراکتر اسلش ارور میاره. حتی یه بار هنگ هم کرد!

eshpilen
سه شنبه 06 اردیبهشت 1390, 09:15 صبح
ضمنا من الان تست کردم ببینم حرف شما صحت داره یا نه.
یک جدول ساختم بنام table1 با یک فیلد از نوع CHAR و طول ۲۰.
این کارها رو میتونید با phpmyadmin سریع انجام بدید.
خب بعد مقدار زیر رو بعنوان اولین رکورد جدول table1 در فیلد مربوطه Insert کنید:

>\\\\<>''''''<
حالا به دایرکتوری محل ذخیرهء فایلهای دیتای MySQL برید.
بطور مثال در EasyPHP که بنده استفاده میکنم آدرسش به اینصورت هست:

C:\Program Files\EasyPHP-5.3.2\mysql\data
خب من جدول مربوطه رو در دیتابیسی بنام test ایجاد کرده بودم. بنابراین یک فولدر بنام test در دایرکتوری دیتای MySQL دیده میشه که وقتی واردش بشید فایلهای مربوط به جدول table1 که ما ساختیم درش قرار دارن.
فایلهای موجود پسوندهای مختلفی دارن. من سه فایل مربوط به جدول خودم رو میبینم:

table1.frm
table1.MYD
table1.MYI

در بین اینها فایل MYI فایل مربوط به Index ها هست (از رفرنس MySQL یادم مونده).
و فایل MYD فایل اصلی و محل ذخیرهء دیتای جدول ما هست.

خب حالا خیلی ساده کافیه فایل table1.MYD رو با یک ادیتور متن یا هگزادیتور باز کنید و محتویاتش رو بررسی کنید تا ببینید آیا دیتای شما بصورت خام درج شده یا بصورت دیگری. من این فایل رو با Notepad++ باز کردم و کاملا مشهود بود که دیتا به همون شکلی که وارد کرده بودم درج شده.
در تصویر ضمیمه میتونید مشاهده کنید.
بایتهای دیگر موجود هم اطلاعات جانبی مثل طول فیلد و غیره هستن که در هر جدول دیگر با هر دیتای دیگری که ایجاد کنید نظیرشون وجود خواهد داشت.
خب فکر میکنم اثبات بقدر کافی محکمی بود. و ۱۰۰٪ عملی.

eshpilen
سه شنبه 06 اردیبهشت 1390, 10:31 صبح
واقعا افسانه هایی وجود داره سر این کاراکترها.
میگن کاراکترهای مخرب/خطرناک. میگن کلا همه جا حذف کنید. یکی میگه دیتابیس هنگ میکنه! دیتابیس نمیتونه این کاراکترهای جادویی رو ذخیره کنه و غیره.
یکی میاد تاپیک میزنه که آقا همهء کاراکترهای مخرب رو معرفی کنید.
بابا این حرفا و کارا چیه! مسئله ساده تر و روشن تر از این حرفهاست. هیچ کاراکتری به خودی خودش خطرناک و مخرب و غیرقابل ذخیره سازی نیست. هر ثانیه انبوهی از این کاراکترها همه جا داره رد و بدل و ذخیره میشه. نصف برنامه ها و دیتای دنیا رو این کاراکترها تشکیل میدن!
میدونید تعداد این کاراکترهای خاص در کل نرم افزارها و زبانهایی که هست چقدره؟ اونم کاراکترهایی که اکثرا جزو کاراکترهای عادی و مورد نیاز مثلا در نگارش معمولی هستن. بخش بزرگی از کاراکترهای زبان انگلیسی رو به اینصورت باید مخرب بدونیم و حذف کنیم!
موضوع بسادگی این هست که این کاراکترها در زبانها یا نرم افزارهای خاصی کاربرد و معنای خاصی دارن که توسط طراحان اون زبانها و نرم افزارها بخاطر خوانایی و سادگی و سرعت کدنویسی انتخاب شدن، وگرنه میتونست هر کاراکتر دیگری بجاشون باشه، و اون زبان و نرم افزار که علم غیب نداره بدونه کدوم یکی از اون کاراکترهای خاص که دریافت میکنه دیتای خام هست و کدومش جزو سینتاکس و فرمان بوده.
راه حل ساده ای در بیشتر موارد برای این مشکل هست؛ اونم Escape کردنه. شما بوسیلهء Escape کردن، اون کاراکترها رو برای زبان یا نرم افزار خاص علامتگذاری میکنید تا بدونه اون مواردی که علامتگذاری شدن رو باید بصورت دیتای خام درنظر بگیره. اونایی هم که علامتگذاری نشدن میرن جزو سینتاکس.
همین! هیچ چیز خاص دیگری درکار نیست.

حالا گاهی در بعضی جاها به علتهای دیگری یا بخاطر دشوار بودن برطرف کردن تمام حفره هایی ممکن و اینکه ظرافتها و پیچیدگی نسبتا زیادی در قسمتهای مختلف برنامه در ارتباط با این کاراکترها وجود داره، و وجود این کاراکترها ضرورتی هم نداره و محدودیت جدی ای رو ایجاد نمیکنه، میان و اونا رو حذف میکنن/اجازه نمیدن، که این هم کار رو راحت میکنه و هم امنیت رو بالا میبره (بخاطر اینکه امکان خطای انسانی همیشه وجود داره - بخصوص در سیستمهای پیچیده). ولی خیلی جاها هم چنین نیازی نیست یا اصلا امکان استفاده از این کاراکترها کم و بیش ضروری هست.

PHP Assistant
سه شنبه 06 اردیبهشت 1390, 13:16 عصر
آقا باشه شما درست میگی. چشم. لطفا کاربران عوضی بخونند.

رضا قربانی
چهارشنبه 07 اردیبهشت 1390, 09:59 صبح
آقا باشه شما درست میگی. چشم. لطفا کاربران عوضی بخونند.

دوست من ، شما درست می گید و من نوشته های شما رو برعکس می خونم.... این که نشد داداش من

خب آقای eshpilen (http://barnamenevis.member.php?148005-eshpilen) دارن درست می گن


ببینید سرور هنگ می کنه چیه !!!؟؟ من تازه اولین باری شنیدم که شما دارید چنین چیزی می گید .
از mysql_escape_string() استفاده و متغیر هایی که int هستند رو داخل تک کدیشن ' بگذارید همیشه در امان می مونید و هیچ مشکلی هم پیش نمیاد.

ما یه مدت خیلی روی این مسئله درگیری داشتیم و خیلی از صحبت ها از جمله بررسی کاراکتر های خراب و جلوگیری و ..... (می تونید یه سرچ بزنید)

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



$symbol = array(',', ')', '(', "'", '"','!', '?', '/', '[', ']', '+', '=', '#', '\x00', '\n', '\r', '\x1a', '&', '$' );

if(isset($_POST['test1']) )
{

$Famili = preg_replace("/<.*?>/", "",$_POST['test1'] );
$Famili =str_replace( $symbol ,"",$Famili);


}


اما حالا دیگه استفاده نمی کنم ، چون روش قبلی کاراکترها و علائم دستوری رو فیلتر می کردم و این اصلا خوب نیست.


در کل خوبه که به هم احترام بگذارید و خود شما اومدین تا به بچه ها آموزش بدید و شاید یک جاهایی حق با شما نباشه ، باید از روش های دوستان و فکر دوستان استفاده کرد .

هنوز کسی php رو کامل یاد نگرفته و نمی شه گفت که یاد گرفته . این رو یادت باشه:چشمک:

موفق باشی دوست من

PHP Assistant
چهارشنبه 07 اردیبهشت 1390, 13:37 عصر
دوست عزیز شما چرا زود ناراحت میشی؟؟!:متعجب:
خیلی راحت می تونی از خودت بپرسی که چرا این کاراکتر ها به قول شما هنگام ذخیره کردن خطا بوجود میاره؟ اون وقته که باید یه کم در مورد مفسر و کامپایلر و این چور چیزا مطالعه کنی و نتیجه ای که بهش می رسی خلاصش اینه که کاراکترهایی که شما معرفی کردی در زبان SQL جز کراکتر های خاص هستند (هر زبانی کارکترها و کلمات کلیدی خاصی رو برای خودش تعریف کرده) پس اگه در دستوری از این زبان مثلا کاراکتر ' رو قرار بدیم منظورمون اینه که تعریف یک رشته رو می خوایم از اینجا شروع کنیم و مفسر SQL هم تا جایی که کاراکتر ' بعدی رو پیدا نکنه تمام عبارت بعد از اولین ' رو داخل رشته تعریف شده توسط ما تلقی می کنه و حالا اگه یه موقع این کاراکتر رو پیدا نکرد طبیعی هست که پیام خطایی رو به کاربر نشون میده، حالا اگه شما خواستی خود این کاراکترها رودر یک رشته قرار بدی و در دیتابیس ذخیره کنی روش های استانداردی داره که 100% خودتون بلدین

سو تفاهم یا هر موردی رو که از طرف من براتون پیش اومده باشه رو به بزرگی خودتون ببخشید و تاپیک رو ادامه بدین
تاپیک تموم شده هست. من ویرایشش کردم. ولی انتظار داشتم دوستان با پیام خصوصی مطرح می کردند

PHP Assistant
چهارشنبه 07 اردیبهشت 1390, 13:39 عصر
این جا من از دوستان عذزخواهی میکنم.اگه مشکل دیگه ای هست با پی ام اطلاع بدید تا ادیت بشه

boysilent
دوشنبه 06 آذر 1391, 11:37 صبح
این جا من از دوستان عذزخواهی میکنم.اگه مشکل دیگه ای هست با پی ام اطلاع بدید تا ادیت بشه
دمت گرم بابا
مرسی از
رضا قربانی (http://barnamenevis.org/member.php?151175-%D8%B1%D8%B6%D8%A7-%D9%82%D8%B1%D8%A8%D8%A7%D9%86%DB%8C)
http://barnamenevis.org/images/statusicon/user-offline.png

mbf5923
دوشنبه 06 آذر 1391, 12:34 عصر
رفتی یه پست مال عهد بوق پیدا کردی که دو زار نمی ارزه تازه توش پستم دادی؟
این زیر خاکی ها رو بالا نیارید خواهشا