کامپیوتربرنامه نویسی

تزریق SQL چیست؟

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

کمی از نظریه

بسیاری از مردم می دانند که اکثریت سایت ها و خدمات بر روی شبکه با استفاده از ذخیره سازی پایگاه داده SQL. این است زبان پرس و جو ساخت یافته است که اجازه می دهد تا شما را به کنترل و مدیریت ذخیره سازی داده ها. بسیاری از نسخه های مختلف از مدیریت پایگاه داده پایگاه داده سیستم وجود دارد - اوراکل، خروجی، Postgre. صرف نظر از نام و نوع، آنها با استفاده از داده های پرس و جو همان. در اینجا است که نهفته آسیب پذیری بالقوه است. به همه مدیریت سایت و - اگر توسعه شکست خورده که مسئولیت رسیدگی به درستی و ایمن درخواست، مهاجم می تواند استفاده از این را و استفاده از تاکتیک های خاص برای به دست آوردن دسترسی به پایگاه داده، و سپس.

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

بررسی برای SQL تزریق

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

به عنوان مثال، nekiy_sayt / فایل index.php وجود دارد؟ شناسه = 25

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

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

برای پیاده سازی این نیاز آسیب پذیری به دانستن کمی در مورد تیم های SQL-نمایش داده شد. یکی از آنها - UNION. این چند نتایج پرس و جو گرد هم می آورد را به یکی. بنابراین ما می توانیم تعدادی از زمینه های که در جدول محاسبه. مثال اول پرس و جو است:

  • nekiy_sayt / فایل index.php؟ ID = 25 UNION SELECT 1.

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

  • nekiy_sayt / فایل index.php؟ ID = 25 UNION SELECT 1،2،3،4،5،6.

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

همچنین یک راه حل جایگزین برای این مشکل وجود دارد. به عنوان مثال، زمانی که تعداد زیادی از زمینه های - 30، 60 یا 100. این دستور GROUP BY. گروه این نتایج یک جستجو در هر زمینه، برای مثال ID:

  • nekiy_sayt / فایل index.php؟ ID = 25 GROUP BY 5.

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

این مثال SQL تزریق - برای مبتدیان که می خواهند خود را در تست سایت خود را امتحان کنید. این مهم است که به یاد داشته باشید که برای دسترسی غیر مجاز به یکی دیگر از مقاله موجود از قانون جزا.

نوع اصلی از تزریق

پیاده سازی آسیب پذیری های SQL تزریق در چند ماده. بعد محبوب ترین روش عبارتند از:

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

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

  • انباشته نمایش داده شد SQL را تزریق. این آسیب پذیری با انجام درخواست های پی در پی تعیین می شود. این است که توسط علاوه بر این در پایان ثبت نام مشخص "؛". این روش اغلب برای دسترسی به اجرا اجرای خواندن و نوشتن داده و یا سیستم عامل توابع، اگر امتیازات آن اجازه می دهد.

نرم افزار برای جستجو SQL-آسیب پذیری

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

Sqlmap

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

نصب و راه اندازی بر روی لینوکس با استفاده از دستورات انجام شده است:

  • دستگاه گوارش کلون https://github.com/sqlmapproject/sqlmap.git sqlmap-توسعه تمدن،
  • cdsqlmap-توسعه تمدن /،
  • --wizard ./sqlmap.py.

برای ویندوز در دسترس است به عنوان یک گزینه با خط فرمان و رابط کاربر گرافیکی است.

تزریق jSQL

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

نصب و راه اندازی این بسته نرم افزار به شرح زیر است:

دستور wget https://github.com/`curl -s HTTPS: //github.com/ron190/jsql-injection/releases | grep استفاده-E -o: /ron190/jsql-injection/releases/download/v[0-9]{1،2}.[0-9]{1،2}/jsql-injection-v[0-9] . {1،2} [0-9] {1،2} شیشه '| سر-N 1`

راه اندازی است با استفاده از جاوا فرمان -jar ./jsql-injection-v*.jar

به منظور شروع به سایت آزمون در SQL-آسیب پذیری، شما نیاز آدرس را وارد کنید در زمینه بالا. آنها برای GET و POST جدا هستند. با یک نتیجه مثبت، لیستی از جداول موجود در پنجره سمت چپ ظاهر می شود. شما می توانید آنها را مشاهده و یادگیری برخی از اطلاعات محرمانه است.

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

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

V.7 های SQLi دامپر

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

ابزارهای برای آموزش

Itsecgames.com در سایت است مجموعه ای از ابزار است که اجازه می دهد تا به عنوان مثال نشان می دهد که چگونه به انجام تزریق SQL و تست آن وجود دارد. به منظور بهره مند شوند، لازم است برای دانلود و نصب کنید. آرشیو شامل مجموعه ای از فایل است که ساختار سایت. برای نصب آن در سیستم موجود از مجموعه ای از وب سرور آپاچی، MySQL و PHP نیاز است.

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

آن را به ارزش توجه به یک مثال از نوع SQL تزریق GET / جستجو. در اینجا شما نیاز به آن را انتخاب کنید و روی «هک». قبل از اینکه کاربر ظاهر خواهد شد، و تقلید رشته جستجو یک سایت فیلم. برای مرتب کردن فیلم می تواند طولانی. اما تنها 10. به عنوان مثال وجود دارد، شما می توانید سعی کنید برای ورود به مرد آهنین. این فیلم، پس از آن سایت کار می کند، و جداول در آن وجود دارد نشان می دهد. در حال حاضر ما به صورت فیلتر کاراکترهای خاص اسکریپت را بررسی کنید، در نقل قول خاص است. برای انجام این کار، اضافه کردن در نوار آدرس. " علاوه بر این، این باید پس از عنوان فیلم انجام شود. این سایت یک خطا خطا می دهد: شما دارای یک اشکال در نحو گذاشتن شما؛ بررسی کاربر که مربوط به نسخه MySQL سرور شما برای نحو حق استفاده های نزدیک به '٪' 'در خط 1، که می گوید که شخصیت هنوز هم به درستی به کار است. بنابراین شما می توانید سعی کنید به جای درخواست شما. ولی اول باید تعدادی از رشته های محاسبه. - و عمل = جستجو http://testsites.com/sqli_1.php؟title=Iron+Man نظم »توسط 2: این است که برای این منظور توسط، است که پس از نقل قول ها معرفی شده است.

این دستور تنها اطلاعات در مورد این فیلم، این است که، تعدادی از رشته های بزرگتر از 2. علامت // سرور که سایر درخواست ها باید دور انداخته شود می گوید نشان می دهد. در حال حاضر ما به مرتب کردن، قرار دادن افزایش اهمیت تا زمانی که خطا چاپ نمی شود. در پایان، معلوم است که زمینه خواهد بود 7.

در حال حاضر زمان برای به دست آوردن چیزی مفید از پایه آن است. را کمی تغییر درخواست را در نوار آدرس، آوردن آن به یک شکل: http://testsites.com/sqli_1.php؟title=Iron+Man 'UNION SELECT 1، پایگاه داده ()، کاربر ()، 4، رمز عبور، 6، 7 از کاربران - و عمل = جستجو. به عنوان یک نتیجه از اجرای آن به رشته با رشته هش رمز عبور، که می تواند به راحتی به علامت قابل فهم با استفاده از یکی از خدمات آنلاین تبدیل نمایش داده شود. A یک کمی مصرانه خواست و برداشت یک فیلد نام با ورود به سیستم، شما می توانید دسترسی به ورود شخص دیگری به دست آورید، مانند مدیریت از سایت.

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

تزریق و PHP

به عنوان یک قاعده، پی اچ پی، کد و مسئول درخواست پردازش های لازم از کاربر می باشد. بنابراین، در این سطح شما نیاز به ساخت یک دفاع در برابر SQL تزریق در PHP.

نخست، اجازه دهید به چند دستورالعمل ساده، بر اساس آن به انجام این کار لازم است.

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

در حال حاضر کمی در مورد قوانین تدوین نمایش داده شد در MySQL برای محافظت در برابر SQL تزریق.

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

  • * انتخاب از جدول که در آن نام = ها Zerg.

در این پیکربندی، سیستم ممکن است فکر می کنم که ها Zerg - نام هر زمینه، بنابراین شما نیاز به آن را محصور در نقل قول.

  • SELECT * FROM جدول که در آن نام = 'ها Zerg.

با این حال، وجود دارد که ارزش خود را شامل نقل قول.

  • SELECT * FROM جدول که در آن نام = 'ساحل عاج.

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

  • SELECT * FROM جدول که در آن نام = 'گربه-D \' عاج.

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

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

کار پویا با داده

در اغلب موارد، برای دریافت هر گونه اطلاعات از پایگاه داده با استفاده از نمایش داده شد، ایجاد به صورت پویا. به عنوان مثال:

  • SELECT * FROM جدول که در آن تعداد = '$ تعداد.

در اینجا، تعداد متغیر $ به عنوان تعیین ارزش زمینه به تصویب رسید. چه خواهد شد اگر آن را می شود، ساحل عاج؟ خطا.

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

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

$ تعداد = mysql_real_escape_string که ($ تعداد)؛

$ سال = mysql_real_escape_string که ($ در سال).

$ پرس و جو = "INSERT INTO جدول (تعداد، سال، کلاس) VALUES ( '$ تعداد'، '$ در سال، 11)".

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

متغیرهایی

متغیرهایی - یک نوع از نشانگر برای که در آن سیستم به رسمیت می شناسد که این محل شما نیاز به جایگزین کردن یک تابع خاص است. به عنوان مثال:

$ دولتی = $ mysqli-> آماده ( "SELECT منطقه از شماره آن نام =؟")؛

$ Sate-> bind_param ( "S"، $ تعداد)؛

$ Sate-> اجرای ()؛

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

چه چیزی ممکن است یک مهاجم

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

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

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

همچنین، مهاجم می تواند پایگاه داده خود را ادغام و سپس گرفتن پول برای بازگشت آن است.

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

نتیجه

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

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

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

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

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

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 fa.unansea.com. Theme powered by WordPress.