آموزش sql injectionسلام دوستان من علی محمدی هستم عضو گروه SumHacker

در این مبحث آموزشی قصد دارم به آموزش مقدماتی تا پیشرفته SQL INJECTION بپردازم و امیدوارم از آموزش های این آموزش استفاده درستی کنید .

سعی میکنم خیلی

خیلی ساده توضیح بدم به شیوه ای که همه ی دوستان خوب متوجه بشن حتی مبتدی ترین ها !


آموزشات رو به دو صورت متنی و تصویری (عکس) قرار میدم و جاهای که نیاز به عکس  نباشه تنها به متن اکتفا میکنم .

برای شروع از دیتابیس MySQL شروع میکنم

( باید بگم تو این مبحثفعلا فقط به نحوه ای نفوذ میپردازیم نه به نحوه ای جلو گیری ولی اگه دیدم استقبال خوبی داره شاید جلو گیریشم گفتم )

فقط چند نکته هست که باید برای ادامه ای تاپیک و بهبود درس رعایت بشه :

نکته : اگر سوالی دارید اول این مبحث رو خوب مطالعه کنید و اگر مشکلی داشتید یا از طریق نظرات سوال خودتونو مطرح کنید .

نکته : کپی برداری از مطالب این تاپیک فقط با ذکر منبع و نام نویسنده مجاز است . . .

نکته : نظرات و انتقادات خودتونو در مورد این مبحث که چیکار کنیم بهتر شه یا درسمونو به کجا ها بکشیمو یا درس یا تاپیک چه مشکلی داره رو در بخش نظرات مطرح نکنید و میتونید یا با ایمیل من به آدرس SqlInjection@Rayana.ir تماس داشته باشید و نظرات و انتقادات خودتونو به من اطلاع بدید .

و نکته آخر : با نظراتتان بنده را همراهی کنید .

موفق باشید ....

دسترسی سریع به آموزش ها

آموزش شماره 1 - مبحث کلی و مقدمه SqlInjection

آموزش شماره 2 - پیدا کردن سایت باگ دار و تست نفوذ پذیری

آموزش شماره 1 - مبحث کلی و مقدمه SqlInjection

همونطور که میدونید در اغلب برنامه های تحت وب از بانک اطلاعاتی استفاده میشه که اطلاعاتی نظیر اسامی ، اطلاعات کاربردی یک سایت ، اطلاعات کاربران و مدیران و ... در آن قرار میگیره .

این برنامه ها اطلاعاتی که کاربران میخواهند وارد کنند را از طریق کد هایی که برنامه نویس نوشته دریافت میکنند و بر اساس آنها Query جدیدی تعریف میکنند و به دیتابیس یا همون بانک اطلاعاتی ارسال میکنند . و ارتباط Database با کاربر از طریق همین Query ها برقرار میشود .

اکثر این برنامه ها از زبان SQL برای این ارتباط استفاده میکنند و جالبه که بدونید این فرایند که Query ها بر اساس اطلاعاتی که کاربران برای آنها تایین میکنند و مستقیماً در فیلدهای ورودی صفته وب وارد میکنند می تواند راهی برای نفوذ یک هکر باشد .

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

و ما در این آموزشات میخواهیم همان دستورات و نحوه دستوپنجه نرم کردن با این برنامه های نوشته شده توسط برنامه نویسان رو مرور کنیم .

باگ ها SQL از طریق برنامه نویسی غلط و اشتباه برنامه نویس سایت اون باگ بوجود میاد و هکر ها هم از این فرصت ها استفاده میکنن و از طریق اون خرابی که ما بهش میگیم باگ اطلاعات سایت رو بدست میارن و در اخر نفوذ و ...

میتونم بگم روی تعداد زیادی از سایت های که وجود داره باگ SQL موجود است ! مثلا بیشتر سایت های دولتی ما یا کشور های دیگر از این نوع باگ ها برخوردارن ! مثل : سایت های دانشگاها , سایت های بانک ها , سایت های دولتی , و ....

نوع دیتابیسی که ما میخوایم اموزش بدیم
:

در SQL دیتابس های زیادی هستند که معروف ترین این ها میتونیم به MySQL , MsSQL , Orcal ا و ... اشاره کرد، در این نوع دیتابس ها حملات تقربا شبیه به هم هستند (از نظر دستوری)

ما در این مبحث میخوایم به آموزش حملات MySQL بپردازیم که برای START خیلی خوبه ! یعنی با دستورات بهتر اشنا میشین مقدماتی تر نسبت به بقیه ساده تر هستش .

در ادامه با پیدا کردن سایت های آسیب پذیر و نحوه چک کردن سایت ها و ... آشنا میشید ...

موفق باشید .

آموزش شماره 2 - پیدا کردن سایت باگ دار و تست نفوذ پذیری

سلام دوستان من بین هر آموزش وقت میزارم که اگر سوالی داشتید رفع بشه بعد میرم قسمت بعد .

یچیزیو قبل از همه میگم اصلا فکر نکینید که سایت مورد نظر شما باید حتما این باگ رو داشته باشه و امکان داره که این مشکل امنیتی در سایت مورد نظر شما باشه شایدم نباشه ، دوستانی که تازه دارند با این متد آشنا میشن ابتدا روی هدف خاصی کار نکنن و ساده ترین هدف هارو برای تمرین انتخاب کنند و به مرور زمان شما بیشتر با این متد آشنا میشید و میتونید سایت های مورد نظر خودتونو مورد حمله قرار بدید ...

مراحل آموزش در این پست رو مرور میکنیم :

1. استفاده از دستورات (Dork ها) در موتور جستوجوگر گوگل (Google.Com) و پیدا کردن سایت هایی با فیلتر های مورد نظر .
2. تست سایت مورد نظر (Target) و مطلع شدن از این که آیا سایت باگ (مشکل امنیتی) دارد یا خیر .

میریم سر خود آموزش :

اولین قدم ما در هک مشخص کردن نوع هدفی است که ما میخواهیم به آن نفوذ کنیم، اگر هدف مشخصی نداشته باشیم و بخواهیم از موتور های جستوجو گر با اون سطح علمیمون برای پیدا کردن هدف خودمون جستوجو کنیم، مطمعنا با سایت های زیادی روبرو میشوید و شاید از 100% تمام سایت ها فقط 10% سایت هایی که جستوجو کردید مشکل امنیتی داشته باشند یا اصلا یه سوال : چی میخواید سرچ کنید ؟ "سایتی که مشکل امنیتی SQL INJECTION دارد" گزینه مناسبیه ؟

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

یکی از این امکانات مثلا جستوجو فقط میان آدرس صفحات است که گوگل فقط سایت های که در آدرس خودشون اون متن مورد نظر شمارا دارد جستوجو میکند !

برای اینکار از دستور inurl استفاده میشود زمانی که میخواهید متنی را در تکس باکس گوگل سرچ کنید قبل از متن مورد نظر inurl را تایپ میکنیم و در ادامه مشخصات دیگر را وارد میکنیم برای مثال :

inurl:'.gov' and '.php' and 'page=' and 'id' or 'news'

در دستور بالا ما به موتور جستوجو گر فرمان میدیم که در آدرس مورد نظرمون سایت های که با دامین .gov هستند و از PHP استفاده میکنند و در آدرس آن ها Page= و id و news وجود دارد را برای ما پیدا کند . نمونه دیگر :

کد:

inurl:news-full.php?id=

در دستور بالا ما به موتور جستوجو گر فرمان میدیم که صفحه هایی از سایت هایی که در آدرس خودشون News.full.php?id رو دارند رو برای ما پیدا کنه .

بعد از پیدا کردن سایتی با فیلتر مورد نظرمون میرسیم به تست نفوذ پذیری آن !

برای مطلع شدن از این که آیا سایت مورد نظر مشکل امنیتی دارد یا خیر میتونیم از دو روش استفاده کنیم :

1. منطقی :

در این روش ما به آخر آدرس صفحه مورد نظرمون AND 1=1 را اظافه میکنیم و با وارد کردن این دستور سایت باید به صورت کامل لود شود و با تغییر 1 دوم به 0 سایت اگر با نقص یا با ارور لود شود یعنی میتونیم کارمونو ادامه بدیم .

مثلا این تارگت ماست : www.p5n.net/mtl/news-full.php?id=14

تذکر : لطفا تارگت آموزش را دیفیس نکنید یا دستی توش نیارید که صاحب سایت متوجه مشکل امنیتیش شه تا برای دیگر دوستان که میخوان در آینده هم یاد بگیرند مثال باشه ...

خوب ادامه آموزش ، اگه ما AND 1=1 اضافه کنیم سایت کامل میاد بالا ولی وقتی AND 1=0 رو بزنیم سایت کامل لود نمیشه ! (یعنی امکان داشتن مشکل امنیتی مورد نظرمون زیاده)

به این شکل :

کد:

http://www.p5n.net/mtl/news-full.php?id=14 and 1=1
http://www.p5n.net/mtl/news-full.php?id=14 and 1=0

2. کارکتری :

آخر تارگتمون یه کوتیشن ( ' ) اضافه میکنیم و اگه ارور مشاهده کردیم یا صفحه کامل لود نشد یعنی به این معناست که میتونیم حملمونو ادامه بدیم، شکل دستوری در عمل به این شکل است :

کد:

http://www.p5n.net/mtl/news-full.php?id=14'


تا اینجا برای پیدا کردن سایت باگ دار و مشاهده کردن این که باگ داره سایتمون یا نه !