diff --git a/extensions/admin_ui/media/javascript/ui/panel/common.js b/extensions/admin_ui/media/javascript/ui/panel/common.js index 594237c78..d47e97c40 100644 --- a/extensions/admin_ui/media/javascript/ui/panel/common.js +++ b/extensions/admin_ui/media/javascript/ui/panel/common.js @@ -241,7 +241,8 @@ function genExistingExploitPanel(panel, command_id, zombie, sb) { viewConfig: { forceFit:true }, - + + // render command responses columns:[new Ext.grid.RowNumberer({width: 20}), { dataIndex: 'date', sortable: false, @@ -249,21 +250,27 @@ function genExistingExploitPanel(panel, command_id, zombie, sb) { html = String.format("
{0}
", value); html += '

'; for(index in record.data.data) { - result = $jEncoder.encoder.encodeForHTML(record.data.data[index]).replace(/<br>/g,'
'); - index = index.toString().replace('_', ' '); - // Check if the data is the image parameter and that it's a base64 encoded png. - if (result.substring(0,28) == "image=data:image/png;base64,") { - // Lets display the image + result = record.data.data[index]; + index = index.toString().replace('_', ' '); + + // Check for a base64 encoded image + var header = "image=data:image/(jpg|png);base64,"; + var re = new RegExp(header, ""); + if (result.match(re)) { + + // Render the image try { - base64_data = window.atob(result.substring(29,result.length)); - html += String.format('
', result.substring(6)); + var img = result.replace(/[\r\n]/g, ''); + base64_data = window.atob(img.replace(re, '')); + html += String.format('
', img.replace(/^image=/, '')); } catch(e) { - beef.debug("Received invalid base64 encoded image string: "+e.toString()); + console.log("Received invalid base64 encoded image string: "+e.toString()); html += String.format('{0}: {1}
', index, result); } + + // output escape everything else, but allow the
tag for better rendering. } else { - // output escape everything, but allow the
tag for better rendering. - html += String.format('{0}: {1}
', index, result); + html += String.format('{0}: {1}
', index, $jEncoder.encoder.encodeForHTML(result).replace(/<br>/g,'
')); } }