源码管理审计方法求教? 各位好!公司目前源码管理情况大致如下: 未建立源码管理制度; 同时使用SVN和CVS进行源码管理; 收购的子公司代码尚未统一管理。请教各位, 如何开展源码合规管理审计? 在这方面有什么好的经验或最佳实践? 总公司如何逐步上收并统一管理收购子公司的代码?目前我想到的内容如下: 搞清源码管理的范畴、管理职能; 源码维护、提交的流程; 源码管理系统的操作权限; 与被收购子公司签订的协议中与软件资产相关的条款。另外,在源码管理中有哪些需要特别注意的点?如权责分离等。非常感谢! XML外部实体注入漏洞,也称为XXE漏洞( XML External Entities (XXE) )。XML作为一种使用较为广泛的数据传输格式,很多应用程序都包含有处理XML数据的代码。默认情况下,许多过时的或配置不当的XML处理程序都会对外部实体进行引用。 如果攻击者可以上传XML文档或者在XML文档中添加恶意内容,通过易受攻击的代码、依赖项或集成,就能够攻击包含缺陷的XML处理程序。XXE漏洞的出现和开发语言无关,只要是应用程序中对XML数据做了解析,而这些数据又受用户控制,那么应用程序都可能受到XXE攻击。 既然XML可以从外部读取DTD文件,如果将路径换成另一个文件的路径,那么服务器在解析这个XML的时候就会把那个文件的内容赋值给SYSTEM前面的根素中,只要把XML中前面的根素内容显示出来,就可以读取文件内容,这就造成了一个任意文件读取的漏洞。 服务器解析XML有两种方式: 1. 一种是一次性将整个XML加载进内存中,进行解析; 2. 另一种是一部分一部分的“流式”地加载、解析。如果我们递归地调用XML定义,每次调用巨量的定义,那么服务器的内存就会被消耗完,造成了拒绝服务攻击。 一个外部实体声明 语法:<!ENTITY 实体名称 SYSTEM “URI/URL”>或者<!ENTITY 实体名称 PUBLIC “public_ID” “URI”> 例子 DTD:<!ENTITY writer SYSTEM “http://example.com/dtd/writer.dtd”> XML:<author>&writer;</author> 外部实体类型包括: 如果要引用一个外部资源,可以借助各种协议。举几个例子: php://filter/read=convert.base64-encode/resource=conf.php file:///etc/passwd http://url/file.ext XXE漏洞可能会用于提取数据、执行远程服务器请求、扫描内部系统、执行命令和拒绝服务攻击等。业务影响主要取决于受影响的引用程序和数据保护需求。 演示案例:XML External Entities (XXE) A4,这是webgoat 8.1 安全漏洞靶场中的一个安全漏洞。 目的:向照片添加评论,在提交表单时尝试使用评论字段执行XXE注入,尝试列出文件系统的根目录。
漏洞利用POC: 第1步:打开火狐浏览器web开发者工具,在评论输入框随便输入任何内容,【Submit】按钮,进行抓包 第2步:点开左侧文件列中simple这个POST,右键选择【编辑并重发】,滑动滚动条到最下面。 第3步:复制下面内容粘贴替换图中红框的请求主体内容,注意不要有空行。 第4步:滑动滚动条至最上方,【发送】按钮 第5步:刷新火狐浏览器页面,可以看到评论区中列出C:/tools/Benchmark-1.2beta目录下所有内容。
看响应输出:
使用自动化检测工具检测如下图: 选择CWE611,进行检测,可以检测出XML外部实体引用的不恰当限制漏洞
源代码分析,文件位置: E:\share\WebGoat-8.1.0\webgoat-lessons\xxe\src\main\java\org\owasp\webgoat\xxe\SimpleXXE.java
在(Comments.java)文件第(90)行调用[createXMLStreamReader]方法解析XML数据,解析来自外部的XML数据容易发生外部实体XXE攻击。
参考下面的设置,修改代码
修改Comments.java 使用自动化检测工具检测,不再报出XXE 编译:mvn clean install -Dmaven.test.skip=true 打包XXE文件夹: D:\webgoat\WebGoat-8.1.0\webgoat-lessons\xxe\target\classes\org\owasp\webgoat 选择CWE611检测器,进行检测 WebGoat项目 (A4) XML External Entities (XXE) 第7小节 分析如下 第7小节和第4小节题目类似,不过此题目采用的传输数据包是json格式。 1、请求头中content-type改成application/xml 2、尝试执行与第一次赋值中相同的XML注入
使用自动化检测工具,进行检测,给出如下截图:
使用编译后的工程,启动:mvn –pl webgoat-server spring-boot:run 访问:http://127.0.0.1:8080/WebGoat ,再次输入 执行,输出没有再列出硬盘内容
另一个案例,(A4) XML External Entities (XXE) 第11小节 题目要求:webgoat有一个XXE漏洞,同时webgoat服务器上有个密码文件,通过XXE把这个密码文件读取,并且发送到我们自己的恶意站点webwolf,webwolf接受到这个请求就顺理成章了密码文件里面的密码。 启动WebWolf:java -jar webwolf-8.1.0.jar [–server.port=9090] [–server.address=localhost] 页面访问WebWolf:http://127.0.0.1:9090/WebWolf 第一步:在WebWolf上传外部XML文件m0re.dtd。m0re.dtd文件内容: 第二步:在WebGoat页面的评论框中输入任何内容,Submit然后抓包修改,请求利用这个外部XML。粘贴下面文本框中的内容替换请求主体,然后发送。 第三步:blind XXE没有回显,所以需要在WebWolf中查找,清晰地看到WebWolf多了请求。
第四步:显示的内容需要进行URL解码后提交评论,看到页面出现Congratulations的提示,表示成功完成当前任务。http://tool.chinaz.com/tools/urlencode.aspx
通过Fortify,查看检测结果。(检测WebGoat整个项目) Comments.java:90 中配置的XML解析器无法预防和限制外部实体进行解析。这会使解析器暴露在XML External Entities攻击之下。
文件位置: E:\share\WebGoat-8.1.0\webgoat-lessons\xxe\src\main\java\org\owasp\webgoat\xxe\SimpleXXE.java
在(Comments.java)文件第(90)行调用[createXMLStreamReader]方法解析XML数据,解析来自外部的XML数据容易发生外部实体XXE攻击。
(结束)
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/82485.html