news 2026/9/30 20:53:43

代码审计及工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码审计及工具

代码审计,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在开发阶段存在的一些漏洞或者程序逻辑错误,避免程序漏洞被非法利用给企业带来不必要的风险。 代码审计不是简单的检查代码,审计代码的原因是确保代码能安全的做到对信息和资源进行足够的保护,所以熟悉整个应用程序的业务流程对于控制潜在的风险是非常重要的。 代码审计这是一个需要多方面技能的技术,也是需要一定的知识储备。我们需要掌握编程,安全工具的使用、漏洞原理、漏洞的修复方式、函数的缺陷等等

代码审计入门基础:html/js基础语法、PHP基础语法 ,面向对象思想,PHP小项目开发(Blog、注册登录、表单、文件上传、留言板等),Web漏洞挖掘及利用,Web安全工具基本使用(burpsuite、sqlmap等),代码审计工具(seay审计系统、zend studio+xdebug等) 代码审计两种基本方式: 通读全文源码:通读全文发作为一种最麻烦的方法也是最全面的审计方法。特别是针对大型程序,源码成千上万行。当然了解整个Web应用的业务逻辑,才能挖掘到更多更有价值的漏洞。 功能点审计:根据漏洞对应发生函数进行功能行审计,常会用到逆向溯源数据流方法进行审计。

代码审计两种基本方法: 正向追踪数据流:跟踪用户输入参数 -> 来到代码逻辑 -> 最后审计代码逻辑缺陷 -> 尝试构造payload 逆向溯源数据流:字符串搜索指定操作函数 -> 跟踪函数可控参数 -> 审计代码逻辑缺陷 -> 尝试构造payload

从开发者的位置去思考问题,可以快速定位问题。学习面向对象编程以及面向过程编程,编写一些项目提升对代码的理解能力,再是对各种漏洞可以独立挖掘利用并能理解漏洞的危害,这里我们主要针对PHP源码做审计。

我们从三个层次开始我们的源码审计思路

1.确定要审计的源码是什么语言

2.确定该源码是单入口还是多入口

3.确定该语言的各种漏洞诞生的函数

PHP源码部署环境:

Phpstudy 集成开发环境:Zend Studio/Phpstorm

数据库管理工具:Navicat for MySQL MySQL

实时监控工具:MySQLMonitor

文本编辑工具:Sublime_Text3

代码审计辅助工具:Seay源代码审计系统、Rips

代码审计辅助安全工具:渗透版火狐、BurpSuite、Sqlmap

通常做代码审计都是检查敏感函数的参数,然后回溯变量,判断变量是否可控并且没有经过严格的过滤,这是一个逆向追踪的过程。

这里列出一些特定漏洞对应的比较容易出问题的函数或关键字,提高审计效率。

SQL注入 select update insert into delete

注:此处非函数,主要找常用的SQL语句

本地文件包含 include()

向上包含,向下包含,如果包含出错继续向下执行 include_once() 同上,只进行包含一次 require()

向上包含,向下包含,如果包含出错不下向下执行 require_once()

同上,只进行包含一次 命令执行 system() exec() passthru() shell_exec()

XSS跨站脚本攻击 print print_r echo printf 文件上传漏洞 move_uploaded_file()

文件下载

fopen() readfile() file_get_contents()

任意文件删除

unlink()

反序列化漏洞

unserialize()

使用自动化工具辅助人工漏洞挖掘,可以显著提高审计工作的效率。

学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。 我们这里介绍两款PHP代码审计工具

1.RIPS RIPS是一个用 PHP 编写的源代码分析工具,它使用了静态分析技术,能够自动化地挖掘 PHP 源代码潜在的安全漏洞。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。由于静态源代码分析的限制,漏洞是否真正存在,仍然需要代码审阅者确认。RIPS 能够检测 XSS, SQL 注入, 文件泄露, Header Injection 漏洞等。 RIPS官网:http://rips-scanner.sourceforge.net/ 下载完之后将该压缩包解压到本地网站的根目录下,然后在浏览器 localhost/Rips(你解压的文件名字)/就可以进去了

subdirs:如果勾选上这个选项,会扫描所有子目录,否则只扫描一级目录,缺省为勾选。 verbosity level:选择扫描结果的详细程度,缺省为1(建议就使用1)。

vuln type:选择需要扫描的漏洞类型。支持命令注入、代码执行、SQL注入等十余种漏洞类型,缺省为全部扫描。

code style:选择扫描结果的显示风格(支持9种语法高亮)。

/regex/:使用正则表达式过滤结果。

path/file: 要扫描的目录。

scan: 开始扫描。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群

‌一、基础适配人群‌

  1. ‌零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. ‌开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. ‌应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

‌二、能力提升适配‌

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 16:47:48

如何永久删除安卓设备中的照片(已验证)

当你从 Android 手机中删除照片时,它们通常并没有真正消失。它们可能残留在“最近删除”相册、云备份中,或者可以通过专门的工具恢复。本指南将引导你使用几种方法永久删除 Android 设备上的照片,确保你的私人照片保持私密。快速浏览一下这些…

作者头像 李华
网站建设 2026/9/29 8:53:55

什么是PFC

文章目录为什么需要PFCPFC是如何工作的rPFCPFC(Priority-based Flow Control)的含义是基于优先级的流量控制,它是目前应用最广泛的能够有效避免丢包的流量控制技术,是智能无损网络的基础。使能了PFC功能的队列,我们称之…

作者头像 李华
网站建设 2026/9/29 8:53:55

Python文件读取代码中strip()的作用

这行代码 line.strip() 的作用是: 主要功能 去除字符串 line 两端的空白字符。 具体会去除的字符包括: 空格 (space, )换行符 (newline, \n)回车符 (carriage return, \r)制表符 (tab, \t)其他空白字符(如垂直制表符等) 在这个具…

作者头像 李华
网站建设 2026/9/30 17:33:25

别再层层嵌套公式了!升级下Excel,秒变专业级Access!

现在还在Excel里一层一层套公式的人,心里大多都有数:这条路越来越难走了。只是很多人憋着一股劲,不敢直接说出口。一张表,为什么会越做越不对劲?刚开始做Excel的时候,其实都很顺。录数据、算合计、拉数据透…

作者头像 李华
网站建设 2026/9/29 8:53:55

mysql “黑名单“

目的:使用iptables禁止121.43.122.130客户端连接140.143.94.243机器上部署的mysql部署MySQL的机器客户端140.143.94.243121.43.122.130安装 iptables-services(若没装)yum install -y iptables-services让 systemd 接管iptablessystemctl sta…

作者头像 李华