انجمن‌های فارس وب

نسخه کامل: Header-Based-Exploitation
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
وقتی شما از یک وبسایت دیدن میکنید ، مرورگر شما یک سری اطلاعات به سرور میفرسته. به طور مثال یک چیزی شبیه این:

GET / HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword,
        application/x-shockwave-flash, */*
Accept-Language: Fa
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Media Center PC 3.0; .NET CLR 1.0.3705)
Host: www.Un3ecure.net
Referer: n0thing
Connection: keep-alive

و سرور هم در جواب یک سری اطلاعات رو برای شما میفرسته:

HTTP/1.1 200 OK
Date: Thu, 11 Dec 2003 23:38:49 GMT
Server: Apache/1.3.19 (Unix)  (SuSE/Linux) PHP/4.3.0
Connection: close
Content-Type: text/html

اینا فقط مثال هستند و ممکن است که " هدر" های بسیار متفاوتی از این ها نیز مبادله بشن.اما برای اینکه متوجه بشید کافی هستند.
وقتی مرورگر هدر ها رو میفرسته از سرور سوال میکنه که صفحه index  رو در دایرکتوری ریشه از سایت  www.simorgh-ev.com  قرار دراه رو به ما بده.
مسئله مهم اینه که مرورگر  همیشه اسم خودش رو(User-Agnet:…)  و اینکه ما از کجا(Refere:…) به سرور وصل میشم رو میگه!!
اما قسمت خوبش اینه که ما میتونیم این اطلاعات رو تغییر بدیم!(مثلا میتونید از ابزار proxomitron  استفاده کنید)
خب، ما اصلا چرا باید این اطلاعات رو تغییر بدیم ، اصلا چه سودی واسه ما داره؟؟
اولین جوابی که به ذهن شما میرسه اینه که ما میتونیم اطلاعات رو راجع به خودمون مخفی نگه دراریم.دومیش هم اینه که ، ما میتونیم کد ها رو در وب سرور به اجرار در بیاریم.در بساری از صفحات و اسکریپت هایی که شما از اونا بازدید میکنید ، IP  شما ، اطلاعت مرورگر ، محل رجوع و خیلی چیزای دیگه لاگ میشن و به صورت نمودار و یا نوشته های معمولی در اختیار مدیر قرار میگرن. اما نکته جالب توجه اینه که اونا معمولا از چک کردن هدر ها برای کد های مخرب می پر هیزن!!!
اما چرا؟
خب برای فهمیدن چرا به این یک نگاه بندازید:

GET / HTTP/1.0
Accept: ...
Accept-Language: de
User-Agent: <!--#virtual include="afile"-->          ==>SSI
Host: www.bright-shadows.net
Referer: <?php fopen(...)... ?>                      ==>PHP
Connection: keep-alive

(البته SSI  ها هم جای بحث زیادی دارن که من حوصله توضیح ندارم)
این کد ها میتونن شما رو برای اجرا کردن کد های خودتون راهنمایی کنن ، فقط یکم دقت میخواد.
به طور مثال این کده اطلاعات رو میگیرین( بدون فیلتر کردن) و اونا رو در php  فایل شما قرار میده و کد های php  شما  اجرا میشن وقتی که لاگ ها دیده میشن! یه چیزی تو همین مایه ها برای کد های SII  شما پیش میاد. کد های دیگری که میتونید در لاگ ها استفاده کنید:

       .- Java
        .- Active X
        .- Python
        .- Perl
        .- VBscript
        .- ASP
        .- JSP

اگر شما یک را برای اجرا کردن کدهای PHP ، SII  و پرل خود پیدا کنید ، میتونید هر کاری که میخواهید انجام بدید!!
با اکسپلویت کردن هدر ها خیلی کارا میتونید بکنید.
ین مقاله آموزشی برای اولین بار نوشته شده و منبعی جز Bonyanalam Forums نداره ، لطفا" با کپی های بدون منبع مطالب ، زحمات نویسنده ی اون مطلب رو خدشه دار نکنید .

ممنون از این همه زحمتی که می کشید ، مطمئنم اگه اعضای غیر فعال انجمن ها مثل شما باشن ، می تونیم طوفان فکری ایجاد کنیم و سطح معلوماتمون رو بالا ببریم .

فکر می کنم این مبحث به برنامه ی proxomitron ختم می شه ، می شه توضیحات بیشتری در موردش بدین ؟
اگه ممکنه ، در پستی جداگانه در مورد اکسپلویت کردن (جهت افزایش آگاهی) هم توضیحی بدین.

از اونجائی که انجمن ها محلی برای پرسش و پاسخه بهتره این فرهنگ تو انجمن خودمون هم جا بیافته ، در پست های قبلی سوالاتی ازتون پرسیدم که متاسفانه هنوز جواب ندادین و همچنان منتظر جوابم !

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

<?
   
/*
   -----------------------------------------
   Header Sender
   [Unkn0wn Security Researcher]
   C0de by Snake
   Snake[dot]Apollyon[at]Gmail[dot]com
   www.Unkn0wn.co.sr
   www.saw13.com
   -----------------------------------------
   */
   //N0w Start
error_reporting(0);
set_time_limit(0);
echo 
"<br>Welcome to hell<br>
<form name='Header' method='POST' action=''>
Host Name: <input type='text' name='host'><br>
Get: <input type='text' name='get'><br>
User-Agent: <input type='text' name='ua'>
<input type='submit'  value='Send'>
</form>"
;

$host $_POST['host']; 
$get $_POST['get'];
$ua $_POST['ua'];
$fp fsockopen("$host"80$errno$errstr30);
if (!
$fp) {
    echo 
"$errstr ($errno)<br />\n";
} else {
    
$out "GET /$get HTTP/1.1\r\n";
    
$out .= "Host: $host\r\n";
    
$out .= "Connection: Close\r\n\r\n";
    
$out .= "User-Agent:Opera/9.02 (Windows NT 5.1; U; en).$ua\r\n";
    
    
fwrite($fp$out);
    while (!
feof($fp)) {
        echo 
fgets($fp128);
    }
    
fclose($fp);
}
?>

با مقدار دهی به متغییر out میتونید ، هدر های بیشتری رو هم تغییر بدید.
البته همونطور که گفتم همیشه و بر روی همه سرور ها نمیشه از این روش جواب گرفت.

مرجع آدرس ها