جستجو برای:
  • دوره ها
  • وبلاگ
 

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
آکادمی بیتنو
  • صفحه اصلی
  • دوره ها

    آموزش طراحی وب

    • React.js
    • طراحی وب (Frontend)
    • مقدماتی جنگو (Django)

    طراحی وب

    آموزش هک و امنیت

    • مقدماتی تست نفوذ وب
    • هکر قانونمند (CEH)
    • مقدماتی شبکه برای هک

    هک و امنیت

    آموزش هوش مصنوعی

    • مهارت های پرامپت نویسی
    • دوره پردازش تصویر با پایتون
    • خلق ایده های نو با هوش مصنوعی مولد

    هوش مصنوعی

    آموزش Embedded System

    • آموزش Atmega
    • آموش Raspberry PI
    • آموزش آردوئینو (Arduino)

    Embedded System

  • وبلاگ
0

هنوز هیچ محصولی خریداری نکرده اید.

ورود به حساب
آکادمی بیتنو
0

هنوز هیچ محصولی خریداری نکرده اید.

ورود به حساب

وبلاگ

آکادمی بیتنو وبلاگ رایتاپ رایتاپ آسیب پذیری SQL Injection در Front End !

رایتاپ آسیب پذیری SQL Injection در Front End !

رایتاپ
ارسال شده توسط رحمان حسین زاده
1403/01/07
324 بازدید

توضیح کوتاه درمورد آسیب پذیری SQL Injection

SQL injection یک نوع حمله در وب است که از آن استفاده می‌شود تا به سیستم‌های پایگاه داده نفوذ شود. زیرا در برخی از موارد، ترکیب‌های ورودی کاربر به صورت نادرست در دستورات SQL استفاده می‌شود و این اجازه را به حمله کننده می‌دهد تا دستورات SQL خود را در دستور SQL اصلی اجرا کند.
به زبان ساده تر، این آسیب پذیری باعث تزریق و اجرای کد های SQL در پایگاه داده (database) می شود.
نکته:
این آسیب پذیری در سمت سرور است و ربطی به Frontend ندارد😁

به دنبال هدف!

برای پیدا کردن تارگت، از گوگل دورک (Google Dork) استفاده کردم. دورک که من استفاده کرده بودم این بود:

inurl:search.php?q=

در اصل هدف استفاده من از این دورک برای پیدا کردن سایت های آسیب پذیر به XSS بود، که داستان با XSS شروع شد و با SQL Injection تموم شد 😁
میتونید رایتاپ XSS این هدف رو هم اینجا بخونید
بین سایت هایی که گوگل آورد، یکی رو انتخاب کردم که توی این رایتاپ اسمش رو target.com میذاریم، تا دردسر نشه 🤫

بریم سراغ تست!

در قسمت سرچ این سایت کلمه “hacker” رو نوشتم تا ببینم کجا ها ازش استفاده می شود🤔

Inspect رو باز کردم و کلمه “hacker” رو سرچ زدم، همانطور که می بینید کلمه “hacker” در قسمت بدنه درخواست ajax استفاده می شود:

فکر کنم تا الان فهمیدین که ورودی ما در یک رشته مانند کوئری SQL استفاده میشه؛ حالا چه تستی به ذهنتون میرسه؟💡
دقیقا SQL Injection😁
اولین کاری که کردم ببینم چند تا ستون داره تا بتونم بر اساس اون Payload های بعدی رو تست کنم.
اولین کوئری که زدم ” order by” بود:

همان طور که در عکس بالا می بینید، کوئری هایی ارسالی ما اجرا میشه، پس شروع کردم به صورت تصادفی عدد ها رو تست کردم و نهایت معلوم شد که این جدول 83 ستون داره.
میخواستم اسم جدول ها دیتابیس رو پیدا کنم ولی یک مشکلی بود؛ مشکل این بود که معلوم نبود کدوم ستون آسیب پذیر هست، چون زمانی که ورودی ها null میدادیم فقط به ما خطا نمایش می داد🤦‍♂️
اگر توی ذهنتون این هست که <خب به صورت Blind بزن>🙄
ولی یک حسی بهم می گفت که خیلی راحت تر میشه دیتا رو گرفت!
حتی با ابزار sqlmap هم تست کردم ولی جوابی نگرفتم چون ابزار نمیتونست پارامتر رو شناسایی کنه…

یک ایده زد به ذهنم که بیا مستقیم با جدول information_schema کار کنم و از اونجا اسم جدول های دیتابیس رو بگیریم😀
این ایده هم کار نکرد و با خطا مواجه شد…

گفتم برم بقیه جاهای سایت رو هم ببینم، شاید چیزی پیدا کردم که پس دیدن درخواست ها دیدم یک پارامتر جدید وجود داره!

جالبه!
این پارامتر اومده ستون هایی که میخواسته رو نام برده؛ اینجا فهمیدم که این پارامتر ها تک به تک داخل یک دستور کامل دیگه استفاده میشه😀

دوباره نگاه کردم به بدنه درخواست و یک چیز دیگه نظرم رو جلب کرد اون هم بقیه پارامتر های بدنه بود❗

همان طور که می بینید پارامتر table و MOD هم هست که یعنی اطلاعات رو از این جدول دریافت کن. حالا دیگه مسئله حل شد و فهمیدیم چه خبر هست!
بریم که اسم جدول های دیتابیس رو از information_schema بیرون بکشیم😁

همانطور که در عکس بالا می بینید اومدم:
داخل پارامتر “table” اسم جدول رو نوشتم که می شود => information_schema.tables
داخل پارامتر “what” اسم ستون مورد نظر که میخواستم اطلاعات رو بگیرم، نوشتم => TABLE_NAME
داخل پارامتر “sql” هم شرط خودم رو نوشتم => ()where table_schema = database

در آخر هم اسم ستون های یک جدول رو تونستم بگیرم😁❤️

نکات جالب که این هدف داشت

1- واقعا جالب بود، توسعه دهنده وب سایت چرا باید کوئری دیتابیس رو داخل فرانت بنویسه🤔🙄
2- تنبل بودن هم گاهی اوقات خوبه، چون باعث خلاقیت و کشف راه آسون میشه 😁❤️
3- همیشه به پارامتر ها شک کنید! باعث آسیب پذیری ها بزرگی میشن😉💙

سخن پایانی

امیدوارم از این رایتاپ خوشتون اومده باشه و نکات جدیدی یاد گرفته باشین❤️

اشتراک گذاری:
برچسب ها: pentestwriteupتست نفوذرایت آپهک
درباره رحمان حسین زاده

متخصص تست نفوذ وب و شبکه

سایر نوشته های رحمان حسین زاده

آکادمی بیتنو

مطالب زیر را حتما بخوانید
قدیمی تر تست نفوذ چیست؟
جدیدتر Fuzzing در تست نفوذ

دیدگاهتان را بنویسید لغو پاسخ

دسته‌ها
  • آسیب پذیری
  • امنیت
  • تست نفوذ
  • رایتاپ
  • شبکه
درباره بیتنو

ما دوره های پیشرفته حوزه کامپیوتر با تمرکز بر کاربرد و ورود به بازار کار را ارائه می دهیم. جدیدترین تکنولوژی های روز کامپیوتر در شاخه های امنیت سایبری، هوش مصنوعی، توسعه وب و سیستم های تعبیه شده را از بیتنو یاد بگیرید.

لینک های مفید
  • دوره ها
  • وبلاگ
  • تماس با ما
  • تماس: 03191092838
  • ایمیل: bitnoacademy@gmail.com

تمامی حقوق این سایت برای تیم بیتنو محفوظ می باشد.

مشاوره تلفنی رایگان

درخواست مشاوره رایگان

مشاوره

03191092838

در صورت نیاز به مشاوره می توانید فرم را تکمیل نمایید و یا با ما در ارتباط باشید.

جستجو

جستجو با زدن Enter و بستن با زدن ESC