用友NC0day自助

g1870412862   ·   发表于 2023-04-15 18:19:57   ·   代码审计

用友环境安装

参考csdn文章:

  1. https://blog.csdn.net/weixin_38766356/article/details/103983787?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%94%A8%E5%8F%8Bnc&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-5-103983787.nonecase&spm=1018.2226.3001.4187

安装包:

https://pan.baidu.com/s/1sl7kj0ePHrJG3MeITABwyg?pwd=w2pq 提取码: w2pq

NC Servlet Http接口

拿到代码之后,我们可以发现有很多的包,而且都是jar包,给审计的时候造成了很大的麻烦,所以我们先从Servlet的实现下手。

访问地址:ip+port/service/组件名
1.实现IHttpServletAdaptor接口,实现doAction方法,发布后代理类会且只会访问这个方法。
2.发布为组件(upm),设置组件名,将accessProtected=“false”,如果为ture,将会进行token验证。

NPM文件

```<?xml version=’1.0’ encoding=’UTF-8’?>

<module name="so">
<public>
<component name="CrmNcSynServlet" accessProtected="false" remote="false" singleton="true" tx="NONE"><!-- supportAlias="true"-->
<implementation>nc.crm.syn.servlet.CrmNcSynServlet</implementation>
</component>
</public>
</module>```

直接看webapps中的web.xml

url中/servlet/后面会交给NCInvokerServlet处理

查看invokerServlet代码

获得请求传入路径后,截取/~后的字符串,为moduleName、serviceName赋值,然后getServiceObject(moduleName, serviceName)调用。

TIPs:以下写法都能路由到同一个servlet有时候waf规则限制了~可以拿来绕过。

  1. /ic/nc.bs.framework.mx.monitor.MonitorServlet
  2. /servlet/~ic/MonitorServlet
  3. /servlet/monitorservlet

Nday复现

module下有超级多的文件夹,这便为挖0day创造了无限的可能,先用一个nday举例,/servlet/~baseapp/nc.document.pub.fileSystem.servlet.DownloadServlet

根据路由找到代码,发现直接将post数据进行了反序列化,而用友又是有cc依赖的,所以直接cc6打过去就行了。

0day自助食用姿势

其实我们可以不用传统的审计方式,codesql之类的,直接fuzz(批量反编译这些jar包,然后找readObject,cc6的poc直接打过去,看自己搭建的环境有没有弹计算机就行了)。

这边直接把baseapp下所有的jar拖到jd-gui反编译,找readObject,直接就找到了一个

构造路由/servlet/~baseapp/nc.file.pub.imple.FileUploadServlet,poc验证一下

数据包返回500,但是服务端已经弹出了计算器

利用

以前的几个nday都是利用返回包的序列化数据构造回显,其他的得盲打,我个人是喜欢写shell,这样不出网的机器也能用。现在ncupload路径下的jsp马不能直接用,但是用天蝎的jspx可以。

在有设备防护的情况下,内存马会比较好,目前正在写wsmemshell的poc。

参考文章

https://lfysec.top/2021/09/10/%E7%94%A8%E5%8F%8BNC%E6%8C%96%E6%8E%98%E7%AC%94%E8%AE%B0/
```

用户名金币积分时间理由
Track-聂风 90.00 0 2023-04-18 14:02:29 活动奖励
Track-聂风 90.00 0 2023-04-18 14:02:25 投稿奖励

打赏我,让我更有动力~

0 条回复   |  直到 2023-4-15 | 1624 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.