0x01 前言
某次审计过程记录,也是比较常见的一个系统,懂得都懂。
0x02 分析与利用
权限绕过:
通过关键字关联到过滤器。
通过之前黑哥文章中提到的jar包定位工具,定位存在于哪个jar包,这里也贴一下代码吧。
import os
import zipfile
import sys
# 确保有足够的命令行参数传入
if len(sys.argv) < 3:
print("Usage: python tqu.py <directory_to_search> <text_to_search>")
sys.exit(1)
# 第一个命令行参数是要搜索的目录
directory_to_search = sys.argv[1]
# 第二个命令行参数是要搜索的文本
text_to_search = sys.argv[2]
# 遍历目录
for foldername, subfolders, filenames in os.walk(directory_to_search):
for filename in filenames:
if filename.endswith('.jar'):
# 构造完整的文件路径
full_path = os.path.join(foldername, filename)
try:
# 打开JAR文件
with zipfile.ZipFile(full_path, 'r') as jarfile:
# 遍历JAR文件内的每个文件
for name in jarfile.namelist():
# 打开JAR文件内的文件
with jarfile.open(name) as file:
if text_to_search.encode() in file.read():
print(f"Found '{text_to_search}' in {full_path}")
break # 找到文本后跳出循环
except zipfile.BadZipFile:
print(f"Bad zip file: {full_path}")
这里请看图注释。
满足框选中的任一路径接../即可,使其为false。
满足框选中的任一路径接../即可,使其取反后为false。
文件上传:
一样搜索上传相关关键字。
在进入大if之前,这里需要满足safariORFoxType不为空,内容加密后大于8且为true,以及时间不为空且datams参数的内容要满足减当前时间后<=120000L。
这里进来第一眼看到一个绝对路径的文件删除。
构造请求包复现,成功删除。
继续往下按走当down不为true时,会走进下面大else进入上传逻辑。
new file相关参数,以及上传内容均可控。
但有个问题,是需要绝对路径写入的,但这里恰好就泄露了网站路径。
构造请求包复现,成功上传。
0x03 小密圈
最后送你一张优惠券,欢迎加入小密圈,好朋友。
原文始发于微信公众号(小黑说安全):记一次某HR管理系统漏洞挖掘
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论