JEMBOT MAWOT Bypass Shell
/**
* Javascript file (for Joomla 3.1)
*
* @package Sourcerer
* @version 4.4.9
*
* @author Peter van Westen <peter@nonumber.nl>
* @link http://www.nonumber.nl
* @copyright Copyright © 2015 NoNumber All Rights Reserved
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
(function($) {
var $editor = null;
sourcerer_init = function() {
$editor = Joomla.editors.instances['source'];
try {
var string = $editor.getCode();
}
catch (err) {
setTimeout("sourcerer_init();", 100);
return;
}
var editor_textarea = window.parent.document.getElementById(sourcerer_editorname);
if (editor_textarea) {
var iframes = editor_textarea.parentNode.getElementsByTagName('iframe');
if (!iframes.length) {
return;
}
var editor_frame = iframes[0];
var contentWindow = editor_frame.contentWindow;
var selection = '';
if (typeof contentWindow.getSelection != "undefined") {
var sel = contentWindow.getSelection();
if (sel.rangeCount) {
var container = contentWindow.document.createElement("div");
for (i = 0, len = sel.rangeCount; i < len; ++i) {
container.appendChild(sel.getRangeAt(i).cloneContents());
}
selection = container.innerHTML;
}
} else if (typeof contentWindow.document.selection != "undefined") {
if (contentWindow.document.selection.type == "Text") {
selection = contentWindow.document.selection.createRange().htmlText;
}
}
selection = sourcerer_cleanRange(selection);
if (selection != '') {
$editor.setCode(selection);
}
}
string = $editor.getCode();
// Handle indentation
string = string.replace(/^\t/gm, ' ');
$editor.setCode(string);
var icon = $('span.icon-src-sourcetags');
if (string.search('{' + sourcerer_syntax_word) != -1) {
icon.addClass('icon-src-nosourcetags');
}
if (sourcerer_default_addsourcetags) {
sourcerer_toggleSourceTags(1);
}
icon = $('span.icon-src-tagstyle');
if (string.search(/\[\[/g) != -1 && string.search(/\]\]/g) != -1) {
icon.addClass('icon-src-tagstylebrackets');
}
};
sourcerer_insertText = function() {
var string = sourcerer_loadSyntax('php');
if (string.length) {
// remove spans in {source} tags
var spans = '(?:<span(?: [^>]*)?>|</span>)*';
regex = new RegExp('(\{)' + spans + '(/?)' + spans + '(' + sourcerer_syntax_word + '(?: [^\}]*)?)' + spans + '(\})', 'gm');
string = string.replace(regex, '$1$2$3$4');
} else {
string = $editor.getCode();
string = htmlentities(string);
}
// Set all code (with {source} tags) in courier
var regex = new RegExp('(?:<span(?: [^>]*)?>\s*)*(\{' + sourcerer_syntax_word + '(?: [^\}]*)?\})(?:\s*</span>\)*', 'gim');
string = string.replace(regex, '$1<span style="font-family: courier new, courier, monospace;">');
regex = new RegExp('(?:<span(?: [^>]*)?>\s*)*(\{/' + sourcerer_syntax_word + '\})(?:\s*</span>\)*', 'gim');
string = string.replace(regex, '</span>$1');
// remove any leftover linebreaks
regex = new RegExp('[\n\r]', 'gm');
string = string.replace(regex, '');
window.parent.jInsertEditorText(string, sourcerer_editorname);
if (typeof( window.parent['tinyMCE'] ) != "undefined") {
var ed = window.parent.tinyMCE.get(sourcerer_editorname);
if (ed) {
ed.hide();
window.parent.setTimeout(function() {
ed.show();
}, 5);
}
}
};
sourcerer_toggleSourceTags = function(add) {
var icon = $('span.icon-src-sourcetags');
var string = $editor.getCode();
var regex = new RegExp(preg_quote('{' + sourcerer_syntax_word + '}') + '\\s*', 'gim');
string = string.replace(regex, '');
regex = new RegExp('\\s*' + preg_quote('{/' + sourcerer_syntax_word + '}'), 'gim');
string = string.replace(regex, '');
if (!add && !icon.hasClass('icon-src-nosourcetags')) {
icon.addClass('icon-src-nosourcetags');
} else {
string = '{' + sourcerer_syntax_word + '}\n' + string + '\n' + '{/' + sourcerer_syntax_word + '}';
icon.removeClass('icon-src-nosourcetags');
}
$editor.setCode(string);
};
sourcerer_toggleTagStyle = function() {
var icon = $('span.icon-src-tagstyle');
var string = $editor.getCode();
string = string.replace(/\[\[/g, '<');
string = string.replace(/\]\]/g, '>');
if (!icon.hasClass('icon-src-tagstylebrackets')) {
string = string.replace(/<(\/?\w+((\s+\w+(\s*=\s*(?:"[\s\S.]*?"|'[\s\S.]*?'|[^'">\s]+))?)+\s*|\s*)\/?(--)?)>/gm, '[[$1]]');
string = string.replace(/<(!--[\s\S.]*?--)>/gm, '[[$1]]');
string = string.replace(/<\?(?:php)?([^a-z0-9])/gim, '[[?php$1');
string = string.replace(/( *)\?>/g, '$1?]]');
icon.addClass('icon-src-tagstylebrackets');
} else {
icon.removeClass('icon-src-tagstylebrackets');
}
$editor.setCode(string);
};
sourcerer_trim = function(string) {
string = string.replace(/^\s+/g, '');
string = string.replace(/\s+$/g, '');
return string.trim();
};
sourcerer_loadSyntax = function(syntax) {
var string = $($editor.frame).contents().find('body').html();
// clean IE enters and pre tags
var regex = new RegExp('\r', 'gm');
string = string.replace(regex, '');
regex = new RegExp('</?pre>', 'gim');
string = string.replace(regex, '');
string = sourcerer_cleanTags(string);
return string;
};
sourcerer_cleanTags = function(string) {
var regex = new RegExp('<span( [^>]*)?>', 'gim');
string = string.replace(regex, '<span>');
regex = new RegExp('<span>(>|<)</span>', 'gim');
string = string.replace(regex, '<XXX>$1</XXX>');
regex = new RegExp('</?span>', 'gim');
string = string.replace(regex, '');
regex = new RegExp('<(/?)XXX>', 'gim');
string = string.replace(regex, '<$1span>');
return string;
};
sourcerer_cleanRange = function(string) {
var regex = new RegExp('[\n\r]', 'gim');
string = string.replace(regex, '');
regex = new RegExp('(</p><p>|<p>|</p>|<br>|<br />)', 'gim');
string = string.replace(regex, '\n');
string = string.replace(/^\s+/, '').replace(/\s+$/, '');
regex = new RegExp('<img[^>]*src="[^"]*/tab.png"[^>]*>', 'gim');
string = string.replace(regex, ' ');
regex = new RegExp('</?[^>]*>', 'gim');
string = string.replace(regex, '');
regex = new RegExp('( | )', 'gim');
string = string.replace(regex, ' ');
regex = new RegExp('<', 'gim');
string = string.replace(regex, '<');
regex = new RegExp('>', 'gim');
string = string.replace(regex, '>');
regex = new RegExp('&', 'gim');
string = string.replace(regex, '&');
return string;
};
htmlentities = function(string, quote_style) {
tmp_str = string.toString();
if (false === ( histogram = get_html_translation_table('HTML_ENTITIES', quote_style) )) {
return false;
}
for (symbol in histogram) {
entity = histogram[symbol];
tmp_str = tmp_str.split(symbol).join(entity);
}
return tmp_str;
};
get_html_translation_table = function(table, quote_style) {
var entities = {}, histogram = {}, decimal = 0, symbol = '';
var constMappingTable = {}, constMappingQuoteStyle = {};
var useTable = {}, useQuoteStyle = {};
// Translate arguments
constMappingTable[0] = 'HTML_SPECIALCHARS';
constMappingTable[1] = 'HTML_ENTITIES';
constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
constMappingQuoteStyle[2] = 'ENT_COMPAT';
constMappingQuoteStyle[3] = 'ENT_QUOTES';
useTable = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';
if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
throw Error('Table: ' + useTable + ' not supported');
// return false;
}
// ascii decimals for better compatibility
entities['38'] = '&';
if (useQuoteStyle !== 'ENT_NOQUOTES') {
entities['34'] = '"';
}
if (useQuoteStyle === 'ENT_QUOTES') {
entities['39'] = ''';
}
entities['60'] = '<';
entities['62'] = '>';
if (useTable === 'HTML_ENTITIES') {
entities['160'] = ' ';
entities['161'] = '¡';
entities['162'] = '¢';
entities['163'] = '£';
entities['164'] = '¤';
entities['165'] = '¥';
entities['166'] = '¦';
entities['167'] = '§';
entities['168'] = '¨';
entities['169'] = '©';
entities['170'] = 'ª';
entities['171'] = '«';
entities['172'] = '¬';
entities['173'] = '­';
entities['174'] = '®';
entities['175'] = '¯';
entities['176'] = '°';
entities['177'] = '±';
entities['178'] = '²';
entities['179'] = '³';
entities['180'] = '´';
entities['181'] = 'µ';
entities['182'] = '¶';
entities['183'] = '·';
entities['184'] = '¸';
entities['185'] = '¹';
entities['186'] = 'º';
entities['187'] = '»';
entities['188'] = '¼';
entities['189'] = '½';
entities['190'] = '¾';
entities['191'] = '¿';
entities['192'] = 'À';
entities['193'] = 'Á';
entities['194'] = 'Â';
entities['195'] = 'Ã';
entities['196'] = 'Ä';
entities['197'] = 'Å';
entities['198'] = 'Æ';
entities['199'] = 'Ç';
entities['200'] = 'È';
entities['201'] = 'É';
entities['202'] = 'Ê';
entities['203'] = 'Ë';
entities['204'] = 'Ì';
entities['205'] = 'Í';
entities['206'] = 'Î';
entities['207'] = 'Ï';
entities['208'] = 'Ð';
entities['209'] = 'Ñ';
entities['210'] = 'Ò';
entities['211'] = 'Ó';
entities['212'] = 'Ô';
entities['213'] = 'Õ';
entities['214'] = 'Ö';
entities['215'] = '×';
entities['216'] = 'Ø';
entities['217'] = 'Ù';
entities['218'] = 'Ú';
entities['219'] = 'Û';
entities['220'] = 'Ü';
entities['221'] = 'Ý';
entities['222'] = 'Þ';
entities['223'] = 'ß';
entities['224'] = 'à';
entities['225'] = 'á';
entities['226'] = 'â';
entities['227'] = 'ã';
entities['228'] = 'ä';
entities['229'] = 'å';
entities['230'] = 'æ';
entities['231'] = 'ç';
entities['232'] = 'è';
entities['233'] = 'é';
entities['234'] = 'ê';
entities['235'] = 'ë';
entities['236'] = 'ì';
entities['237'] = 'í';
entities['238'] = 'î';
entities['239'] = 'ï';
entities['240'] = 'ð';
entities['241'] = 'ñ';
entities['242'] = 'ò';
entities['243'] = 'ó';
entities['244'] = 'ô';
entities['245'] = 'õ';
entities['246'] = 'ö';
entities['247'] = '÷';
entities['248'] = 'ø';
entities['249'] = 'ù';
entities['250'] = 'ú';
entities['251'] = 'û';
entities['252'] = 'ü';
entities['253'] = 'ý';
entities['254'] = 'þ';
entities['255'] = 'ÿ';
}
// ascii decimals to real symbols
for (decimal in entities) {
symbol = String.fromCharCode(decimal);
histogram[symbol] = entities[decimal];
}
return histogram;
};
preg_quote = function(str) {
return (str + '').replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!<>\|\:])/g, '\$1');
};
String.prototype.ltrim = function() { return this.replace(/^ */, ""); };
String.prototype.rtrim = function() { return this.replace(/ *$/, ""); };
String.prototype.trim = function() { return this.ltrim().rtrim(); };
})(jQuery);
xxxxx1.0, XXX xxxx