使用Seay进行代码安全审计

2023-11-18

Seay介绍

Seay介绍

Seay其实是一款用 C语言所开发的一款对 PHP相关代码的安全审计系统,它是运 行在 Windows操作系统上的。这种软件能够发现 SQL 注入漏洞、代码执行漏洞、命令执行错误、文件内容包括、文件的上传、绕过防护、拒绝文件服务、XSS的跨站漏洞、信息泄露问题、任意URL 跳 转等漏洞。 打开以后主界面如图 1.1 所示。

图1.1Seay主界面

源代码审计系统主要特点:

  1. 可以一键启动白盒审计
  2. 对代码进行必要的调试
  3. 对正则进行编码

Seay 支持的漏洞有以下几种

  1. 文件的函数中如果存在相关变量,就有可能存在漏洞
  2. pr.eg_repl.ace 的/f,如果有可控的变量,就可能存在漏洞
  3. phpi.nfo()的相关函数,就会存在敏感信息泄露的漏洞
  4. call_user_func 的相关函数的参数如果包含变量,就可能存在代码执行相关漏洞

Seay安装

下载Seay安装包

下载地址

请添加图片描述
解压后如下:
请添加图片描述

项目根目录如下图所示:
请添加图片描述
请添加图片描述
点击程序启动文件,程序正常启动如图所示。
请添加图片描述

Seay使用

基本使用方法

使用seay系统的方法如下:
(1)在安装后就打开程序,然后新建一个项目。
(2)选择需要审查的文件夹中的相关代码,然后打开后如图 3.1 。
(3)然后查看系统界面左侧列表列出来的项目结构。
(4)双击文件可以打开编辑器对其进行编辑,之后对文件进行字符和函数的查找。seay系统的使用
(5)点击关闭。如果代码已经审计完成或者想审计其他人的相关代码,就点击关闭就可以。
(6)菜单栏上的三个按钮为自动审计按钮,它可以自动对代码进行审计,自动审计,会对所有相关的危险以及隐藏的漏洞代码都会查找出来,使用者可以点击后等待 ,报告马上就可以自动出来,方便使用者。

审计工具插件栏
(7)代码调试功能可以调试需要执行的代码。如果是 php 解析的代码,相当方便
(8)函数查询功能其实就是查询官网内置的相关函数,查阅具体的函数使用方法以及参数说明;
(9)数据的管理功能体现在连接本地的数据库或者远程数据库时,可以方便项目的管理,用户可连接 mySQL 和 SQLserver, 示例如 3.3 图所示。
图 3.3 数据库管理功能

实验案例 - DVWA靶场

DVWA介绍

DVWA靶场可以进行SQL注入漏洞、XSS漏洞、CSRF漏洞、以及文件上传等漏洞的相关练习,因为此系统又提供了许多的安全演练相关的级别,所以可以逐步地来提升Web渗透的相关的技术。DVWA靶场就是一套开源的系统,可以在练习Web渗透技术的同时,通过阅读源码学习到对于各种漏洞的安全防护编码的知识。

DVMA靶场下载

GitHub - d.igininja/DVWA: Dam.n Vulnerable Web Appl.icatio.n
图4.1 DVMA压缩包
解压后如图所示:
图4.2 DVMA根目录

Seay中新建项目

在Seay中选择进行新建项目,如图4.3所示。
图4.3 Seay中新建项目

Seay中选择DVWA本地程序

在新建项目中,选择DVNA的相关源代码
图4.4 选择DVMA源代码

查看Seay中的DVMA的目录结构

图4.5 DVMA的目录结构

Seay 开启审计

使用 Seay中的自动审计功能,点击“自动审计按钮”。
图4.6 开启自动审计功能

审计结果

审计的结果如图 4.7所示
图4.7 审计结果

生成代码审计报告

Seay可以自动生成审计报告,可在浏览器中打开,因为是html格式。
图 4.8“生成报告”按钮
我们可以在报告中看到各种漏洞的相关分析,以及漏洞文件的绝对路径。
图4.9 自动生成审计报告

漏洞相关分析

自动审计系统可以罗列出所有漏洞,如文件漏洞,文件读取的漏洞。可以通过自己分析可以熟悉和了解Web安全的相关漏洞,从而将漏洞和代码关联到一起,在理解代码的某些部分种可以出现的漏洞。比如ID序号为20,漏洞描述为文件操作函数里面存在变量,可以在任意文件中读取,删除,修改文件。
图 4.10 漏洞描述
选中ID为20的漏洞,双击查看漏洞的信息,就可以可以查看漏洞的对应信息,以及相关分析。
图4.11 查看漏洞信息
可以看到,输入文件后,可以在第227行对文件进行 unlink操作。
图4.12 分析漏洞信息
打开 phpStudy程序,然后开启Apache和MySql组件,在主机中验证这个漏洞。
图4.13 打开 phpStudy
在主机上登陆DVNA,输入账号,密码。
图4.14 登陆DVMA
安全级别选择 low级别,然后点击“提交”。图 4.15 选择级别
左侧选择“File Upload”,显示界面如下
图4.16 显示界面
根据漏洞描述,上传照片格式的文件。
图4.17上传文件
图4.18显示结果
点击 ViewSource生成系统源码,对源码进行审计分析。
图4.19 生成源码
与Seay分析的结果进行比较,两者分析结果是一致的。
图4.20 比较结果
审计结束
点个赞再走吧
往期传送门

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Seay进行代码安全审计 的相关文章

  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records
  • 如何更改codeception phpbrowser/mink超时

    我正在尝试使用代码接收创建测试 以检查页面在高负载的情况下是否正常工作 不幸的是 如果页面负载非常高并且测试开始 我会收到这样的错误 Codeception Exception ModuleConfig Codeception Util M
  • MySQL 和 PHP 参数 1 作为资源

    好吧 当我运行下面提到的代码时 PHP 向我抛出此错误 在日志中 Error mysql num rows 期望参数 1 为资源 第 10 行 place 中给出的字符串 9 11号线 queryFP SELECT FROM db coun
  • 如何仅删除页面的自动段落格式,而不删除帖子的自动段落格式(WordPress)

    我已经熟悉这个在 WordPress 中删除自动段落格式的小技巧 remove filter the content wpautop remove filter the excerpt wpautop 但是添加这个函数 php删除整个网站的
  • PHP:将多字节字符串(单词)拆分为单独的字符

    尝试使用 mb split 将这个字符串 主楼怎么走 分割成单独的字符 我需要一个数组 但没有成功 有什么建议吗 谢谢你 例如 尝试使用带有 u 选项的正则表达式 chars preg split u string 1 PREG SPLIT
  • 在laravel中组合两个不同的无关系数据库表查询进行分页

    我的数据库中有两个不相关的表 我需要将它们合并 以便我可以将其放在我的搜索视图中 但我不知道是否可能 这是我的代码 这news and season表不相关 但它们具有相似的列 我试图将其放入一个对象中以便于分页 是否可以 search r
  • 解析错误:语法错误,意外的 T_RETURN [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 遇到这个问
  • php基于onclick函数输入日期类型

    用户选择日期 月份和年份 然后按一个按钮 根据他选择的日期向他显示数据库的值 不知道代码问题出在哪里
  • 将查询字符串附加到任何形式的 URL

    我要求用户在文本框中输入 URL 并需要向其附加查询字符串 URL 的可能值如下 http www example com http www example com http www example com a http www examp
  • 如何从脚本中创建新的 Joomla 用户帐户?

    我们正在为 Joomla 创建一个 XML API 允许合作伙伴网站在我们的网站上为其用户创建新帐户 我们已经创建了一个独立的 PHP 脚本来处理和验证 API 请求 但现在我们需要实际创建新帐户 我们最初只想进行 CURL 调用来提交注册
  • PHP DOM - 剥离 span 标签,保留其内容

    我希望采用如下标记 span class test Some text that is strong bolded strong and contains a a href link a span 并在 PHP 中找到剥离跨度的最佳方法 剩
  • PHP-docker容器中的环境变量

    我想在我的 docker 容器中显示一个环境变量 PHP 脚本如下所示 我使用 OpenShift 来启动容器 PHP 容器显示 env is 现在我更改容器的 dc 配置 oc env dc envar USER Pieter deplo
  • 当我使用 session_start() 时,Xampp 7.0.1 Apache 崩溃

    当我在 PHP 中使用 session start 启动会话时 我的 Apache 服务器停止工作 我正在使用 Windows 版 Xampp 7 0 1 我的配置文件如下所示 即使我把它放在文件的第一行 它也不起作用 有人知道如何解决这个
  • PHP Intl 扩展线程安全吗?

    我一直在阅读有关 PHP 中的语言环境的内容 看起来setlocale 线程有问题 我对线程不太熟悉 文档提到它不是线程安全的 我想让我的项目能够处理某些数字格式 并且 Intl 扩展似乎很有趣 http php net manual en
  • 使(文本到图像)图像具有一定的宽度但无限的长度?

    我有下面的代码 可以用大量文本生成图像 我希望该图像的宽度为 700 像素 我还希望它保留字符串所具有的段落结构 该字符串来自 MySQL 数据库 我怎样才能实现这一点 font 2 width imagefontwidth font st
  • php date_parse("2010 年 2 月") 给出日期 == 1

    当没有日期时 我将其称为 date parse 中的错误 d date parse Feb 2010 会给 d day 1 请参阅对此的评论date parse 手册页 http php net manual en function dat
  • PHP LDAP 查询获取特定安全组的成员

    我正在努力让 LDAP 查询工作来为我提供安全组的成员 我们的活动目录结构设置为 DC domain DC co dc uk然后 我们有一个名为 公司用户 的 OU 其中有一个用于 IT 和标准的 OU 在这些中我们创建了用户 所以我被设置
  • 设置大型电子邮件通知系统有哪些方法?

    我的公司有一个用 PHP 构建的网站 我们使用内置的 PHP 电子邮件功能每天向订阅者发送数千封电子邮件 这是一个糟糕的主意 它堵塞了我们的服务器 并且需要几个小时才能完成整个批次 现在我已经研究过像 MailChimp 这样的群发邮件服务
  • if/else 简写来定义变量

    我很难理解 if else 的 php 简写是如何描述的here https stackoverflow com questions 20233207 php if shorthand and echo in one line possib

随机推荐