专栏名称: 红队蓝军
一群热爱网络安全的人,知其黑,守其白。不限于红蓝对抗,web,内网,二进制。
今天看啥  ›  专栏  ›  红队蓝军

Ofcms1.1.3版本审计

红队蓝军  · 公众号  · 互联网安全  · 2024-09-09 18:00
    

主要观点总结

文章介绍了关于越权重置密码、SQL注入漏洞、文件上传漏洞、模板注入以及XML注入等多种漏洞的复现及代码分析。

关键观点总结

关键观点1: 越权重置密码漏洞

通过修改数据包中的user_id值,可以成功修改管理员密码。控制层中的respwd函数没有进行足够的权限校验,导致越权修改任意用户密码。

关键观点2: SQL注入漏洞

通过输入特定的SQL语句,可以成功爆出数据库名。预编译的SQL语句因为整个语句传入,语法结构完全由用户控制,导致预编译不起作用,存在SQL注入风险。

关键观点3: 文件上传漏洞

通过修改数据包中的dirs和file_name参数,可以上传恶意文件。处理用户传入的路径和文件名时,没有进行过滤和验证,导致上传成功并可能被利用。

关键观点4: 模板注入漏洞

网站使用了freemarker作为模板语言,前端存在明显的模板注入特征,可能被攻击者利用进行模板注入攻击。

关键观点5: XML注入漏洞

通过上传含有XXE(外部实体)的jrxml文件,可以造成XXE漏洞,加载外部实体。处理jrxml文件时,没有进行过滤和验证,存在安全风险。


文章预览

越权重置密码: 漏洞 复现: 新增用户test密码:111111,并登录test用户 看见为test用户,点击修改密码,抓包,将user_id修改为1,则成功修改管理员密码 代码分析:  根据数据包找接口system/user 定位到控制层,找到方法respwd进行分析: 该函数先用获取数据包请求参数,并用equals方法进行一致性对比,失败返回,一致则进入下一层。 创建一个 Record 对象,用于封装待更新的用户信息。再次检查输入密码是否为空,使用 SHA-256 哈希算法对旧密码进行加密,并将其转换为十六进制字符串表示。  并用record对象封装user_id值(此处user_id值由用户传入,为进行任何权限校验,直接用作修改对象的标识符)。 将fengzhuanghaoderecord对象传入,并调用 Db.update() 方法更新数据库表 AdminConst.TABLE_OF_SYS_USER 中用户的密码,由此造成越权修改任意用户密码。 SQL注入漏洞:   漏洞 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览