我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用Seay进行代码安全审计

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用Seay进行代码安全审计

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 比较结果
审计结束
点个赞再走吧
往期传送门

来源地址:https://blog.csdn.net/liyuchenii/article/details/124581690

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用Seay进行代码安全审计

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python 安全编码&代码审计

现在一般的web开发框架安全已经做的挺好的了,比如大家常用的django,但是一些不规范的开发方式还是会导致一些常用的安全问题,下面就针对这些常用问题做一些总结。代码审计准备部分见《php代码审计》,这篇文档主要讲述各种常用错误场景,基本上
2023-01-31

Python安全编码与代码审计是怎样的

这篇文章给大家介绍Python安全编码与代码审计是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1 前言现在一般的web开发框架安全已经做的挺好的了,比如大家常用的django,但是一些不规范的开发方式还是会导致
2023-06-17

PHP代码审计:全面检查,保障程序安全

PHP代码审计是一种系统地检查PHP代码以发现安全漏洞或潜在问题的过程。通过代码审计,可以有效地提高PHP应用程序的安全性,防止黑客攻击和数据泄露。
PHP代码审计:全面检查,保障程序安全
2024-02-09

PHP 代码审计的利器:掌握代码安全的关键

PHP代码审计是确保应用程序安全的关键步骤,本文介绍了多种实用的PHP代码审计工具,帮助开发人员识别和修复代码中的安全漏洞,提高应用程序的安全性。
PHP 代码审计的利器:掌握代码安全的关键
2024-02-09

PHP Git 实战:如何使用 Git 进行代码审查?

答案: 是,可以通过 git 进行代码审查。详细描述:设置 git 环境:安装 git 并初始化一个本地 git 仓库。创建分支:创建一个新分支进行修改,并切换到该分支。推送代码:将代码推送到远程代码仓库,以便其他团队成员进行审查。代码审查
PHP Git 实战:如何使用 Git 进行代码审查?
2024-05-13

PHP代码审计:深入解析,揭开安全隐患

:PHP代码审计是确保应用程序安全的重要一步,通过分析代码,可以识别出潜在的安全漏洞,防止攻击者利用这些漏洞进行攻击。本文将深入解析PHP代码审计的流程和方法,揭开安全隐患,并提供演示代码,帮助读者理解和应用PHP代码审计技术。
PHP代码审计:深入解析,揭开安全隐患
2024-02-09

如何通过Python对MySQL数据库进行安全性审计?(Python环境下如何对MySQL数据库进行安全审查?)

通过Python对MySQL数据库进行安全性审计,可提高数据安全性和遵守法规要求。该过程涉及以下步骤:建立连接、获取数据库信息、检查用户权限、分析查询日志、检查配置、使用第三方工具和编写自定义脚本。定期进行审计有助于识别漏洞,实施缓解措施,并保护敏感数据。
如何通过Python对MySQL数据库进行安全性审计?(Python环境下如何对MySQL数据库进行安全审查?)
2024-04-02

怎么使用MyBatis进行SQL审计和监控

MyBatis本身并不提供SQL审计和监控的功能,但可以通过一些方式来实现这些功能,例如:使用MyBatis Interceptor:MyBatis提供了Interceptor接口,可以通过实现该接口来拦截SQL语句的执行过程,从而实现SQ
怎么使用MyBatis进行SQL审计和监控
2024-05-08

网络安全审计工具Nmap如何使用

网络安全审计工具Nmap如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一.软件下载https://nmap.org/download.html二.扫描IPnmap
2023-06-04

如何进行C++代码的安全性验证?

C++作为一种广泛使用的编程语言,被大量应用于各种软件开发中。然而,由于C++的语法灵活性和底层性质,导致其代码的安全性更加容易受到攻击。为了保护代码的安全性,进行C++代码的安全性验证变得越来越重要。C++代码的安全性可以从多个方面进行验
如何进行C++代码的安全性验证?
2023-11-02

C++开发建议:如何进行C++代码的异常安全设计

C++开发建议:如何进行C++代码的异常安全设计在进行C++开发时,异常安全性是一个至关重要的考虑因素。异常是指程序运行过程中可能出现的一些错误或意外情况,而异常安全性指的是程序在遇到异常时能够正确处理并不会导致资源泄露或数据不一致等问题。
C++开发建议:如何进行C++代码的异常安全设计
2023-11-22

C++开发建议:如何进行C++代码的线程安全设计

C++是一门非常强大的编程语言,它被广泛应用于各种领域的开发中。然而,在使用C++开发多线程应用时,开发人员需要特别注意线程安全的问题。如果应用程序出现线程安全问题,可能会导致应用程序崩溃、数据丢失等问题。因此,在进行C++代码设计时,应该
C++开发建议:如何进行C++代码的线程安全设计
2023-11-23

怎么使用ABAP Restful API进行代码的全文搜索

这篇文章主要介绍“怎么使用ABAP Restful API进行代码的全文搜索”,在日常操作中,相信很多人在怎么使用ABAP Restful API进行代码的全文搜索问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-06-04

使用awvs进行web安全扫描

1、安装 docker pull secfa/docker-awvsdocker run -it -d -name awvs -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs
2023-08-30

如何进行PHP代码的安全防护?(PHP编程中如何确保代码的安全性?)

本文详细探讨了PHP代码的安全防护措施,包括:输入验证和过滤SQL查询预处理输出编码会话管理错误处理代码混淆限制文件上传代码审查保持软件更新通过实施这些实践,开发者可以大幅减少PHP代码的攻击面,保护应用程序免受XSS、SQL注入和其他安全漏洞的侵害。定期审查和更新安全措施对于维持应用程序的安全性至关重要。
如何进行PHP代码的安全防护?(PHP编程中如何确保代码的安全性?)
2024-04-02

如何进行Web安全中的代码泄露分析

这篇文章给大家介绍如何进行Web安全中的代码泄露分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。代码泄露一般有SVN代码泄露及GIT代码泄露。例如在使用SVN管理本地代码过程中,会自动生成一个名为SVN的隐藏文件夹,
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录