PDA

View Full Version : حرفه ای: آیا امکان جعل آی پی آدرس وجود دارد؟



ayub_coder
پنج شنبه 04 اسفند 1390, 11:34 صبح
سلام دوستان
آیا امکان جعل آدرس آی پی وجود دارد؟
من می خواهم درخواستی به سرور و سایتی بفرستم. ولی نه با آی پی واقعی خودم . بلکه با یه آی پی آدرس دیگه.از پراکسی هم نمی خوام استفاده کنم.
آیا امکان این کار با توابع cURL یا سوکت وجود داره؟ اگه هست میشه راهنمایی کنید؟:لبخندساده:

MMSHFE
پنج شنبه 04 اسفند 1390, 12:13 عصر
عملاً خیر. اینجا (http://stackoverflow.com/questions/5092563/how-to-fake-serverremote-addr-variable) رو ببینید.

ayub_coder
پنج شنبه 04 اسفند 1390, 12:16 عصر
آیا با سوکت پروگرامینگ هم این امکان وجود نداره؟

MMSHFE
پنج شنبه 04 اسفند 1390, 14:33 عصر
بله میشه با سوکت اینکار رو انجام داد ولی باید به یک نکته مهم دقت کنید و اون اینکه تمام درخواستهای PHP و کلاً زبانهای سمت سرور در یک لایه بالاتر از TCP اجرا میشن و درنتیجه اگه IP رو عوض کنیم، پیغامهای Ack و... همگی برای همون IP ارسال خواهد شد و درنتیجه، جوابی از سرور مربوطه دریافت نخواهیم کرد. بخاطر همین موضوع بود که گفتم عملاً خیر. یکبار دیگه به پاسخ صحیح توی همون لینکی که گذاشتم دقت کنید. موفق باشید.

eshpilen
پنج شنبه 04 اسفند 1390, 16:33 عصر
برای ارتباط HTTP نیاز هست اول یک اتصال TCP برقرار بشه.
برای اتصال TCP هم باید اول بین کلاینت و سرور چند پیام رد و بدل بشه.
وقتی شما IP جعلی بدید طبیعتا پاسخ سرور رو که برای تاسیس کانکشن TCP مورد نیاز هست دریافت نمیکنید (چون پاسخها به آدرس جعلی که شما مشخص کردید ارسال میشن).
در نتیجه جعل کردن IP براتون فایده ای نخواهد داشت.
ضمنا منطقا باید نتیجه بگیریم که وقتی اتصال TCP انجام نمیشه پس درخواست HTTP هم هرگز بوجود نخواهد آمد؛ یعنی درخواست شما بوسیلهء آپاچی پردازش نمیشه (یعنی هیچ فایل PHP یا ASPX و غیره در سمت سرور اجرا نمیشه).
پس این عمل باعث انجام هیچ کاری روی سرور نمیشه. جعل IP فقط برای مواردی مثل حمله های DoS استفاده میشه، و قابلیت ارسال درخواست HTTP رو نداره.

ayub_coder
پنج شنبه 04 اسفند 1390, 17:51 عصر
آیا راه دیگه ای هست که بشه آی پی رو عوض کرد؟(یعنی درخواست با آی پی متفاوتی باشه) .تنها راه همون پراکسی هست؟

MMSHFE
پنج شنبه 04 اسفند 1390, 18:00 عصر
منطقاً بله چون با استفاده از پراکسی، IP شما توی سیستم واسطه وجود داره و اون سیستم بعد از دریافت Packetها یا پیغامهای Ack اونها رو برای شما Forward میکنه و متقابلاً درخواستهای شما و پیغامهای Ack برای دریافت اطلاعات رو برای مقصد نهایی میفرسته، اما سرور، IP اون سیستم واسطه رو داره و با اون سروکار داره.

MMSHFE
پنج شنبه 04 اسفند 1390, 18:08 عصر
این کد رو امتحان کنید:

curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip"));
و متغیر ip$ رو قبلش با آدرس IP جعلی مقداردهی کنید. البته مطمئن نیستم کار کنه ولی احتمال کارکردنش هست (بستگی داره به اینکه سروری که میخواین باهاش ارتباط برقرار کنید درمقابل اینگونه حملات امن باشه یا نه). البته دقت کنید که این کار، جعل کردن IP نیست بلکه جعل کردن هدر HTTP هست. اگه کار کنه، میشه گفت این مثال، یک مصداق بارز و عملی هست برای صحت این گفته که نباید به اطلاعات موجود در هدر درخواستهای HTTP اعتماد کنیم.
موفق باشید.

ayub_coder
پنج شنبه 04 اسفند 1390, 18:25 عصر
منطقاً بله چون با استفاده از پراکسی، IP شما توی سیستم واسطه وجود داره و اون سیستم بعد از دریافت Packetها یا پیغامهای Ack اونها رو برای شما Forward میکنه و متقابلاً درخواستهای شما و پیغامهای Ack برای دریافت اطلاعات رو برای مقصد نهایی میفرسته، اما سرور، IP اون سیستم واسطه رو داره و با اون سروکار داره.

پراکسی چطور این کار رو انجام میده؟ آیا با زبان های برنامه نویسی دیگه میشه اینکار رو کرد یا اصلا امکانش نیست؟ منظورم جعل آی پی اه!!!

MostafaEs3
پنج شنبه 04 اسفند 1390, 20:57 عصر
//////////

eshpilen
جمعه 05 اسفند 1390, 09:47 صبح
البته دقت کنید که این کار، جعل کردن IP نیست بلکه جعل کردن هدر HTTP هست. اگه کار کنه، میشه گفت این مثال، یک مصداق بارز و عملی هست برای صحت این گفته که نباید به اطلاعات موجود در هدر درخواستهای HTTP اعتماد کنیم.شدنش که میشه. خود پراکسی چطور این هدرها رو ست میکنه؟
حالا با cURL نشد بگید با سوکت در PHP یا پایتون بنویسم. کلا با سوکت TCP در هر زبانی میشه این کار رو انجام داد.
اتفاقا به همین دلیل یک کدی که خودتون چند وقت پیش گذاشته بودید برای بدست آوردن IP واقعی کاربر و از هدرهایی مثل HTTP_X_FORWARDED_FOR استفاده میکرد مشکل جدی امنیتی داره. چون هدرها رو میشه براحتی جعل کرد.
اما REMOTE_ADDR که از آرایهء _SERVER میگیریم فرق میکنه؛ چون اون مستقیما از آدرس سوکت متصل شده گرفته میشه، نه از هدرهای درخواست HTTP. سوکت TCP متصل شده هم که اگر آدرس صحیح نبوده باشه متصل نمیشده (هرچند ممکنه آدرس مورد نظر آدرس یک پراکسی باشه).

eshpilen
جمعه 05 اسفند 1390, 09:55 صبح
پراکسی چطور این کار رو انجام میده؟ آیا با زبان های برنامه نویسی دیگه میشه اینکار رو کرد یا اصلا امکانش نیست؟ منظورم جعل آی پی اه!!!
امکانش در HTTP تقریبا وجود نداره.
اینکه میگیم تقریبا چون اگر فردی دسترسی بیشتری به جاهای حساسی از مسیر ارتباطی بین دو طرف داشته باشه میتونه این کار رو بکنه، اما طبیعتا افراد معمولی چنین دسترسی ای ندارن، مگر اینکه مثلا سیستم هدف روی LAN ای باشه که خودتون هم در اون هستید.
پراکسی هم آدرس جعلی ست نمیکنه، بلکه آدرس خودش رو میده، یعنی بعنوان یک واسطه بین شما و سرور مقصد عمل میکنه. مثل اینکه شما یک نفر رو بجای خودتون بفرستید تا با هویت خودش کارهایی رو برای شما انجام بده؛ اما اگر شما ماموری برای این کار نداشته باشید مجبورید خودتون برید و برای انجام اون کارها شناسنامه و کارت ملی خودتون رو ارائه کنید، و طبیعتا اگر بخوان بعدا چیزی رو برای شما ارسال کنن نیاز دارید تا آدرس واقعی خودتون رو بدید، چون اگر آدرس صحیح ندید طبیعتا پاسخ و محموله مورد نظر رو دریافت نخواهید کرد.
یک پراکسی مثل مامور یا دوست شماست که بجای شما عمل میکنه. اطلاعات هویتی خودش رو میده و آدرس خودش رو هم میده. شما ازش میخواید بره فلان جا و فلان کار رو انجام بده و بعد محمولهء دریافت شده رو ازش دریافت میکنید.
البته باید توجه داشت که ممکنه یک پراکسی اینترنتی هدرهایی رو ست کنه که IP واقعی شما رو فاش میکنن، ولی بهرحال سمت سرور نمیشه به این هدرها اعتماد کرد چون قابل جعل هستن. ولی اگر نمیخواید هیچ ردی از شما باقی بمونه باید دنبال سرورهای پراکسی یا برنامه هایی بگردید که اطلاعات هویتی شما رو منتقل نمیکنن (یعنی باید تحقیق/تست کنید تا مطمئن بشید که این کار رو نمیکنن). منظورم از برنامه ها چیزهایی مثل هیتلرشکن است که البته مکانیزم عمل اونها هم در اساس خودش باز همین سیستم پراکسیه.

eshpilen
جمعه 05 اسفند 1390, 10:27 صبح
من اینو اینجا گذاشتم ... نمیدونم چرا کسی جواب نداد ... هنوز گیرم سرش ... با برنامه نویسی سوکت نوشته شده

http://barnamenevis.org/showthread.php?327501-%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%A2%DB%8C-%D9%BE%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A7%D9%81%D8%B2%D8%A7%DB%8C%D8%B4-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF&highlight=%D8%A7%D9%81%D8%B2%D8%A7%DB%8C%D8%B4+%D8 %A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF
این موضوع به این تاپیک ربطی نداره؛ چون اون برنامه IP رو جعل نمیکنه (گفتیم که کلا هم تقریبا غیرممکنه).

MostafaEs3
جمعه 05 اسفند 1390, 14:02 عصر
//////////