JAVA代码审计2个小tips

1、lib文件过多时,快速定位lib代码文件

如已知java-callgraph找出的类名
但不知道在哪个lib文件时可利用该工具快速获取到相关lib,适用于大量不知道lib文件的情况。
SearchClassInJar.jar
image.png

2、快速定位api路由思路

静态:

springmvc框架

老生常谈的东西了
IDEA的RestfulTool插件,一键化提取spring mvc框架的api路由。
image.png
image.png
一键化提取相关API
然后crtl+all即可
image.png

struts2框架:

这个框架的静态路由提取外面就讲的比较少了,因为不同的struts2 路由写法可能大概都不相同。
但是经过如果有深入去实际研究的话会发现基本上都是
命名空间/类名,函数,特定构造方法进行构造的路由。
因此我们可以有限提取出相关的类名,方法名。而后按照固定格式去构造。

如这里以codeql构造以例
采用这个方法进行构造一个完整的路由。

import java

from RefType c, Callable cf
where 
c.getName().toLowerCase().regexpMatch(".*action") and
cf = c.getAMember() and
not c.getName().regexpMatch(".*<.*>.*")
select c+".do?method="+cf

如果不会用codeql也可采用,提取出相关的类名,方法
而后转个python脚本,进行特定构造即可。
image.png

非静态(代码可运行):

强烈推荐这个项目,如果代码可跑起来,可直接调用该router-router去获取路由。
https://github.com/kyo-w/router-router

原理:

https://xz.aliyun.com/t/12651
调试技术可以获取一个jvm

SocketAttachingConnector socketAttachingConnector = new SocketAttachingConnector();
Map<String, Connector.Argument> argumentHashMap = socketAttachingConnector.defaultArguments();
argumentHashMap.get("hostname").setValue("127.0.0.1");
argumentHashMap.get("port").setValue("5005");
argumentHashMap.get("timeout").setValue("3000");
VirtualMachine attach = socketAttachingConnector.attach(argumentHashMap);

然后基于jvm中去获取相关中间组件的路由即可

使用条件:
  • Java JDK11
  • 网络端口默认9090

image.png
启动端口后
image.png
连接然后启动路由即可
然后调试完成后即可自动化获取到路由了93f0106a1a76ed3630dbf114ba91efcc.png
d53c3fe6080d6f2aa986a4b7b0633da3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/602647.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内容安全(AV)

防病毒网关&#xff08;AV&#xff09;简介 基于网络侧 识别 病毒文件&#xff0c;工作范围2~7层。这里的网关指的是内网和外网之间的一个关口&#xff0c;在此进行病毒的查杀。在深信服中就有一个EDR设备&#xff0c;该设备就是有两种部署&#xff0c;一个部署在网关&#xf…

[Kubernetes] KubeKey 部署 K8s v1.28.8

文章目录 1.K8s 部署方式2.操作系统基础配置3.安装部署 K8s4.验证 K8s 集群5.部署测试资源 1.K8s 部署方式 kubeadm: kubekey, sealos, kubespray二进制: kubeaszrancher 2.操作系统基础配置 主机名内网IP外网IPmaster192.168.66.2139.198.9.7node1192.168.66.3139.198.40.17…

【竞技宝】英超:曼联4球惨败水晶宫,滕哈赫下课倒计时

曼联在本轮客场挑战水晶宫,这场比赛对于红魔来说就是不折不扣的复仇之战。因为,曼联曾经主场输给过水晶宫。所以,曼联再次遇到水晶宫,自然是憋着一口气要复仇。只是,曼联重压之下彻底迷失,被水晶宫4比0击溃。或许赛前有部分红魔球迷,会预料到曼联可能会输球,但是他们绝对不会想…

【Golang】VSCode进行GO的调试

原来的launch.json {"version": "0.2.0","configurations": [{"name": "Golang","type": "go","request": "launch","program": "${workspaceFolder}","…

[QNX] BSP 网络性能优化:调优io-pkt和ClockPeriod提升网速

0 概要 本文介绍如何在QNX系统上优化网络性能&#xff0c;主要通过调整io-pkt和ClockPeriod参数来实现。通过优化&#xff0c;网络吞吐量可以得到显著提升。 1 优化方法 1.1 调整io-pkt的mclbytes参数: io-pkt是QNX系统中常用的网络协议栈&#xff0c;其mclbytes参数指定了…

LearnOpenGL(八)之光照

一、冯氏光照模型 冯氏光照模型(Phong Lighting Model)主要由环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照这三部分组成&#xff0c;各效果如下&#xff1a; 1、环境光照 即使在黑暗的情况下&#xff0c;世界上通常也仍然有一些光亮&#xff08;月亮、远处的光&#…

只允许内网访问时,如何设置hosts

1、Hosts文件简介 hosts文件是一个没有扩展名的计算机文件&#xff0c;用于将主机名与对应的 IP 地址关联起来。在操作系统中&#xff0c;hosts文件通常用于在本地解析域名&#xff0c;以便将域名映射到特定的IP地址。这个文件可以用来屏蔽广告、加速访问特定网站、解决DNS解析…

微服务项目实战-黑马头条(十三):持续集成

文章目录 项目部署_持续集成1 今日内容介绍1.1 什么是持续集成1.2 持续集成的好处1.3 今日内容 2 软件开发模式2.1 软件开发生命周期2.2 软件开发瀑布模型2.3 软件的敏捷开发 3 Jenkins安装配置3.1 Jenkins介绍3.2 Jenkins环境搭建3.2.1 Jenkins安装配置3.2.2 Jenkins插件安装3…

第十四届蓝桥杯大赛软件赛省赛(Python大学A组)

2023年蓝桥杯 省赛真题Python大学A组 试题A&#xff1a;特殊日期 试题B&#xff1a;分糖果 试题C&#xff1a;三国游戏 试题D&#xff1a;平均 试题E&#xff1a;翻转 试题F&#xff1a;子矩阵 试题G&#xff1a;阶乘的和 …

张大哥笔记:先挣小钱,再赚大钱

先挣小钱&#xff0c;再赚大钱&#xff01;挣小钱&#xff0c;无需向上社交&#xff01; 现在很流行向上社交&#xff0c;反正只要前面加上一个向上&#xff0c;就感觉很牛逼的样子&#xff0c;有必要吗&#xff1f;我认为是没有必要的。 人活着不是为了社交&#xff0c;而是找…

大模型日报|今日必读的 4 篇大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.清华、智谱AI 团队推出无限超分辨率模型 Inf-DiT 近年来&#xff0c;扩散模型在图像生成方面表现出了卓越的性能。然而&#xff0c;由于在生成超高分辨率图像&#xff08;如 40964096&#xff09;的过程中内存会二…

银河麒麟QT项目打包详细教程

银河麒麟QT项目打包详细教程 一、QT项目打包 下载linuxdeployqt&#xff0c;下载地址&#xff1a;https://github.com/probonopd/linuxdeployqt/releases 安装Linuxdeployqt 2.1 为了安装方便&#xff0c;将下载下来的文件名称改短些 mv linuxdeployqt-6-x86_64.AppImage lin…

数据分析从入门到精通 1.numpy剑客修炼

会在某一瞬间突然明白&#xff0c;有些牢笼是自己给自己的 —— 24.5.5 一、数据分析秘笈介绍 1.什么是数据分析 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来&#xff0c;总结出所研究对象的内在规律。使得数据的价值最大化 案例&#xff1a; 分析用户的消…

webpack5基础和配置

初步体验webpack打包 webpack是一个静态资源打包工具。 它会以一个或多个文件作为打包的入口&#xff0c;将我们整个项目所有文件编译组合成一个或多个文件输出出去。 输出的文件就是编译好的文件&#xff0c;就可以在浏览器段运行了。 1.初始化最简单的一个目录文件&#xff…

以steamDB的好评排名为引 - 详解wilson评分算法

写在前面 中文互联网上缺少关于二项分布估计的知识&#xff0c;而对二项分布参数如何准确且合理的估计的技巧&#xff0c;实际上在商业数据分析领域用处极多。尤其是在互联网企业&#xff0c;算法排名的依据很大程度要依赖这个统计量。我试图抛砖引玉&#xff0c;以steamDB的评…

语言模型测试系列【7】

语言模型 文心一言星火认知大模型通义千问豆包360智脑百川大模型腾讯混元助手Kimi Chat商量C知道 今天看CSDN文章&#xff0c;看到了斐波那契数列这个有趣的数列计算&#xff0c;然后就在文心一言中对答了一波&#xff0c;给的答案很完整&#xff0c;而且给出来python的实现代…

WDW-10B微机控制电子万能试验机技术方案

一&#xff0e;设备外观照片&#xff1a; 项目简介&#xff1a; 微机控制电子式万能试验机是专门针对高等院校、各种金属、非金属科研厂家及国家级质检单位而设计的高端微机控制电子式万能试验机、计算机系统通过全数字控制器&#xff0c;经调速系统控制伺服电机转动&#xff…

证照之星是什么软件 证照之星哪个版本好用?证照之星支持哪些相机 证照之星XE免费版

许多人都需要使用证件照&#xff0c;为了满足这一需求&#xff0c;人们会使用照相机、手机、电脑等工具进行拍摄。除此之外&#xff0c;市面上还存在专门的证件照拍摄软件&#xff0c;比如证照之星。那么&#xff0c;各位小伙伴是否了解证照之星哪个版本好用&#xff0c;证照之…

嵌入式RTOS面试题目

用过哪些嵌入式操作系统&#xff1f;使⽤RTOS和裸机代码开发有什么区别&#xff08;优缺点&#xff09;&#xff1f; 之前的⼀个项⽬是采⽤裸机代码开发的&#xff0c;写起来还⾏&#xff0c;通过状态机来管理业务逻辑和各种外设。 但是随着外设的增加&#xff0c;任务之间的…

【WEB前端2024】简单几步制作web3d《萌宠星球》智体节点模板(2)

【WEB前端2024】简单几步制作web3d《萌宠星球》智体节点模板&#xff08;2&#xff09; 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体…