تزریق کدهای SQL یک تکنیک تزریق کد است که از آسیب پذیری های لایه پایگاه داده یک نرم افزار، سواستفاده می کند. تزریق SQL یکی از آسیب پذیریهای مخرب برای کسب و کار می باشد. زیرا می تواند منجر به سرقت رفتن اطلاعاتی مانند نام های کاربری و گذرواژه ها شود. همه پایگاه داده ها با درجات مختلف در برابر تزریق کد، آسیب پذیرند بنابراین داشتن اطلاعات جامع درباره تزریق کد SQL هم برای هکرها و هم برای تدابیر دفاعی در برابر حملات، ضروری به نظر میرسید.
نظرات کاربران
|
مجتبی قاسمی فر
١٣٩٤/٠٨/٢٠ ???? ١٩:٥١
سلام لطفا از طریق پیام کوتاه هم اطلاع رسانی کنید به اعضای سایت
|
|
مهدی وجدانی
١٣٩٤/٠٩/٠٢ ???? ١٧:٥٤
با سلام خدمت شما. یک پیشنهاد خدمتتون دارم
اگه لطف کنید یک کتاب جامع اموزش وب هکینگ به چاپ برسونید خیلی بهتر و مفیدتره تا اینکه واسه هر متد و هر نوع
حملهیا اسکنر یک کتاب به چاپ برسونید
با تشکر . موفق باشید
|
|
حامد صاحب پودنک
١٣٩٤/٠٩/١١ ???? ٢٢:٣٧
با سلام وخسته نباشید
زمان چاپ کتاب از اطلاع رسانی تا توزیع به نسبت باقی کتابها کمی طولانی شده کماکان منتظرهستیم
شاد وپیروزوسربلندباشید .
|
|
محسن كجباف
١٣٩٤/٠٩/١٣ ???? ١٣:٤٧
سلام
مدیریت و مسولین محترم انتشارات در حال انجام مراحل نهایی چاپ کتاب هستند. انشاالله بزودی کتاب به بازار عرضه خواهد شد.
|
|
حسين يعسوبي
١٣٩٤/٠٩/١٤ ???? ٢١:٠٩
كتاب مراحل پاياني آماده سازي را دنبال ميكند و تا آخر اين ماه به چاپ خواهد رسيد. دوستان اگر عضو كانال تلگرام پندار پارس شوند از آخرين خبرها آگاه خواهند شد: http://telegram.me/pendarepars
در مورد وب هكينگ هم دو عنوان كتاب در دست تهيه است نگران نباشيد حواسمون به نيازهاتون هست و تا جايي كه امكانش باشه اقدام ميكنيم. سورپرايزهاي خوبي تا آخر سال داريم.
|
|
محمد صادق غدیری
١٣٩٤/١٢/٠٥ ???? ٠٨:١٥
با سلام و خسته نباشید
این کتاب آموزش هم میدهد یعنی با اون میشه امنیت دیتا بیس را برقرار کرد ؟
آیا باید برای بهره برداری بیشتر کار با دیتابیس را بلد بود ؟ اگر جوابتون مثبته چه کتابی را پیشنهاد میکنید؟
با تشکر
|
ثبت نظر تنها براي اعضا میسر است. در صورتی که مایل به ثبت نظر هستید ابتدا برای خود حساب کاربری ایجاد کنید و اگر قبلاً حساب کاربری دارید لطفاً ابتدا وارد سیستم شوید.
فهرست پیش از ویرایش کتاب:
فصل نخست؛ تزریق SQL چیست؟ 1
1-1- مقدمه 1
1-2- درک چگونگی کار نرمافزارهای وب 2
1-3- ساختار یک برنامه ساده 3
1-4- معماری پیچیده تر 4
1-5- درک تزریق SQL 6
1-6- مثالهای مهم در زمینه امنیت وب 9
1-7- درک چگونگی روی دادن آن 12
1-8- ایجاد رشته پویا 13
1-9- استفاده نادرست کاراکترهای escape
1-10- انواع استفادههای نادرست 15
1-10-1- استفاده نادرست از کوئری 16
1-10-2- استفاده نادرست از پیغامهای خطا 17
1-10-3- استفاده نادرست از پیشنهادهای چندگانه 19
1-11- پیکربندی نا امن پایگاه داده 21
1-12- پاسخهای سریع 24
1-12-1- درک چگونگی کار برنامههای کاربردی وب 24
1-12-2- درک مفهوم SQL
1-12-3- درک چگونگی روی دادن آن 25
پرسشهای متداول 25
فصل دوم؛ آزمونهای تزریق SQL 27
2-1- مقدمه 27
2-2- یافتن تزریق SQL 27
2-3- آزمون از طریق استنتاج 28
2-3-1 شناسایی داده های ورودی 28
2-3-1-1 درخواستهای GET
2-3-1-2 درخواستهای POST
2-4- جریان کاری اطلاعات 32
2-5- خطاهای پایگاه داده 34
2-7- نمایش خطاهای متداول SQL 35
2-7-1 خطاهای SQL Server 35
2-7-2 پاسخ برنامه کاربردی 40
2-7-3 خطاهای عمومی 41
2-8- خطاهای کد HTTP
2-9- اندازه های پاسخ مختلف 45
2-10- تشخیص تزریق کور 46
2-11- تأیید تزریق SQL
2-12- تفکیک اعداد و رشته ها 50
2-13- تزریق درون خطی SQL 51
2-13-1 تزریق درون خطی رشتهها 51
2-13-2 تزریق درون خطی مقادیر عددی 55
2-14- خاتمه تزریق SQL 58
2-14-1 نحو کامنت پایگاه داده 59
2-14-2 استفاده از کامنت ها 60
2-14-3 اجرای گزاره های چندتایی 64
2-15- تأخیرهای زمانی 69
2-16- خودکارسازی کشف تزریق SQL
2-17- ابزار یافتن خودکار تزریق SQL
2-17-1- HP WebInspect
2-17-2- AppScan منطقی IBM 73
2-17-3- HP Scrawlr 75
2-17-4- SQLiX 77
2-17-5- پروکسی Paros 79
2-18- مـرور سریع
2-18-1- یافتن تزریق SQL
2-18-2- تأیید تزریق SQL
2-18-3- خودکارسازی کشف تزریق SQL
پرسشهای متداول 83
فصل سوم؛ بررسی کد برای شناسایی تزریق SQL 85
3-1- معرفی 85
3-2- بررسی کد منبع برای تزریق SQL 85
3-3- رفتارهای کدنویسی خطرناک 88
3-4- توابع خطـرنـاک 96
3-5- تعقیب داده ها 99
3-6- تعقیب داده ها در جاوا 100
3-7- تعقیب دادهها در C#
3-8- بررسی کد PL/SQL و T-SQL
3-9- بررسی خودکار کد منبع 111
3-10- یاسکا (YASCA)
3-11- Pixy 114
3-12- اسکن کد نرمافزار (AppCodeScan) 114
3-13- LAPSE 115
3-14- ابزار قطب نمای امنیتی آنالیز برنامههای وب (SWAAT) 116
3-15- تحلیلگر کد منبع مایکروسافت برای تزریق SQL
3-16- ابزار تحلیل کد مایکروسافت .NET (CAT.NET)
3-17- ابزارهای تجاری بررسی منبع کد
3-18- اونس (OUNCE)
3-19- تقویت تحلیلگر کد منبع 119
3-20- ایمن کد (CodeSecure)
3-21- خلاصهی بحث 120
3-22- مرور سریع 121
3-22-1- بررسی کد منبع برای تزریق SQL 121
3-22-2- بررسی کد منبع خودکار 121
3-23- پرسشهای متداول 122
فصل چهارم؛ بهره برداری از تزریق SQL
4-1- معرفی 125
4-2- درک تکنیکهای عمومی بهره برداری 126
4-3- استفاده از جستوجوهای انباشته (stacked)
4-4- شناسایی پایگاه داده (بانک اطلاعات) 128
4-5- اثر انگشت غیرکور 129
4-6- روش Banner Grabbing 131
4-7- اثر انگشت کور 133
4-8- استخراج اطلاعات از طریق دستورات UNION
4-9- تطبیق ستونها 135
4-10- تطبیق انواع داده ها 137
4-11- استفاده از گزاره های شرطی 143
4-12- روش 1: مبتنی بر زمان 144
4-13- روش 2: مبتنی بر خطا 146
4-14- روش 3: مبتنی بر محتوا 148
4-15- کـار با رشتـهها 148
4-16- بسط و توسعهی حمله 150
4-20- افزایش اختیارات بر روی سرورهای اصلاح نشده (unpatched)
4-22- ارتباط خارج از گروه (OOB)
4-23- ایمیل 166
4-24- SQL Server
4-25- HTTP/DNS
4-26- سیستم فایل (File System) 170
4-28- خودکارسازی بهره برداری تزریق SQL 173
4-28-1- Sqlmap 173
4-28-2- مثالهایی از Sqlmap 175
4-28-3- بابکت (Bobcat)
4-28-4- BSQL
4-28-5- سایـر ابزارهـا 180
4-29- خلاصه ی بحث 180
4-30- مـرور سریـع 181
4-30-1- درک تکنیکهای معمول بهره برداری 181
4-30-2- شناسایی پایگاه داده 181
4-30-3- استخراج داده از طریق گزارهی UNION 182
4-30-4- استفاده از گزارههای شرطی 182
4-30-6- افزایش اختیارات 182
4-30-7- سرقت هَشهای گذرواژه 183
4-30-8- ارتباطات خارج از گروه (OOB)
4-30-9- خودکارسازی بهره برداری تزریق SQL
4-31- پرسشهای متداول 183
فصل پنجم؛ بهره برداری از تزریق SQL کور 185
5-1- مقدمه 185
5-2- یافتن و تأیید کردن تزریق SQL کور 186
5-3- اجبار خطاهای عمومی 186
5-4- تزریق جستوجوها با عوارض جانبی 187
5-5- تقسیم کردن و متعادل کردن 187
5-6- حالتهای رایج تزریق SQL کور 190
5-7- تکنیکهای تزریق SQL کور 191
5-8- تکنیکهای استنباطی 191
5-9- افزایش پیچیدگیهای تکنیکهای استنباط 195
5-10- تکنیکهای کانالهای جایگزین 199
5-11- استفاده از تکنیکهای مبتنی بر زمان 200
5-12- تأخیرات SQL Server
5-13- بهره برداری استنباط جستوجوی بیناری SQL Server عمومی 202
5-14- بهره برداری استنباط جستوجوی بیت به بیت SQL Server عمومی 202
5-15- ملاحظات استنباط مبتنی بر زمان 202
5-16- استفاده از تکنیکهای مبتنی بر پاسخ 203
5-17- تکنیکهای پاسخ SQL Server
5-18- بازگرداندن بیش از یک بیت از اطلاعات 206
5-19- استفاده از کانالهای جایگزین 208
5-20- اتصالهای پایگاه داده 208
5-21- فیلتر خروج DNS
5-22- فیلتر خروج ایمیل 213
5-23- فیلتر خروج HTTP 214
5-24- خودکارسازی بهره برداری از تزریق SQL کور 216
5-24-1- Absinthe 217
5-24-2- هکر BSQL
5-24-3- SQLBrute
5-24-4- SQLninja
5-24-5- Squeeza
5-25- خلاصه ی بحث 224
5-26- مرور سریع 225
5-26-1- یافتن و تأیید کردن تزریق SQL کور 225
5-26-2- استفاده از تکنیکهای مبتنی بر زمان 225
5-26-3- استفاده از تکنیکهای مبتنی بر پاسخ 225
5-26-4- استفاده از کانالهای جایگزین 225
5-26-5- خودکارسازی بهره برداری از تزریق SQL کور 226
5-27- سؤالات متداول 226
فصل ششم؛ بهره برداری (استخراج) از سیستم عامل 229
6-1- مقدمه 229
6-2- دسترسی به سیستم فایل 230
6-3- خواندن فایلها 230
6-4- SQL Server
6-5- Oracle
6-6- نوشتن فایلها 241
6-7- SQL Server
6-8- اجرای دستورات سیستم عامل 249
6-9- اجرای مستقیم 249
6-10- احتمالات دیگر 249
6-10-1- تغییر (اصلاح) رویدادهای مجموعه سیستم 250
6-10-2- PL/SQL محلی i9
6-10-3- سرریز بافر 250
6-10-4- کد سفارشی برنامه 250
6-11- SQL Server 251
6-12- افزایش دسترسی 255
6-13- خلاصهی بحث 257
6-14- مـرور سـریع 258
6-14-1- دسترسی به سیستم فایل 258
6-14-2- اجرای دستورات سیستم عامل 258
6-14-3- افزایش دسترسی 259
6-15- پرسشهای متداول 259
فصل هفتم؛ مباحث پیشرفته 261
7-1- مقدمه 261
7-2- دور زدن فیلترهای ورودی 261
7-3- استفاده از تنوع حرف 262
7-4- استفاده از کامنتهای SQL
7-5- استفاده از رمزگذاریURL
7-6- استفاده از اجرای جستوجوی داینامیک 267
7-7- استفاده از بایتهای نول (Null) 268
7-8- قراردادن عبارات رشتهای 269
7-9- سوءاستفاده از کوتاهسازی 269
7-10- دور زدن فیلترهای سفارشی 271
7-11- استفاده از نقاط ورودی غیر استاندارد 272
7-12- سواستفاده از تزریق SQL مرتبه دوم 274
7-13- یافتن آسیبپذیریهای مرتبه دوم 276
7-14- استفاده از حملات ترکیبی 279
7-15- اعمال فشار با استفاده از دادههای گرفته شده 279
7-16- ایجاد پردازهنویسی کراس-سایت 279
7-17- اجرای دستورات سیستم عامل بر روی Oracle
7-18- سوءاستفاده از آسیبپذیریهای تأییدشده 281
7-19- خلاصه ی بحث 282
7-20- مرور سریع 283
7-20-1- دور زدن فیلترهای ورودی 283
7-20-2- سواستفاده از تزریق SQL مرتبه دوم 283
7-20-3- استفاده از حملات ترکیبی 283
7-21- پرسشهای متداول 284
فصل هشتم؛ دفاع سطح-کد 287
8-1- مقدمه 287
8-2- استفاده از گزاره های پارامتری شده (parameterized)
8-3- گزارههای پارامتری شده در جاوا 289
8-4- گزارههای پارامتری شده در (C#).NET 291
8-5- اعتبارسنجی ورودی 293
8-6- تهیه لیست سفید 294
8-7- تهیه لیست سیاه 296
8-8- تأییداعتبار ورودی در جاوا 297
8-9- تأییداعتبار ورودی در .NET
8-10- رمزگذاری خروجی 299
8-11- رمزگذاری برای پایگاه داده 300
8-12- رمزگذاری برای SQL Server 300
8-13- استانداردسازی 302
8-14- روشهای استانداردسازی 303
8-15- کار با یونیکدها 304
8-16- تدابیری برای جلوگیری از خطرات ناشی از تزریق SQL
8-17- استفاده از رویه های ذخیره شده 306
8-18- استفاده از لایه های انتزاع 307
8-19- چگونگی رفتار با دادههای حساس 308
8-20- منع استفاده از اسامی هدف آشکار 309
8-21- ایجاد هانیپاتهای پایگاه داده 310
8-22- منابع دیگر توسعهی ایمن 311
8-23- خلاصه ی بحث 312
8-24- مـرور سـریع 312
8-24-1- استفاده از گزاره های پارامتری شده 312
8-24-2- تأییداعتبار داده های ورودی 313
8-24-3- کدگذاری خروجی 313
8-24-4- استانداردسازی 313
8-24-5- تدابیری برای جلوگیری از خطرات ناشی از تزریق SQL
8-25- پرسشهای متداول 314
فصل نهم؛ شیوههای دفاع در سطح پلتفرم 317
9-1- مقدمه 317
9-2- استفاده از حفاظت زمان اجرا 317
9-3- فایروالهای برنامه های وب 319
9-4- استفاده از ModSecurity
9-5- مجموعه دستورات قابل تنظیم 320
9-6- پوشش درخواست 322
9-7- نرمال سازی درخواست 323
9-8- آنالیز پاسخ 324
9-9- قابلیتهای تشخیص نفوذ 325
9-10- فیلترهای جلوگیری 326
9-11- فیلترهای سرور وب 326
9-12- فیلترهای نرمافزار (برنامه) 329
9-13- اجرای الگوی فیلتر در زبانهای اسکریپت نویسی شده 330
9-14- فیلترکردن پیامهای خدمات وب 331
9-15- حفاظت ورودی قابل ویرایش در مقابل حفاظت ورودی غیر قابل ویرایش 331
9-16- استراتژیها در سطح صفحه/ URL
9-16-1- جایگزین کردن صفحه (page overriding)
9-16-2- بازنویسی URL
9-16-3- Proxying/Wrapping منابع 333
9-16-4- برنامه نویسی جنبهگرا (AOP) 334
9-17- سیستمهای تشخیص نفوذ به نرمافزار (IDSها) 334
9-18- دیوار آتش (فایروال) پایگاه داده 335
9-19- ایمنسازی پایگاه داده 335
9-20- قفل کردن دادههای برنامه 335
9-20-1- استفاده از ورود به سیستم (login) با کمترین اختیارات پایگاه داده 336
9-20-2- لغو مجوزهای PUBLIC 336
9-20-3- استفاده از رویه های ذخیره شده 337
9-20-4- استفاده از رمزنگاری قوی برای حافظت از اطلاعات حساس ذخیره شده 337
9-20-5- حفظ یک دنبالهی ممیزی 338
9-21- قفل کردن (ایمنکردن) پایگاههای اطلاعاتی سرور 338
9-21-1- قفلکردن (ایمنکردن) دیگر اهداف سیستم 339
9-21-2- محدودکردن جستوجوهای موردی 339
9-21-3- تقویت ابزارهای کنترلی محیط تأیید 340
9-21-4- اجرا در شرایط حساب کاربری سیستم عامل دارای حداقل اختیارات 340
9-21-5- اطمینان یابید که نرمافزار سرور پایگاه داده، پچ (اصلاح) شده است 341
9-21-6- استفاده از پیش فرض خالی وبسایت 341
9-21-7- استفاده از نامهای ساختگی میزبان برای جستوجوهای DNS معکوس 342
9-21-8- استفاده از گواهی های فرانویسه ی SSL
9-21-9- محدودکردن کشف از طریق هک کردن موتور جستوجو 343
9-21-10- غیرفعال کردن اطلاعات زبان توصیف خدمات وب (WSDL)
9-21-11- افزایش اضافه نویسی لاگهای سرور وب 344
9-21-12- استقرار وب و سرورهای پایگاه داده بر روی میزبانهای جداگانه 345
9-21-13- تنظیم کنترل دسترسی به شبکه 345
9-22- خلاصهی بحث 345
9-23- مرور سریع 346
9-23-1- استفاده از حفاظت زمان اجرا 346
9-23-2- تأمین امنیت پایگاه داده 346
9-23-3- دیگر ملاحظات اجرایی 346
9-24- پرسشهای متداول 347
تصحیحات
ثبت تصحيح تنها براي اعضا میسر است. در صورتی که مایل به ثبت تصحيح هستید ابتدا برای خود حساب کاربری ایجاد کنید و اگر قبلاً حساب کاربری دارید لطفاً ابتدا وارد سیستم شوید.