
کتاب تزریق SQL، حمله و دفاع اثر جاستین کلارک انتشارات پندار پارس
برند :
انتشارات پندار پارسویژگی ها
- ردهبندی کتاب : علوم کامپیوتر (تکنولوژی و علوم کاربردی و مهندسی)
- نوع جلد : شومیز
- نوع کاغذ : تحریر
- گروه سنی : همه سنین
مشخصات محصول
نویسنده
جاستین کلارک
مترجم
محسن کجباف
ناشر
پندار پارس
شابک
978-600-6529-89-9
موضوع
امنیت سایت
ردهبندی کتاب
علوم کامپیوتر (تکنولوژی و علوم کاربردی و مهندسی)
زبان نوشتار
فارسی
قطع
وزیری
نوع جلد
شومیز
چاپ شده در
ایران
نوع کاغذ
تحریر
گروه سنی
همه سنین
تعداد جلد
1
تعداد صفحه
400
وزن
600 گرم
سایر توضیحات
فهرست پیش از ویرایش کتاب: فصل نخست؛ تزریق 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