武天旭
高级安全架构师,CSDN安全博客专家/业界认证专家,全栈安全领域优质创作者,持有注册信息安全认证专家资质(CISSP)。其拥有多年信息安全行业从业经历,具备中大型企业安全架构设计能力,在安全架构、应用安全、隐私合规、数据安全、云原生安全、安全开发等多个安全领域具备丰富的理论和实践经验,并多次受邀在国内各大型安全峰会上发表过相关演讲。联系邮箱:security_suiyi@163.com
展开
-
【代码审计】专栏文章汇总
代码审计基础代码审计基础源代码审计思路(上)源代码审计思路(下)常见漏洞审计认证会话管理(上)认证会话管理(下)输入输出验证授权管理审计业务安全审计第三方组件审计原创 2022-03-04 17:23:26 · 4414 阅读 · 1 评论 -
Java代码审计自动化实现
准备:语法树和词法树首先,需要了解一下语法树和词法树的概念,这是代码审计工具实现审计功能的根本。简单举例介绍:源码:const a = 1;const b = a + 1;词法树与语法树解析:它的词法树:[ { "type": "Keyword", "value": "const" }, { "type": "Id...原创 2020-01-06 20:08:00 · 1931 阅读 · 0 评论 -
PHP代码审计中常见的漏洞(四)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号漏洞1XSLT注入2不安全的哈希算法3LDAP操纵4全局变量覆盖5资源注入6日志伪造7Object注入1、XSLT注入详细信息使用不可信的XSL样式表,就有可能会发生XSLT注入攻击。攻击者可以利用此方原创 2022-03-04 15:58:20 · 2158 阅读 · 0 评论 -
PHP代码审计中常见的漏洞(三)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:原创 2020-05-31 13:18:17 · 878 阅读 · 1 评论 -
PHP代码审计中常见的漏洞(二)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:原创 2020-05-31 13:17:32 · 678 阅读 · 0 评论 -
PHP代码审计中常见的漏洞(一)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:原创 2020-05-31 13:16:35 · 1054 阅读 · 1 评论 -
Python代码审计中常见的漏洞(四)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 服务端请求伪造原创 2018-10-05 18:31:10 · 1459 阅读 · 1 评论 -
Python代码审计中常见的漏洞(三)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:原创 2020-05-31 13:05:21 · 911 阅读 · 1 评论 -
Python代码审计中常见的漏洞(二)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞 编号 漏洞1 文件权限控制 6 不安全的加密方式2 格式化字符串注入 7 不安全的HMAC密钥形式3 解压覆盖文件 8 不安全的哈希算法4 不安全的密码形式 9 不安全的密码处理方式5 不安全的密钥形式 10 不安全的PBE密码形式原创 2020-05-31 13:04:16 · 907 阅读 · 0 评论 -
Python代码审计中常见的漏洞(一)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:原创 2020-05-31 13:03:41 · 1831 阅读 · 1 评论 -
NodeJS代码审计中常见的漏洞(四)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 敏感信息存储原创 2022-03-02 22:53:36 · 773 阅读 · 0 评论 -
NodeJS代码审计中常见的漏洞(三)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号漏洞1基于DOM的XSS2跨站脚本XSS3密码安全4弱加密算法5密钥长度不足6表单中存在密码7数据存储传递8日志伪造9进程控制10服务器端模板注入1、基于DOM的XSS详细信息应原创 2022-03-04 15:35:59 · 3914 阅读 · 0 评论 -
NodeJS代码审计中常见的漏洞(二)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 template标签使用v-show指令2 CORS策略3 未设置httpOnly4 不安全的通信协议5 GET请求敏感信息6 未加密的信息传输7 拒绝服务原创 2020-01-03 10:39:10 · 1279 阅读 · 0 评论 -
NodeJS代码审计中常见的漏洞(一)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 JavaScript劫持2 动态解析代码3 HTTP响应截断4 SQL注入5 命令注入原创 2020-01-03 10:13:08 · 2113 阅读 · 0 评论 -
数据库代码审计中常见的漏洞(二)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 跨站脚本XSS原创 2022-03-02 23:03:53 · 285 阅读 · 0 评论 -
数据库代码审计中常见的漏洞(一)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞 编号 漏洞1 命令注入 7 跨站脚本XSS2 SQL注入 8 密码/密钥安全3 HTTP响应截断 9 不安全的随机数4 资源注入 10 隐私数据泄露5 数据库访问控制 11 重定向6 资源未释放 12 危险函数使用原创 2019-12-12 20:34:39 · 831 阅读 · 0 评论 -
APP代码审计中常见的漏洞(三)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 不安全的信息传输置2 缺少权限3 危险的Intent权限4 ContentProvider权限定义5 不安全的JNI6 不安全的RFCOMM套接字7 Intent隐式调用8 证书验证不充分9 安卓程序开启服务原创 2019-12-11 20:36:32 · 1134 阅读 · 0 评论 -
APP代码审计中常见的漏洞(二)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 AndroidManifest.xml配置原创 2018-10-05 18:00:04 · 2413 阅读 · 1 评论 -
APP代码审计中常见的漏洞(一)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 SQLite注入2 资源注入3 Android类加载注入4 遗留的调试代码5 ContentProvider URI 注入6 Intent操纵7 Android查询字符串构造8 AndroidManifest.xml配置9 用户信息泄露原创 2019-12-11 20:14:04 · 1457 阅读 · 0 评论 -
嵌入式代码审计中常见的漏洞(五)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 格式符宽度限制2 释放后二次使用3 内存泄漏4 常用的不安全函数5 字符串缺少终止符6 错误的资源关闭原创 2022-03-04 15:11:45 · 3502 阅读 · 0 评论 -
嵌入式代码审计中常见的漏洞(四)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 敏感信息硬编码2 未初始化安全3 越界访问4 迭代器失效5 迭代器尾部解引用原创 2022-03-04 14:55:14 · 2950 阅读 · 0 评论 -
嵌入式代码审计中常见的漏洞(三)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 内存释放对象错误2 内存二次释放3 返回栈地址4 从外部读取明文密码5 指针对齐错误原创 2019-12-12 19:49:24 · 532 阅读 · 0 评论 -
嵌入式代码审计中常见的漏洞(二)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 除数为零2 死循环3 参数占用空间过大4 不安全的二元运算5 拒绝服务原创 2019-12-12 19:28:29 · 628 阅读 · 0 评论 -
嵌入式代码审计中常见的漏洞(一)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 迭代器使用不匹配2 字符串操作缓冲区3 随机数用作长度参数4 SQL注入5 资源释放后使用原创 2019-12-12 19:11:10 · 1140 阅读 · 0 评论 -
Java代码审计中常见的漏洞(八)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号漏洞1固定的Session ID2邮件服务器连接加密3服务器身份验证禁用4JavaScript劫持5Bean操纵6HTML清除策略7缺少表单验证1、固定的Session ID详细信息固定的Session原创 2022-03-03 21:06:01 · 1035 阅读 · 0 评论 -
Java代码审计中常见的漏洞(七)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号漏洞1不安全的加密算法2密钥长度不足3随机数种子安全4初始化向量为固定值5PBE迭代器数值过低6加密密钥安全7外部控制密钥大小1、不安全的加密算法详细信息使用不安全的加密算法(如DES、3DES、RC4原创 2022-03-03 21:01:37 · 620 阅读 · 0 评论 -
Java代码审计中常见的漏洞(六)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号漏洞1GET请求敏感信息2Cookie存储明文信息3不安全的反序列化4HTTP响应缓存泄露5拒绝服务6日志伪造7跨站脚本XSS1、GET请求敏感信息详细信息程序使用GET方法来处理请求,会通过浏览器的历原创 2022-03-03 20:57:36 · 565 阅读 · 0 评论 -
Java代码审计中常见的漏洞(五)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号漏洞1XMLDecoder注入2动态解析代码3LDAP危险条目4同源方法执行5JNDI查找地址注入6服务器端模板注入7重定向1、XMLDecoder注入详细信息反序列化用户控制的XML,程序如果没有进行原创 2022-03-03 20:52:18 · 1046 阅读 · 0 评论 -
Java代码审计中常见的漏洞(四)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 文件上传2 外部定义加密算法3 设置HTTPOnly属性4 加载恶意库5 服务器端请求伪造6 反射文件下载7 解压覆盖文件原创 2019-12-11 19:38:15 · 1129 阅读 · 0 评论 -
Java代码审计中常见的漏洞(三)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 路径遍历2 Session存储非序列化对象3 XML使用any元素4 安全方法被重写5 广泛信任证书6 不安全的随机数7 密码编码安全原创 2019-12-10 20:48:37 · 1298 阅读 · 0 评论 -
Java代码审计中常见的漏洞(二)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 文件数据泄露2 密码正确性验证3 SMTP响应截断4 XSLT注入5 XML外部实体注入6 敏感信息泄露7 XML实体扩展注入原创 2019-12-09 19:57:13 · 2125 阅读 · 0 评论 -
Java代码审计中常见的漏洞(一)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。本篇介绍了以下代码安全问题:编号 漏洞1 数据库访问控制2 HTTP响应截断3 SQL注入4 命令注入5 LDAP注入6 XML注入7 XPath注入原创 2019-12-09 18:42:33 · 4829 阅读 · 1 评论 -
RIPS详细介绍
RIPS是一个用php编写的源代码安全检测工具,它使用了静态分析技术,能够自动化地挖掘PHP源代码潜在的安全漏洞,测试人员可以直接容易的审阅分析结果,不用审阅整个程序代码。由于静态源代码分析的限制,一些漏洞预警是否真正存在,仍然需要测试人员定位到源代码进行进一步确认。原创 2018-10-06 12:21:48 · 5675 阅读 · 1 评论 -
CheckmarxCxSuite详细介绍
CxSuite是目前最强有力的下一代静态源代码安全扫描测试方案,专门设计为识别、跟踪和修复软件源代码上的技术和逻辑方面的安全缺陷。首创了以查询语言定位代码安全问题,其采用独特的词汇分析技术和CxQL专利查询技术原创 2018-10-06 12:17:06 · 7362 阅读 · 0 评论 -
FindBugs详细介绍
Findbugs 是一个静态分析工具,通过检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs不注重style及format,注重检测真正的bug及潜在的性能问题,尤其注意了尽可能抑制误检测(falsepositives)的发生。利用这个工具,就可以在不实际运行程序的情况对软件进行分析。它可以帮助改进代码的质量。原创 2018-10-06 12:12:39 · 2293 阅读 · 0 评论 -
PMD详细介绍
一、PMD概述1.1、工具说明PMD是一个代码检查工具,它用于分析Java源代码,找出潜在的问题。PMD的核心是JavaCC解析器生成器。PMD附带了16个可以直接使用的规则信,利用这些规则可以找出Java源程序的许多问题;此外,PMD规则是可以定制的,可以添加新规则:通过编写Java代码并重新编译PDM,或者更简单些,编写XPath表原创 2018-10-06 11:59:03 · 2941 阅读 · 0 评论 -
FortifySCA详细介绍(四)
三、审计分析结果3.1、导航并查看分析结果在您打开一个用来查看 Fortify Source Code Analyzer (Fortify SCA) 所检测到的问题的 Audit Workbench 项目之后,您可以在 Summary(摘要)面板中审计这些问题,以反映这些问题的严重级别,以及对该问题执行的安全分析状态。系统会按审计结果的严重性以及准确性,对审计结果进行分组,并在默认情况下将问题识别为位于“Issues(问题)”面板中的 Hot(严重)列表内。单击 Warning(警告)和 Info(信原创 2022-03-02 23:10:20 · 562 阅读 · 0 评论 -
FortifySCA详细介绍(三)
2.1、扫描 Java 项目“Scan Java Project(扫描 Java 项目)”向导将转换阶段和分析阶段合并为一个简单的步骤。使用此功能可以扫描源那些代码位于单个目录中的小型 Java 项目。原创 2018-10-06 11:43:54 · 8346 阅读 · 6 评论 -
FortifySCA详细介绍(二)
“Project Summary(项目摘要)”面板:“Project Summary(项目摘要)”面板提供了关于扫描的详细信息。“Summary(摘要)”选项卡“Certification(认证)”选项卡“Build Information(Build 信息)”选项卡“Analysis Information(分析信息)”选项卡原创 2020-03-17 15:50:40 · 67 阅读 · 0 评论 -
FortifySCA详细介绍(一)
Audit Workbench 会启动 Fortify SCA“Scanning(扫描)”向导来扫描和分析源代码。使用源代码创建中间文件,源代码与一个 Build ID相关联,Build ID通常就是项目名称。扫描中间文件,分析代码,并将结果写入一个Fortify Project Results(FPR)文件。确保所有源文件均包含在扫描过程中,使用的是正确的规则包,且没有报告重大错误。安全编码规则包是 Fortify Software 安全研究小组多年软件安全经验的体现,并且经过其不断努力改进而成。原创 2018-10-06 11:17:53 · 20890 阅读 · 2 评论