پاسخ به:آموزش های تخصصی شبکه و امنیت و ضد امنیت
شنبه 28 مرداد 1391 1:59 AM
پويش و جستجوي اسكريپتهاي ناقص برنامه هاي Cgi
استاندار CGI مخفف Common Gateway Interface است
CGI براي پردازش و تجزيه و تحليل اطلاعات ای که از سوي کاربر ارسال شده به کار مي رود وتوان ارتباط بين Server ساير برنامه ها را مشخص شده درسرور را دارا می باشد
اسکريپتهاي CGI عليرغم توان تشان مسیربرنامه ها را کند مي کنند چرا که براي اجراي يک اسکريپت CGI مراحل زيادي بايد انجام شود وعلت این امر به ان جهت است که اول - اطلاعات بايد دو بار بين مرورگر وServer منتقل شوند دوم - سرور بايد مدتي را صرف پردازش اطلاعات ارسالی از مرورگر نمايد سوم - اجراي يکCGI به مانند درخواست يک صفحه جديد است با اين تفاوت که زماني نيز بايد صرف اجراي آن CGI بر روي سرور شود
چرا که شما با ارسال يک فرم يا کليک کردن روي يک ابر پيوند درخواستي را براي اجراي يک CGI به سويServer ارسال ميکند
شما در مرحله پويش و جستجوي سيستم توان پيدا كردن اسكريپتهاي ناقص
وضعيف نوشته شده برخي از برنامه هاي CGI دارید که به قدري ضعيف نوشته شداند كه بدون هيچ پردازشي داده هاي ارسالي از صفحه وب هدف را مستقيم روي سرويس دهنده اصلي اجرا مي كنند مثلا يك اسكريپ CGIرا در نظربه گيريد كه يك فرمان پرس وجو Query را ازبانک اطلاعا ت هدف گرفته و آنرا مستقيما به S QLserverمي فرستد
مكانيزم هاي نفوذ
شمااز طريق برنامه نويسي با پورت80 از سرويس دهنده ارتباط برقرار ميكند وتقاضاي راه اندازي يك اسكريپ را با متودGET
یعنی بصورت مصنوعي FTP توليد و به سرويس دهنده مي فرستد.اسكريپتهاي CGI ضعيف هر چه كه ارسال شده باشد بافرض أنكه از صفحه وب و از طريق فرم أمده اجرا ميكنند .
بنابر اين شما با يافتن همين نقاط ضعف در اسكريپتهاست .
براي جستجوي اسكريپتهاي أسيب پذير .ابزارهاي زیادی وجود دارد که قبلا چند
تای انها را معرفی کرده ام
شما به غير از جستجوي آسيب پذيري سعي كنید سيستم IDS هدف را گول بزنید
شما برای این امر می توانید از ابزار whisker استفاده کنید
توان whisker در بررسي نقاط ضعف اسكريپهاي در سطح لايه وسطح TCP/IP را مي شناسد و انها را ازمايش مي كند W hisker نقاط ضعف بيش از 500 نوع اسكريپ CGI وASP را پیدا می کند و قادر است با سرويس دهنده هاي وب مجازيVitual Webserver كه بر روي يك ماشين واحد اجرا مي شوند، ارتباط برقرار كند در ضمن روشي براي حدس User IDو كلمه عبور كه در هنگام احراز هويت (Web Authentication )در خواست مي شود،پياده سازي كرده
این روش ها به شرح زیر
URLencoding:
آدرس در URLارسالي با كدهاي معمولي ASCIIارسال نمی کند
اول هر كاركتر با معادل يوني كدآن با قالب % xxتعريف شده در MIME می گذارد و سپس ارسال می کند برخي از سيستمهاي IDS نمی توانند چنين قالبي را تشخيص دهند
GET /%63%67%69%2d%62%69%6e/broken .cgi HTTP/ 1.0
استاندارد MIME، براي معادلسازي كاركترها در رشته URLابتدا كاركتر% و سپس كد هگزاسيمال عدد قرار مي گيرد.
%63 c.%67 g .%69 i.%2d - .%62 b .%69 I .%6e
%63567569%2d%6956e CGI-bin
Directory inrertion/./: URL
كاراكترهاي/./ارسالي از طرف شما در برخي از سرويس دهنده هاي وب به اين شكل تفسير مي می کند یعنی به شاخه جاري تغيير مسير بدهيد تغيير مسير به شاخه جاري هيچ مشگلی ندارد وURLرا بشكل اي عوض مي کند و به الگوي حمله شباهت ندارد و IDS آنرا مجاز خیال کند
GET /. /cgi -bin /./broken. Cgi HTTP /1.0
peremator URL Ending
درURLارسالي اطلاعاتي در خصوص اسكريپت مورد نظر قرار داده نمي شود در عوض اين اطلاعات در بخش سر ايند HTTPجاسازي مي شوند
GET /HTTP /1.0 /r/ Nheader: …/../cgi -bin /broken. Cgi /HTTP/ 1.0
LONGURL
شاخه است كه وجود نداردURL ارسالي شامل نام بسيار طولاني يك شاخه است درانتها كاركترهاي /../قرار مي گيرد سرويس دهنده وب از نام شاخه چشم پوشي مي شود IDSفقط بخش اول از أدرسURLرا برسي مي كنند واین تقاضاي خطر به نظرش مي رسد
Cgi -bin /bvroken .cgi HTTP/1.0 / .. GET / this isbunnchofjunktomaketh URL long/
Fake parameter:url
پارامترهائي هستند كه هيچ خاصيت يا زیانی ندارد فقط URL رابه شكل عوض مي کتد IDS أنرا خطر بداند
GET / index. Html �param=/../cgi-bin/broken .cgi HTTP /1.0
TABsseparetion
كاركتر فاصله خالي spaceجدا می کند وبخشهاي مختلف URL ارسالي بجاي آن با كاركتر TAB عمل کند URL به شكل اي عوض مي كند تا به الگوي حمله شبا هت نداشته باشد و IDS أنرا بی خطر بداند
GET /bin broken /broken .cgi HTTP/1.0
Case senistiivity
سيستم هاي هستند که IDSانتظارURL با حرف كوچك دارند ولي تعدادي هم هستند که از سرويس دهنده هاي وب ارسال URL با حروف بزرگ و كوچك برای ان فرق نمي كنند و قابل اجراست بدينشكل IDS
گول مي خورد و تقاضارا اجرا مي کند
Windows delimiter
در ويندوز استفاده از علامت \بجاي /مجاز مي شناسد ودر بعضی از سيستم هاي IDS به أن حساسيت ندارند و در مورد شكل URLگمراهش مي کند
GET/ CGI-BIN/broken .cgi HTTP /1.0
Session Splicing روش این مكانيزم Session Splicing در سطح لايه TCP پياده سازي شده وابتدا قطعه قطعه شده و در بسته هاي يك تا سه كاركتري ارسال مي شود IDS ،توان بازسازي قطعات را ندارند و مجبور می شود براي اين بسته ها اجازه صادركند
G
ET
/GET/ cgi-bin /broken .cgi HTTP /1.0
i-
bin
/br
…
NULL Method
IDS براي تحليل رشته URL از توابع رشته اي استفاده مي كنند. در بين رشته URL، كاركتر%00(NULL Character) وجود داشته باشد توابع رشته اي آنرا بعنوان خاتمه رشته تلقي مي كنند وبدين الگو IDS گول مي خورد
GET%00/ cgi-bin /broken .cgi HTTP /1.0
** دارالولایه **