长亭百川云 - 文章详情

CodeQL 获取SpringBoot应用的映射URL

楼兰学习网络安全

45

2024-07-13

一、背景描述

二、功能实现

    1、获取映射URL

    2、获取方法说明

三、用途

    1、用来梳理接口

    2、用来获取Source的入口URL
四、获取完整代码

一、背景描述

获取映射URL最开始是在实现XSS的检测与黑盒联动时想到的,发现问题后,继续寻找Source对应的映射URL。

当初搞定后第一时间将这个喜悦分享给了腿腿,腿腿告诉我58用CodeQL来梳理一个应用所有的接口,当时没什么感触,这几天感觉的确是个好用途,于是重构了一下这个功能。

除了获取方法的映射URL以外,我还增加了对这个方法说明的获取。

二、功能实现

1、获取映射URL

为了考虑扩展,在qll最上面可以手动配置实现映射功能的标注

先获取Method所处Controller的映射路径,增加了类中没有映射路径的兼容,没有时返回为空。

再用同样的姿势获取方法的映射路径

考虑到有些Controler的映射例如形如foo/,方法的映射路径是/bar,拼接后便是foo//bar,所以定义一个格式化的方法

然后进行拼接

2、获取方法说明

在获取方法说明时,考虑到有些项目使用了注释定义方法说明,有些项目使用了标注定义方法说明。

所以在qll最上面设置对标注的配置。

然后再获取时有限获取标注定义的方法说明(因为我发现有些地方即使用标注又使用了注释)

同样为了去除注释前面的/**以及后面的*/符号,定义一个格式化的谓词用来去除。

三、用途

1、用来梳理接口

2、用来获取Source的入口URL

如下所示,我在扫描XXE漏洞时,同时获取对应的入口URL。

而对于上面这种情况,则可以直接手写一个上传功能的HTML表单,进行XXE的黑盒验证。

四、获取完整代码

公众号回复【CodeQL 002】

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2