ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش 0 کردن حملات sql اینجکشن



vahidmom
February 5th, 2012, 14:31
سلام
گفتم این آموزش رو اینجا بزارم بلکه از شر این هکر ها یکم راحت بشین
البته اون دوستانی که برنامه نویس خوبی هستند رو نمیگم .اونایی که کمتر تسلط دارند

خوب میریم سر آموزش
نکته: این فایل رو یکی از دوستان قدیمم 4 سال پیش بهم داد به اسم مهرداد.از همینجا بازم ازش تشکر میکنم

خوب یه فایل درست کنید به نام هر چی دوست داری :دی ما خوب بزارید security.php
این کد ها رو توش بزارید و ذخیرش کنید

<?
$REQUEST_URL = parse_url($_SERVER['REQUEST_URI']);
if ( @$REQUEST_URL["query"] != "" ) :
$PageAddress = $REQUEST_URL["query"];
$characters = array("+","`","$","/","\\","\"","'"," ","*","-","");
$array_count = count($characters) ;
for ( $i = 0 ; $i < $array_count ; $i++ )
{
if ( @substr_count($PageAddress,$characters[$i]) >= 1 )
{
exit('
<html dir="rtl">

<head>
<meta http-equiv="Content-Language" content="fa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>گزارش حمله به سايت</title>
</head>

<body>

<p align="center">
<img border="0" src="Images/Error/sql_injection.gif" width="330" height="332"></p>
<p align="center"><font size="2" face="Tahoma">اين كار غير قابل دسترسي است</font></p>
<p align="center"><font size="2" face="Tahoma">لطفا از انجام اين كار صرف نظر
نماييد</font></p>
<p align="center"><span lang="en-us"><font size="2" face="Tahoma">
<font color="#808000">This Site Has Been Secured And Protected BY</font>
<font color="#0000FF">VahidMomtazi</font></font><font color="#0000FF"></font></span></p>

</body>

</html>

');

break;
}
}
endif;

?>

خوب حالا فایل رو دخیره کنید.
حالا تو هر فایلی که به نوعی عدد رو فراخونی میکنه
مثل : page.php?id=3 و...
یعنی صفحاتی که اخر فایل شماره و یا به نوعی فایل اصلیشون ثابته و محتوای متغیر دارند
نمیدونم منظورمو درست گفتم یا نه :دی
این فایل رو فراخونی کنید
include "security.php";

تموم شده
حالا فرض کنید که ادرس صفحه ای دارید به این صورت
http://yourdomain.com/page.php?id=2
اگر هکر بخواد به هر نحوی تو شماره صفحه تغییری ایجاد کنه پیغامی که تو کد ها هست رو مشاهده میکنه
همونجور که میدونید برای تزریق اس کیو ال باید با این قسمت ور رفت

تو پست بعدی یا ادامه همین پست اموزش رو کامل میکنم
یعنی وقت کسی خوست شیطونی کنه به جز اینکه نمیزاره این کار رو بکنه ایپیش رو هم بلوکه کنه و نزاره دیگه سایت رو مشاهده کنه :دی

okey
February 5th, 2012, 14:57
من که نفهمیدم عزیز
اگر میشه یه بار کامل توضیح بدین ...

vahidmom
February 5th, 2012, 16:15
ببینید این کد به درد کسایی که خودشون سایت رو از پایه طراحی میکنند بدرد میخوره
مثلا شما میای یه برنامه مینویسی به زبان پی اچ پی
حالا یه صفحه اخبار مینویسی و بهش متغیر میدی و اسم صفحه رو new.php انتخاب میکنی
خوب اخبار برای اینکه به ترتیب نمایش داده بشه باید یه کد بهش اختصاص داد که هر برنامه نویس یه حور کار میکنه
یکی میاد کلا لینک را رو تغییر میده :دی
حالا به اوناش کار نداریم
همین اخبار میشه اینجوری مثلا
اخبار شماره یک new.php?id=1
اخبار شماره 2 news.php?id=2
, ...
حالا هکر هم همیشه دنبال این صفحات میگرده
خوب ما به وسیله این برنامه که یک فایل که توضیح دادم اون کد ها رو باید ذخیره کنید و هم یک خط فایل که باید ابتدای فایل های نوشته شده خودتون بیارید این حملات رو میبندیم و نمیزاریم کسی تو ادرس سایت تغییری ایجاد کنه

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

amirlord
February 5th, 2012, 16:28
سلام
در این پروگرم تمام REQUEST های دریافتی رو چک میکنه از لحاظ موجود بودن کاراکتر های :

array("+","`","$","/","\\","\"","'"," ","*","-","");
که درون آرایه قرار گرفتند و اگر تعداد بالای 0 بود خروجی میده که ....
این هم چند نمونه Class برای جلوگیری از Sql Injection
sql injection - PHP Classes (http://www.phpclasses.org/search.html?words=sql+injection&x=0&y=0&go_search=1)

okey
February 5th, 2012, 16:38
یعنی نمی شه این کد ها رو همین طوری گذاشت مثلا تو ورد پرس یا ویبولتین و ....؟

vahidmom
February 5th, 2012, 16:39
نیازی به این کار نیست
این اسکریپت ها خودشون این قدر امنیتشون بالا هستش که نیاز به این کد ها نداشته باشند
تو اول تاپیک گفتم به درد کسایی میخوره که دارند خودشون برنامه رو از پایه مینویسند

MihanTech
February 5th, 2012, 19:00
برنامه نویس سواد داشته باشه ، نیاز به کد کمکی نیست !

vahidmom
February 5th, 2012, 20:19
برنامه نویس سواد داشته باشه ، نیاز به کد کمکی نیست !

اصلا ان حرف شما صحیح نیست
اینجور که شما حرف میزنید ادم باید روز تولدش برنامه نویس به دنیا بیاد
شما کدوم برنامه رو دیدید که بدون مشکل کار کنه؟؟؟!!!
کدوم برنامه رو دیدی که هیچ وقت اپدیت امنیتی نشه؟؟؟
برنامه های معروف مثل جوملا ، وردپرس ، ناک و ... هیچ وقت مشکل نداشتند؟

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

Rezash
February 6th, 2012, 23:36
این کد چند مشکل اساسی داره
1. اینکه متد post ، کوکی ها و ... صد در صد میتونند مورد حمله قرار بگیرند و فقط متد get رو بررسی شده
2. فرض کنید قرار هست از کاربر ورودی html بگیریم ، اونوقت کاربر هکر شناخته میشه ! فرض کنید در پسورد کاربر + وجود داره و ...
3. کاراکترهای خاص اصلا در نظر گرفته نشده اند
بنابراین باید بگم متاسفانه کد شما به هیچ وجه به تنهایی قابلیت مقابله با حملات رو نداره

vahidmom
February 6th, 2012, 23:42
این کد چند مشکل اساسی داره
1. اینکه متد post ، کوکی ها و ... صد در صد میتونند مورد حمله قرار بگیرند و فقط متد get رو بررسی شده
2. فرض کنید قرار هست از کاربر ورودی html بگیریم ، اونوقت کاربر هکر شناخته میشه ! فرض کنید در پسورد کاربر + وجود داره و ...
3. کاراکترهای خاص اصلا در نظر گرفته نشده اند
بنابراین باید بگم متاسفانه کد شما به هیچ وجه به تنهایی قابلیت مقابله با حملات رو نداره

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