先知议题解读 | 代码审计点线面实战(PPT下载)

阅读量284454

|评论1

|

发布时间 : 2018-06-22 12:41:07

议题PPT: https://yunpan.360.cn/surl_ycpMnJEvJAt (提取码:7e92)

议题概述

随着各个企业对安全的重视程度越来越深,安全思维已经从原来的表面工程逐渐转变为“开膛破肚”的内部工程,特别是在金融领域受重视的成都比较高,不区分语言,工程化的人工审计是未来几年的趋势,代码审计的分解和实战成为安全工作者必须掌握的一种能力,从代码审计的各个要记点,和代码审计流程框架,以及代码审计面临的问题,逐一拆解分析。

 

安全代码审计

这里主要针对owasp-top10里面,漏洞近年来爆发最高的三类进行讲解,分别为,sql注入,序列化,xml实体注入

普通的注入

注解:通常是没有走框架调用,通过字符串拼接的方式编写的查询语句,这样就会造成注入

当nodeid为1

完整的语句是:

select * from typestruct where nodeid in(1)

当nodeid为1) union select 1,2,3…….from table where 1=(1

完整的语句是:

select * from typestruct where nodeid in(1) union select 1,2,3…….from table where1=(1)

框架类型注入

注解:通常是没有明白框架调用的用法,错误的造成了字符串拼接,导致了注入

假设id为1234,当orgCode为1

完整的语句是:

select ar.role_id, ar.role_name, ar.role_desc,’1′ as co_code, ‘1’ as org_code, CREATOR from as_role ar where ar.role_id = 1

当nodeid为1’||(case when 1=1 then ” else ‘a’ end)||’

完整的语句是:

select ar.role_id, ar.role_name, ar.role_desc,’1′ as co_code, ‘1’||(case when 1=1 then ” else ‘a’end)||”as org_code, CREATOR from as_role ar where ar.role_id = 1

ORM类型注入

注解:通常指的是类似hibernate一类具有安全语法检测的注入

总体上来说,sql注入离不开这三大类,小伙伴们有时候在众测时候,会遇到厂商说取出来一个user不行,必须数据全能跑出来才算,这时候可以根据上面的描述,如果你运气够好,可能就造成任意语句执行

序列化漏洞

在序列化代码审计中,重点提出来内网渗透中SOAPMonitor的成因

XML实体注入

重点提出来某知名应用程序的一个漏洞

通过dwr接口,暴露出来对xml的解析,没有禁用实体,而且如果payload中位于string标签内的还会被回显回来

 

框架流程分析

这里重点介绍了普元EOS的分析流程,安全概要,包括两大类,反序列化和XML实体注入

流程分析详见ppt,这里只展示请求效果图

  1. 反序列化

  1. XML实体注入

 

三方应用笔记

随着语言体系的越发灵活,第三方开发库也随之越来越多,每一种语言都有自己固定的坑,如何正确规范安全的开发将会是重中之重,所以开发时候我们尽量的要对这些第三方东西做安全审计

XML解析库

拿java举例子,统计了使用量最多的9类xml解析库,均存在安全问题

这里主要指的是xxe,开发者应该在调用这些库的时候,要么通过api禁用外部实体引用,要么就从参数入口处进行过滤

反序列化库

各种漏洞的jar包

这里面重点提出来两个jar,比如cos.jar,里面就存在上传坑,如果开发人员不知道,他默认的临时文件存储就会在web目录下,最后采用时间竞争机制getshell,还有就是dd-plist.jar,大部分人是用这个去解析json的,但是它内置了xml的解析,只是判断了content-type和传递的数据是否是xml开头的,这样流入到最终逻辑造成xxe攻击

CVE相关调用的坑

这里列出来的相关框架,或者开发语言,都被cve报过,所以开发时候要特别注意,其中反序列化比如weblogic,开发框架比如thinkphp等等

 

接口滥用要记

这里主要讲了java应用中的四大接口webservice,dwr,hessian,gwt,从他们的默认配置,到内置漏洞,算是一个总结笔记

四大webservice默认配置,众测可以通过这些进行猜测:

axis2里面jws文件构建webservice:

  1. 在web目录全局查找jws结尾的文件
  2. 根据对应的web访问目录通过浏览器进行访问
  3. 对其相应的接口进行审计

axis2低版本cve在通用程序上:

xfire容器截至最后一个版本XXE漏洞:

dwr调用从web.xml到dwr.xml讲解了这个请求的构造包的组成:

hessian接口从一个不可能的测试,转变为一个简单的渗透测试,组成包如下:

gwt接口 在审计中的包结构和审计对应方法,从web.xml开始:

 

关于我们

搜索微信公众号“敏信安全课堂”,作者每个月会持续更新

议题PPT: https://yunpan.360.cn/surl_ycpMnJEvJAt (提取码:7e92)

本文由jkgh006原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/149081

安全KER - 有思想的安全新媒体

分享到:微信
+12赞
收藏
jkgh006
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66