هک چیست؟
واژه هک برای اولین بار به دوره دهه 60 میلادی باز می گردد. هک به معنای دستیابی به آن چیزی است که نمی توانید در حالت عادی آن را داشته باشید، مانند دسترسی غیر مجاز به یک شبکه کامپیوتری در حالی که ورود به آن امکان پذیر نیست، یا دارای پسورد است! به طور کلی هر زمان که سخنی از هک می شود، اشاره ای به کارهای غیرقانونی نیز دارد.
عموماً هدف از هک کردن کسی یا چیزی، همانند دزدی است اما به روش مدرن! هدف هکرها دزدیدن اطلاعات یا در بسیاری از موارد آسیب رساندن به سیستم است. اگر قصد دارید از هک شدن سیستم جلوگیری کنید، بایستی چند اقدام امنیتی در این باره انجام دهید که در ادامه مطلب آموزش هک با پایتون به آن ها اشاره خواهیم کرد.
توصیه های امنیتی جهت جلوگیری از هک شدن
همیشه سعی کنید بر روی سیستمهای کامپیوتری یا حساب کاربریهای خود در انواع شبکههای اجتماعی از پسورد قوی استفاده کنید، این مسئله باعث میشود تا هکر به راحتی نتواند به رمز عبور شما دسترسی داشته باشد. اگر پسورد ترکیبی از حروف کوچک و بزرگ انگلیسی، اعداد و کاراکترها انتخاب کنید، میلیونها سال طول میکشد تا یک پسورد تازه آن هم به صورت رمزنگاری شده پیدا شود. مورد بعدی این است که همیشه سیستم عامل خود را آپدیت کنید تا موارد امنیتی که به سیستم عامل اضافه خواهند شد دریافت کنید. همچنین استفاده از نرم افزارهای اورجینال جهت جلوگیری از ایجاد باگ در سیستم و درنهایت جلوگیری از هک شدن پیشنهاد میشود.
آموزش هک با پایتون
اگر این امکان را دارید که آنتی ویروس و فایروال بر روی سیستم عامل خود نصب کنید و به این موضوع فکر کردهاید، پیشنهاد میشود حتماً این کار را انجام دهید زیرا برای افزایش امنیت سیستم و جلوگیری از ایجاد باگ جهت دسترسی هکر به دادهها بسیار مفید است. سعی کنید بر روی لینکهای ناشناخته به هیچ وجه کلیک نکنید زیرا ممکن است با هدفهایی مانند نفوذ به سیستم یا انتقال ویروس ایجاد شده باشند.
بسیاری از افراد با دیدن لینکهایی با عناوینی مانند آموزش هک با پایتون یا حتی آموزش هک در 10 روز و غیره وسوسه میشوند و بر روی آن کلیک میکنند، سعی کنید از هیچ جایی جز گوگل و لینکهایی که به آنها اطمینان دارید سایتی باز نکنید! همچنین از انداختن فلش دیگران بر روی سیستم بدون اسکن و ویروس کشی جداً خودداری نمایید. اگر احساس میکنید بیشتر از این نیاز دارید در مورد روشهای مقابله با هک و همچنین انواع هکها یاد بگیرید، پیشنهاد میکنیم آموزش مرتبط را از فرادرس دریافت نمایید. بر روی لینک زیر کلیک کنید.
آموزش شناخت انواع هک و روش های مقابله با آن — کلیک کنید
انواع هکرها
هکرها ممکن است بر اساس نوع رفتارشان به دستههای مختلفی تقسیم شوند. همانطور که در ابتدای مطلب گفتیم، برخی از هکرها ممکن است به قصد دزدی و آسیب رساندن به اطلاعات و سیستم فعالیت کنند، این افراد هکرهای کلاه سیاه نامیده میشوند که عموماً کارهای غیرقانونی انجام میدهند. در مقابل این هکرها افرادی را داریم که به قصد تست نفوذ و افزایش امنیت سیستم اقدام به هک میکنند. فعالیت این هکرها کاملاً قانونی است و به هکرهای کلاه سفید مشهور هستند. برخی از افراد نیز صرفاً به دلیل خفن بودن این شغل علاقهمند به یادگیری هک هستند و میخواهند به این دلیل هک را یاد بگیرند. این افراد عموماً میخواهند هک را بلد باشند و قصد انجام فعالیت جدی در زمینه هک را ندارند. به این افراد نیز هکرهای کلاه صورتی گفته میشود.
انواع هکرها
آموزش هک با پایتون
پس از آن که در مورد انواع هکرها صحبت کردیم، حال نوبت آن است که یک هک ساده و اخلاقی به شما آموزش دهیم. دانستیم که هک کردن اگر قانونی نباشد ممکن است شما را با مشکلات مختلف روبرو کند، پس ما نیز اجازه این را نداریم هک غیر قانونی را آموزش دهیم، اما میتوان با استفاده از کتابخانههای آماده پایتون هکهای ساده و اخلاقی انجام داد. یکی از هکهایی که قصد داریم در مطلب آموزش هک با پایتون به شما آموزش دهیم، رمزگشایی پسوردهایی است که به صورت رمزنگاری شده در پایگاه داده ذخیره میشوند. اصولاً به این پسوردها هش شده گفته میشود. از جمله الگوریتمهایی که برای هشینگ مورد استفاده قرار میگیرد، تابع md5 است.
رمزنگاری MD5 چیست؟
این رمزنگاری روشی برای درهم سازی یک رشته است که در نهایت خروجی آن با طول 128 بیت در اختیار کاربر قرار داده می شود. معمولاً از این روش رمزنگاری برای کد کردن پسوردها جهت ذخیره سازی در پایگاه داده استفاده می شود. این الگوریتم به دلیل داشتن سرعت بالا همواره مورد استفاده قرار گرفته و همچنان نیز استفاده می شود.
نکته قابل توجه اینجاست، هر رشته با طول متفاوت که توسط این الگوریتم هش می شود، خروجی با طول یکسان خواهد داشت. این خروجی در مبنای هگزادسیمال یا همان مبنای 16 نمایش داده می شود. تصور کنید اگر پسوردهای شما به همان صورتی که آن را وارد می کنید در پایگاه داده ذخیره می شد، در این صورت همه می توانستند به این داده ها دسترسی پیدا کنند، اما با استفاده از این الگوریتم به راحتی می توان این داده های مهم را هش کرد تا هر فردی با یک نگاه نتواند به رمز عبور واقعی دسترسی پیدا کند.
رمزنگاری MD5 چیست؟
زمانی که یک پسورد با این تابع هش می شود، محتوای پسورد به صورت کاراکترهایی از اعداد و حروف انگلیسی نمایش داده می شود. این نوع پسوردها برای انسان خوانا نیستند و برای اینکه بتوان آن را به متن ساده تبدیل نمود یا به عبارتی رمزگشایی کرد، نیازمند یکسری تابع ها و دستورات پیچیده هستیم. اما با استفاده از پایتون به راحتی می توان این پسوردها را پیدا کرد. در ادامه می خواهیم آموزش هک با پایتون را به شما توضیح دهیم.
شروع برنامه نویسی آموزش هک با پایتون
هدف از آموزش این پست، صرفاً نمایش متن ساده شدهای که خودتان وارد کردهاید نیست! ما میخواهیم یک پسورد لیست درست کنیم تا تمامی پسوردهایی که فکر میکنیم ممکن است مورد استفاده قرار بگیرند، به آن اضافه کنیم. سپس با دستوراتی که در ادامه خواهیم نوشت، پسوردهای موجود در این لیست چک خواهند شد و در صورتی که پسورد مدنظر در فایل پسورد لیست وجود داشته باشد، رمز عبور با متن ساده شده نمایش داده خواهد شد. در واقع میخواهیم یک ابزار Hash Cracker با پایتون بسازیم.
برای شروع کار بایستی نرم افزار پایتون را روی سیستم خود نصب نمایید. اگر هنوز پایتون را ندارید میتوانید از سایت خود Python یا سایتهای ایرانی به صورت رایگان آن را دانلود و نصب نمایید. اکنون نوبت آن است که دستورات خود را در پایتون بنویسیم. یک پروژه جدید در پایتون ایجاد کنید و اولین دستور زیر را در آن وارد کنید.
import hashlib
دستور بالا نشان دهنده این است که ما می خواهیم از کتابخانه آماده Hashlib استفاده کنیم. چنانچه این کتابخانه را به پروژه اضافه نکنید، با ارور مواجه خواهید شد. این کتابخانه نیازی به نصب از طریق CMD ندارد!
در ادامه خواهیم داشت:
print("***PASSWORD CRACKER***")
pass_found = 0
input_hash = input("Enter the hashed password: ")
pass_doc = input("\nEnter passwords filename including path(root/home): ")
در دستورات بالا یک متغیر به نام pass_found تعریف کردیم که مقدار 0 به آن داده ایم. قصد داریم از این متغیر برای ذخیره داده 0 یا 1 به عنوان اینکه آیا پسورد کرک شده یا نه استفاده کنیم. چنانچه مقدار مدنظر 0 باشد به معنای این است که هنوز پسورد کرک نشده است.
دو متغیر input_hash و pass_doc نیز به منظور ذخیره ورودی هایی است که توسط کاربر دریافت خواهد شد. در پیغام اول از کاربر پسورد هش ده و در پیغام دوم آدرس یا نام پسورد لیستی که قرار است در ادامه بسازیم دریافت می شود. در ادامه آموزش هک با پایتون داریم:
try:
pass_file = open(pass_doc, 'r')
except:
print("Error:")
print(pass_doc, "is not found.\nPlease give the path of file correctly.")
quit()
در دستورات بالا با استفاده از open تلاش کردیم تا فایل پسورد لیستی که در بالا آدرس آن توسط کاربر دریافت شده است باز کنیم. این فرآیند توسط try … except انجام شده است تا بتوانیم در صورتی که فایل یافت نشد یک پیغام ارور نمایش دهیم و سپس برنامه را به کمک quit به پایان برسانیم. حال اگر این فرآیند با موفقیت انجام شود در ادامه خواهیم داشت:
for word in pass_file:
enc_word = word.encode('utf-8')
hash_word = hashlib.md5(enc_word.strip())
digest = hash_word.hexdigest()
if digest == input_hash:
print("Password found.\nThe password is:", word)
pass_found = 1
break
در این بخش به کمک حلقه for می خواهیم ببینیم آیا پسوردی که به صورت هش شده در برنامه توسط کاربر وارد شده است، در پسورد لیست وجود دارد یا خیر؟ قبل از هر چیزی متن را به فرمت utf-8 تبدیل کرده ایم؛ سپس یکی از پسوردهای موجود در پسورد لیست را به کمک تابع md5 هش کرده ایم، در نهایت این رمز با رمزی که در ابتدای برنامه توسط کاربر دریافت شده است مقایسه می شود. چنانچه پسوردها با هم مطابقت داشته باشند پیغامی مبنی بر اینکه رمز پیدا شده است نمایش داده می شود. در ادامه نیز پسورد به صورت متن ساده را مشاهده خواهید کرد. همچنین متغیر pass_found مقدار 1 را دریافت می کند و برنامه با دستور break به پایان می رسد.
مجموعه آموزش امنیت شبکه (Network Security) — کلیک کنید
حال در ادامه آموزش هک با پایتون چنانچه پسورد در فایل پسورد لیست یافت نشود، برای نمایش پیغام مناسب بدین صورت عمل خواهیم کرد.
if not pass_found:
print("Password is not found in the", pass_doc, "file")
print('\n')
در نهایت نیز برای زیبایی برنامه یک پیغام تشکر می نویسیم که در هر دو حالت بالا یعنی پیدا شدن یا نشدن پسورد برای کاربر نمایش داده می شود.
و تمام! شاید باورتان نشود اما این کل دستوراتی است که می توانید به راحتی از آن برای کرک کردن پسورد هش شده با تابع md5 استفاده کنید. همچنین می توانید با کتابخانه Hashlib برای دیگر تایع های هشینگ نیز دستور بنویسید.
حال اگر بخواهیم دستورات بالا را اجرا کنیم، بایستی یک پسورد لیست درست کنیم، شرطِ یافتنِ رمز این است که شما پسورد هش شده را در دست داشته باشید، و قصد دارید آن را به متن ساده تبدیل کنید، در واقع آن را رمزگشایی کنید. در ادامه یک فایل نوت پد باز کنید و چند پسورد مانند زیر در آن وارد کنید.
دقت داشته باشید که تمامی این پسوردها بایستی به همین ترتیب و زیر هم قرار گیرند. فایل را در دسکتاپ یا در مسیری مشخص ذخیره کنید. حال فرض می کنیم که معادل هش شده یکی از پسوردهای بالا را در دست داریم، برنامه را اجرا کنید تا با صفحه زیر روبرو شوید. می توانید مقادیر را طبق تصویر زیر در برنامه وارد کنید.
آموزش یک هک ساده اما کاربردی!
حال اگر دکمه enter را بزنید و همینطور پسورد در فایل پسورد لیست موجود باشد با پیغام زیر مواجه خواهید شد! توجه کنید که اگر فایل پسورد لیست را در مسیری غیر از دسکتاپ قرار دهید بایستی آدرس آن را به صورت کامل وارد نمایید؛ مانند تصویر زیر.
hack with python 2
و حال اگر پسورد وجود نداشته باشد خروجی به صورت زیر خواهد بود.
آموزش یک هک ساده اما کاربردی!
اگر به طور کلی برنامه نتواند فایل txt حاوی پسورد لیست را پیدا کند، با ارور زیر مواجه خواهید شد.
آموزش یک هک ساده اما کاربردی!
بدین ترتیب موفق شدید به کمک زبان برنامه نویسی پایتون یک هک ساده اما کاربردی انجام دهید. شاید پیش خود فکر کنید اگر رمزگشایی پسورد به این آسانی است، پس چرا این همه در مورد امنیت پسورد و مسائل پیرامون آن صحبت میشود؟ توجه داشته باشید که در این برنامه ما بر فرض مثال به پسورد رمزنگاری شده و همینطور پسورد اصلی دسترسی داشتیم، اگر یک هکر بخواهد پسورد را به دست آورد، بایستی یک پسورد لیست خیلی قوی بسازد تا قادر باشد پسوردهای سخت و پیچیده را رمزگشایی کند.
در حال حاضر پایتون بیشترین طرفدار را در بین زبانهای برنامه نویسی برای هک و مسائل امنیتی دارد، هک کردن به کمک پایتون نسبت به دیگر زبانهای برنامه نویسی آسانتر است زیرا پایتون دارای فایلهای کتابخانهای آمادهای است که به برنامه نویس کمک میکند تا از نوشتن دستورات اضافی خودداری کند!
اگر مطلب آموزش هک با پایتون برایتان مفید بود و علاقهمند به یادگیری زبان برنامه نویسی پایتون شدید، پیشنهاد میکنیم از مجموعه آموزشهای پایتون فرادرس استفاده نمایید. این آموزشها را میتوانید از طریق کلیک بر روی لینک زیر مشاهده کرده و در صورت نیاز اقدام به دریافت آن نمایید.
مجموعه آموزش برنامه نویسی پایتون (Python) — کلیک کنید
سخن آخر درمورد آموزش هک با پایتون
همانطور که در ابتدای مطلب اشاره کردیم، هک با پایتون مبحث بسیار گستردهای است که آموزش آن تنها در یک پست نمیگنجد. علاوه بر آن، برای آموزش دادن چنین محتواهایی طبیعتاً با محدودیت روبرو هستیم، پس امیدواریم که در مورد این موضوع ما را درک کرده باشید. امیدواریم که این مطلب برای شما مفید واقع شده باشد.
منبع
https://programstore.ir/
حملات XSS چیست؟ یکی از تهدیدهای سایبری به وبسایتها یا اپلیکیشنها، حملات XSS میباشد. XSS خلاصه عبارت Cross-Site Scripting است به معنای اسکریپتنویسی متقابل.
در دنیای امروز برنامههای کاربردی تحت وب بسیار محبوب هستند. از آنجا که تقریبا تمامی کاربران به شبکه اینترنت متصل هستند و به وب دسترسی دارند، پیدا کردن مشتری و کاربر برای اپلیکیشنها در وب، بسیار آسانتر است.
طبق آمار منتشر شده در BroadbandSearch در سال 2021 تقریبا 4.93 میلیارد نفر در سراسر جهان به اینترنت متصل هستند که این عدد 63.2% از جمعیت کل را تشکیل میدهد. آمار فوق مهر تایید محکمی بر اهمیت توسعه برنامههای تحت وب در صنعت فناوری اطلاعات و ارتباطات میباشد.
از سوی دیگر این تکنولوژی محبوب، توجه عناصر مخرب فراوانی را نیز به خود جلب میکند. حملات امنیتی برنامههای تحت وب مکرراٌ تکرار میشوند. حملات تحت وب بالغ بر 128 گروه اصلی میباشند، که هر گروه به چندین زیرگروه دستهبندی میگردند.
جالب است بدانید که این عناصر مخرب از دو طریق موجب اخلال در روند سرویسدهی و خدمترسانی میگردند؛ در شیوه اول با آسیب رساندن به وب سایت پذیرنده، موجبات اختلال را فراهم میآورند و در شیوه دوم کاربرانِ برنامههای تحت وب را مورد هدف قرار میدهند.
در این مقاله به جزییات حملات XSS که از طریق تزریق کد (code injection) عمل میکند، میپردازیم و به سوالات زیر پاسخ میدهیم:
هدف از XSS Attacks چیست؟
انواع مختلف XSS Attacks کدام است؟
چگونه میتوان از سایتها و اپلیکیشنها در مقابل XSS Attacks جلوگیری کرد؟
حمله XSS چیست؟
حمله اسکریپتنویسی متقابل (XSS) یک نوع رایج از حمله تزریق کد (code injection) است که برنامههای تحت وب را با تشخیص آسیبپذیری آنها و تزریق کد مخرب، هدف قرار میدهد.
در این حمله، برنامههای تحت وب تحت تأثیر مستقیم قرار نمیگیرند و در عوض، کاربرانی که با چنین سایتها یا برنامههایی ارتباط برقرار میکنند، هدف بالقوه هستند.
حملات XSS زمانی رخ میدهد که یک هکر با استفاده از سبکِ اسکریپت سمت مرورگر، یک کد مخرب را از طریق یک برنامه تحت وب برای قربانی ارسال میکند. مهاجمان از آسیب پذیری برنامههای تحت وب، که باعث ایجاد حمله موفق میشوند، استفاده میکنند.
در اینجا توجه شما را به یک مثال جلب مینمایم؛
تصور کنید فردی پشت کامپیوتر نشسته است. صفحه نمایش یک File manager ، Text editor ، Spreadsheet و Music player را در گوشه سمت راست پایین نشان میدهد.
تا اینجا همه چیز عادی و آشنا است. اما چیزی هست که در این تصویر دیده نمیشود، یک مرورگر اینترنت با دهها Tab که به طور همزمان باز شدهاند!!!
این Tabها پر از عناوین جالب، فیلمهای خنده دار، تبلیغات کالاهای ورزشی، فروشگاههای آنلاین و یک سایت پرداخت با رسید پرداخت شده برای یک بلیط سریع هستند. همه این سایتها یک ویژگی مشترک دارند: بدون جاوا اسکریپت به سختی امکان پذیر خواهند بود.
سپس یک کلیک ساده روی بنر تبلیغاتی صفحه دیگری را فعال میکند. این صفحه حاوی اسکریپتی است که به یک سایت بانکی آنلاین متصل میشود و بی سر و صدا پول را از حساب کاربر به کارت مهاجم منتقل میکند.
خوشبختانه امروزه مرورگرها به لطف SOP (Same-Origin Policy) این امکان را حذف میکنند. SOP تضمین میکند که اسکریپتهای اجرا شده در یک صفحه وب به دادههای اشتباه دسترسی ندارند.
اگر اسکریپتها از دامنه دیگری بارگیری شده باشند، مرورگر نمیتواند آنها را اجرا کند. اما آیا داستان همینجا به پایان میرسد؟!
اگر چنین بود که دیگر این مقاله وجود نداشت. مجرمان سایبری از روشهای مختلفی برای دور زدن SOP و سوء استفاده از آسیب پذیریهای برنامه استفاده میکنند و در صورت موفقیت، باعث میشوند مرورگر کاربر، یک اسکریپت دلخواه را در یک صفحه مشخص اجرا کند.
پایه ریزی یک حمله برای آلوده کردن یک وبسایت به چه طریق انجام میشود؟
قرار است SOP به اسکریپتها تنها زمانی اجازه دهد، که بارگیری اسکریپت از همان دامنه صفحه ای که کاربر در حال مشاهده آن است باشد و در حقیقت، مهاجمان دسترسی مستقیم به سرورِ مسئول صفحه ی نمایش داده شده توسط مرورگر، ندارند.
مهاجمان چگونه این کار را انجام میدهند؟ آسیب پذیریهای برنامه میتواند با استفاده از درج قطعات و کدهای مخرب در محتوای صفحه به مهاجمان کمک کند.
به عنوان مثال ، یک موتور جستجوی معمولی هنگام نمایش نتایج جستجو، درخواست کاربر را تکرار میکند. اگر کاربر سعی کند رشته “
” را پیدا کند، آیا محتویات صفحه نتایج جستجو منجر به اجرای این اسکریپت میشود و آیا کادر محاورهای با پیام “1” ظاهر میشود؟
این بستگی به این دارد که توسعه دهندگان برنامه وب چگونه ورودی کاربر را تأیید کرده و آن را به یک قالب امن تبدیل کنند.
مشکل اصلی در این است که کاربران طیف گستردهای از نسخههای مرورگر را اجرا میکنند، از آخرین پیش آلفا تا نسخههایی که دیگر پشتیبانی نمیشوند. هر مرورگر صفحات وب را به شیوه ای متفاوت مدیریت میکند.
در برخی موارد، حملات XSS میتواند زمانی موفقیت آمیز باشد که ورودیها به اندازه کافی فیلتر نشده باشند. بنابراین اولین قدم در حمله اسکریپتنویسی متقابل (XSS) تعیین نحوه جاسازی دادههای کاربر در یک صفحه وب است.
حملات اسکریپت نویسی متقابل (XSS) - ستاک فناوری ویرا
پایه ریزی یک حمله XSS برای آلوده کردن یک وبسایت
انواع حمله XSS
حملات اسکریپتنویسی متقابل (XSS) بر سه نوع هستند:
1-XSS ذخیره شده
XSS ذخیره شده مخربترین آسیب پذیری است. این حمله زمانی رخ میدهد که بار اطلاعات مخرب ارائه شده توسط مهاجم در سرور ذخیره شود. این محموله دائماً در معرض صفحه وب قرار میگیرد و هنگامی که کاربر عملیات مرور معمولی را انجام میدهد فعال میشود.
2- XSS منعکس شده
این آسیب پذیری متداول اسکریپت نویسی زمانی ایجاد میشود که دادههای ارائه شده توسط کاربران، معمولاً از طریق پارامترهای درخواست HTTP (به عنوان مثال؛ ارسال فرم) در صفحه بدون فیلتر یا ذخیره مناسب، نمایش داده شود.
3- XSS بر اساس DOM (Document Object Model)
حملات XSS بر اساس DOM یک نوع آسیبپذیری اسکریپتنویسی بین سایتها است که هنگامی رخ میدهد که جاوا اسکریپت دادهها را از منبع کنترل شده مهاجم دریافت کرده و برای اصلاح محیط DOM ارسال میکند. این باعث میشود مرورگر قربانی به طور غیر منتظره اجرا شود.
پیشگیری از حملات XSS
برنامههای کاربردی از نظر پیچیدگی اسکریپتنویسی متقابل میتوانند چالش برانگیز باشند. بنابراین، ایمنسازی آنها در برابر حملات اسکریپتنویسی متقابل (XSS) دشوار است. اما با اقدامات پیشگیرانه مناسب، میتوانید برنامه وب خود را از این حملات محافظت کنید.
– باید ورودی دریافت شده از سمت کاربر را فیلتر کنید.
– در خروجی، دادههای خروجی را کدگذاری کنید تا با پیادهسازی ترکیبی از کدگذاری HTML ، URL ، جاوا اسکریپت و CSS ، آنها را از فعالیت بازدارید.
– با استفاده از ابزارهای اسکنر آسیب پذیری وب، میتوانید برنامه وب خود را برای آسیبپذیریهای احتمالی XSS اسکن کنید.
– پیادهسازی header مناسب و مسدود کردن XSS در پاسخهای HTTP که انتظار نمیرود شامل HTML یا JavaScript باشد و مطمئن شوید که مرورگرها پاسخ مورد نظر را اجرا میکنند.
– همچنین میتوانید سیاست امنیت محتوا (CSP: Content Security Policy) را برای مهار تأثیر مخرب هر گونه آسیبپذیری دیگر XSS پیادهسازی کنید.
منبع
https://www.setakit.com/
0 نظر
برای ثبت نظر لطفا کلیک کنید
لطفا برای ثبت نظر ابتدا وارد حساب کاربری خود شوید