This is a very brief lesson on the history of the Vietnam war. It gives students not only an idea of what was going on overseas, but also what was going on at home.
This gives students a very brief history of the Vietnam war. It not only gives them insight to what was going on overseas, but also what was going on at home.
This is a very brief lesson on the history of the Vietnam war. It gives students not only an idea of what was going on overseas, but also what was going on at home.
This gives students a very brief history of the Vietnam war. It not only gives them insight to what was going on overseas, but also what was going on at home.
Checklista med 13 punkter för att de filer som skickas till användare av webben ska vara både användbart och gå snabbt att ladda hem.
Bland utmaningarna som är orsaken till denna checklista är lagstiftning om diskriminering av de med funktionsnedsättning, att webben måste fungera på tveksam internetuppkoppling men inte minst att det är god sökmotoroptimering (SEO) att en webbplats laddar snabbt.
4. Applikationstestning
• Kartlägga kommunikationsflöden
– Vad skickas?
• Direkta eller indirekta referenser
• ”Hemlig” data?
• ”Icke editerbar” data?
– Var sker datavalidering?
• På serversidan eller klientsidan?
– Hur ser datavalidering ut?
• Vitlistebaserad eller svartlistebaserad?
5. Vanliga misstag
• Direkta referenser, typiska konsekvenser:
– Path traversal
– Remote file inclusion
– Byta användarkonto
• Datavalidering på klientsidan
– Diverse injection-brister: XSS, SQLi etc.
– Ändra priset på en vara / summan på betalning
• Svartlistebaserad filtrering
– Alltför snäv lista (släpper igenom för mycket). UTF-7? Overlong UTF-8?
• Fokus på filtrering istället för korrekt transcoding
– Injection-brister är egentligen fel i transformering av data mellan olika
format-kontexter.
7. WebSockets
• Paradigmskifte i HTTP-världen.
– Verktyg för att analysera HTTP-trafik (proxies)
stöder inte WebSockets (än).
– Oftast inte bara en quickfix, eftersom det är en
helt annan modell.
9. Klientstöd, forts
• Javascript API definierat av W3C, dock bara ’native’ support i vissa
browsers.
• Både Flash och Silverlight har stöd för råa sockets, så det kräver inget nytt i
’core’ för att prata websockets. Det finns olika ramverk för att skapa
implementera javascript-WebSockets via Flash
– gimite/web-socket-js
– jWebSocket/FlashBridge
• Eller Silverlight:
– http://40interop.ep.interop.msftlabs.com/html5/ClientBin/Microsoft.ServiceM
odel.Websockets.xap
– http://40interop.ep.interop.msftlabs.com/html5/js/jquery.slws.js
• WebSockets finns även för IE med CromeFrame
• Således kan websockets användas på de flesta browsers som stöder
Flash/Silverlight/JavaFX(?)
15. Analys av WebSocket-kommunikation
Applikation • Man kan använda
Javascript javascript-debugger för
Initierar Websocket att påverka applikationen
Browser-API • Man kan koppla in sig
Javascript mellan applikationen och
Browser-API
Hanterar WebSocket
TCP- • Man kan övervaka och
OS modifiera trafiken på TCP-
proxies nivå
Sköter nätverkskommunikation på låg nivå
17. Javascript tampering
• När applikation skickar data, kallas send()-
metoden:
socket.send(’foo’);
• Implicit kallas på send()-metoden i ”prototyp”-
objektet, (ungf superklassen).
• Det går att skriva över send i prototypen:
18. Javascript tampering
• När data tas emot är det svårare, eftersom onMessage-
metoden sitter på instansen, inte i en supertyp.
• Man kan dock skriva över hela WebSocket-konstruktorn
och ’minera’ den
19. Att nämna
• Nackdel: Koden måste köras innan någon
websocket-uppkoppling gjorts för att receive()
skall kunna fungera
• Nackdel: Fungerar bara för javascript websockets,
ej för Silverlight eller Flash
• Fördel: går att lägga som bookmarklet, bör vara
oberoende av browser
• Finns även packeterat som en plugin till chrome
21. TCP tampering
• Lura datorn att koppla upp sig till en (tcp-)proxy
– Ändra i /etc/hosts eller motsv
– Använda Mallory som default gateway
• Proxyn vidarebefordrar all data till den korrekta hosten
• Fördelar: Oberoende av klientteknik (js, silverlight,
flash)
• Nackdelar: väldigt låg nivå (bits & bytes)
• Exempel: Mallory, Hatkit proxy, em-proxy (?), socat (?)
etc…