freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

金和oa C6V3.0版本SQL注入审计
2023-10-09 21:57:23

SQL注入

金和版本C6V3.0前年的n day,我在某处截了图下来并记了路径。

当时未深入C#的代码审计,没有深究漏洞成因。这几天整理去年的材料时发现手上正好有新版的金和OA备份文件,就简单来审计利用链。

漏洞利用路径截图:

XZ161A.png

代码审计

首先漏洞在jhsoft.mobileapp/AndroidSevices/HomeService.asmx/GetHomeInfo方法中,其中HomeService为Webservice文件

XZ1RnP.png

XZ1IhQ.png

在HomeService的GetHomeInfo方法中,传入了参数userID

首先在方法中stringBuilder新建了字符串常量池

XZ1Tpj.png

之后调用GetQuickUserInfo查询userID,传参为userCode
新建了object数组对象paraValues

XZ3ZND.png

再return抽象类ExecProcReDataTable,将参数procedureName和paraValues作为参数传入。

此处观察没有可控参数能拼接

XZ3VAO.png

走到下一步,进入if条件后满足quickUserInfo非空
XZ1Tpj.png
再下一步,由于quickUserInfo数组并不存在PhotoURL参数,text会为空

因此进入if判断MapAndFindFilebyRelativeFilePath方法

XZ3dvn.png

_FilePath为空,不满足_FilePath!=""
return值false

结束if判断,quickUserInfo.Dispoae()释放类quickUserInfo。

XZ3ags.png

因为text为空,进入if条件string userSex = GetUserSex(userID);

跟踪进入GetUserSex,此处就可以看到userId拼接进了SQL语句中进行处理,造成了SQL注入

XZ3U3j.png

string queryString = "select DossValue from dossiervalue a left join
users b on a.RegCode=b.userid where a.DossierFieldID='3' and
b.userid='" + userId + "'";

POC

最后它的利用POC如下,userID传入恶意SQL语句即可:

http://XXXX/c6/jhsoft.mobileapp/AndroidSevices/HomeService.asmx/GetHomeInfo?userID=payload

# 漏洞 # web安全 # 漏洞分析
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录