Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 分析
- 配置分析环境:整体系统架构框架
- 业务流程:涉及模块内容,业务处理
- 分析程序架构:MVC 第三方架构 插件
- 工具自动化分析:通过工具中的正则或者漏洞匹配
- 人工审计:结合工具 验证漏洞 排除误报
- 对每个方法跟踪,从jsp到后端 dao层 数据库 是否过滤
- 整理审计报告 结合修复建议进行整改
- war包结构
- 中间件服务器对war包进行解析 拿到war包需要反编译进行解析
- WebContent (站点根目录)
- |---META-INF (META-INF文件夹)1
- | |---MANIFEST.MF (MANIFEST.MF配置清单文件)
- |---WEB-INF (WEB-INF文件夹)
- | |---web.xml (站点配置web.xml ) 2【strut2 过滤器 第三方架构】
- | |---lib (第三方库文件夹)
- | | |---*.jar (程序需要的jar包) 【自己封装和第三方jar】
- | |---classes (class文件目录)3【主要逻辑 业务判断 转换为java文件】
- | |---...*.class (class文件)【主要】
- |---<userdir> (自定义的目录) 【前端】
- | |---*.jsp,*.js,*.css (自定义的目录资源文件)
- |---<userfiles> (自定义的目录资源文件)
- JAVA内置对象
- 无需声明直接使用【着重关注】
- request |获取后直接拿来使用
- response |响应对象
- pageContext |jsp中直接写Java文件 使用前是否有判断 校验 <> %
- session |对话
- application
- out |输出
- config
- page
- exception
- JAVA中危险函数
- getParameter() |从request中直接获取这个函数,就要关注参数后续使用的流程,在没有经过判断过滤的情况直接往数据库里插数据,或者直接查询数据库,就存在风险
- getcookies() |直接获取会话,如果只是做对比 校验,那么可能不存在风险;如果直接保存到数据库,没有进行判断,那么可能存在风险
- getQueryString() |sql语句执行的时候 get的字符串
- getheaders() |数据包头
- Runtime.exec() |直接执行系统命令,没有进行判断 容易RCE
- logger.info |日志输出,容易产生敏感信息输出,信息泄露,包括 try catch 异常输出
- 可能存在高危风险的方法:
- password |明文密码 泄露
- upload 文件上传
- download 文件下载
- Web架构
- 前端子系统
- 基础技术:HTML Js CSS 每个标签代表的意思
- 开发架构:jQuery
- 后台子系统
- 基础技术:JavaServlet java基础语法
- 开发框架:Struts2 ,Spring ,Hibernate(model层)
- 应用服务器:Tomcat,nigix, jboss
- MVC架构
- controller:控制端,后台会将数据传给控制器,控制器传给model
- model:参数要可持续性的操作(oracle:持久化)
- View:返回给用户 HTML jsp响应给用户
- view层一般是跟用户交互的,用户再view层操作会发出http请求,http请求携带数据到controller层,controller层调用model进行业务处理,并把数据或处理结果返回给view,返回的信息就是http的响应,view拿到返回的数据是也没页面渲染
- 关于如何高效率地发现尽可能多的严重漏洞,主要从三方面入手:
- 1、高效的引擎;
- 2、高效的规则;
- 3、高效的流程(比如如何切入公司的上线流程,代码库和研发人员是否直接可以对应。如不能,发现了漏洞,联系修复的流程就会效率很低),在业务量大的情况下,根据以往经验,流程往往比技术更重要。扫描代码的工具常见的基于规则和静态语法树。
- WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。并且这些元素可以配置在文件中的任意位置。
- 加载过程顺序如下:
- 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取listener>和<context-param>两个结点。
- 紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
- 容器将<context-param>转换为键值对,并交给servletContext。
- 容器创建<listener>中的类实例,创建监听器。
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement