php代码审计工具-rips

代码审计

代码审计就是检查所写的代码中是否有漏洞,检查程序的源代码是否有权限从而被黑客攻击,同时也检查了书写的代码是否规范。通过自动化的审查和人工审查的方式,逐行检查源代码,发现源代码中安全缺陷所造成的漏洞,并提供解决方案和建议。

rips工具介绍

RIPS工具是一款专注于PHP代码的静态代码分析工具,用于自动化检测源代码的安全漏洞,能检测多种常见的漏洞,如:sql注入,跨站脚本(XSS),文件包含,远程代码执行漏洞(RCE)等。
这个工具提供简介的页面以及其自动化的分析静态代码,测试人可以很直观的分析工具分析出得结果,极大的减少了安全测试代码的时长,但是工具分析出来的结果还是得人工进一步测试是否真的有漏洞。

rips工具的搭建

从官网下载软件
http://rips-scanner.sourceforge.net/
进入网址翻到网页最下
在这里插入图片描述
点击here
在这里插入图片描述
点击download就可以了,下载好直接解压出来,下面说一下解压出来的文件要放到哪里才可以正常运行。
在这里插入图片描述
这个工具不需要配置,但是这个工具前提是由一个网站环境,这里我用phpstudy这个工具搭建。
直接下载好这个工具会有一个WWW文件夹,把下载解压的RIPS文件夹拖到WWW文件夹。
在这里插入图片描述
在这里插入图片描述可以看到我们把文件夹已经拖进去了,这样我们的RIPS就算安装好了。
然后启动phpstudy。
在这里插入图片描述
打开浏览器输入:localhost/rips-0.55
在这里插入图片描述

注意:

这里WWW文件夹中工具是什么名字就输入对应的名字,不然会显示网址错误。
比如:

我的WWW文件夹下是rips-0.55
在这里插入图片描述
我这里就得在网址上输入:localhost/rips-0.55

工具功能

先看最上方的工具栏
在这里插入图片描述
subdirs:如勾选上这个选项,会扫描所有子目录,否则只扫描一级目录,缺省为勾选。
verbosity level:选择扫描结果的详细程度,一般用1。
vuln type:选择要搜索的漏洞种类,不选择则全部扫描。
code style:选择结果的显示风格。
/regex/:通过正则表达式过滤后的结果。
path/file: 要搜索的源代码所在的绝对路径。
scan: 扫描按钮。

工具汉化

https://github.com/J0o1ey/rips-Chinese
这是一个大佬翻译的rips软件,安装是一样的官方版本一样的操作,直接拖到WWW文件夹下就可以了。
这里注意文件名不要和官方版的一样,可以修改一下,在网址上输入修改后的文件名就可以进来了。
在这里插入图片描述

工具演示

sql注入漏洞检测

电脑上顺便配置一个sqli-labs靶场,然后测试一下。
在这里插入图片描述
在工具输入路径的地方输入我们下载好的靶场的对应关卡的绝对路径,也可以直接扫描整个关卡,但可能会比较慢,所以这里选一关测试一下。
在这里插入图片描述
其他的就不修改了,直接扫描
在这里插入图片描述

扫描后出现结果,这里为了显示直接点,用汉化版的看一下。
在这里插入图片描述
扫描出有sql注入漏洞,我们来看一下给出的代码段。
在这里插入图片描述
发现代码段这里,对用户的输入没有限制,并且直接输入后就调用到sql搜索上,造成sql注入漏洞。
这里也可以静态分析到这个是sql注入得用")闭合的。
那么下面写上payload:

?id=1") order by 3--+
判断表格有几列
?id=-1") union select 1,2,3--+
判断显示位,来判断表格的那几列是在网页显示的
?id=-1") union select 1,database(),version()--+
联合查询,爆出数据库名与数据库版本
?id=-1") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
爆对应数据库下的表名
?id=-1") union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
爆字段名
?id=-1") union select 1,2,group_concat(username ,id , password) from users--+
爆出敏感字段的信息

文件包含

在这里插入图片描述
这是分析了pikachu靶场的文件包含的源代码,输出的结果说有2个文件包含漏洞,这里看一下本地文件包含漏洞。
在这里插入图片描述
看rips分析的不安全代码,这里对我们的输入没有任何检测,并且输入的文件路径会直接用include函数执行,从而造成文件包含的漏洞。

在这里插入图片描述
点击左下角的问号,会弹出工具给我们的分析,其中有这个漏洞是如何产生的,举例poc利用,以及修复方法。
下面我们测试一下这个漏洞是否存在。
在这里插入图片描述
随便点击下拉框的一个点击
在这里插入图片描述
可以发现会对应的弹出信息,观察网址,可以看到通过get函数传参了,是一个filename参数。
修改其参数观察。
在这里插入图片描述
改成file2可以发现换了一个信息输出,分析下拉框一共有5个,试一下file6.php。
在这里插入图片描述
输出了账号和密码,说明有文件包含漏洞,再输入file7.php看看。
在这里插入图片描述
报错了,但是也说明了根目录的一些信息,说明是Windows系统,win系统下一定会有C:\Windows\win.ini这个文件,通过观察报错的回显,我们可以看到现在所在的路径,那么我们通过这2个信息,写上文件C:\Windows\win.ini文件的路径。
…/…/…/…/…/…/windows/win.ini
在这里插入图片描述
输出了对应的信息,证实了有这个漏洞。

分析一个文件夹的源代码

在这里插入图片描述
警告选择持续就行。
在这里插入图片描述
显示了整个文件夹中源代码的漏洞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/983345.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

工作学习笔记:HarmonyOS 核心术语速查表(v14 实战版)

作为在 HarmonyOS 开发一线摸爬滚打的工程师,笔者在 v14 版本迭代中整理了这份带血的实战术语表。 一、架构基础术语速查 A 系列术语 术语官方定义笔者解读(v14 实战版)开发陷阱 & 解决方案abc 文件ArkCompiler 生成的字节码文件打包时…

Trae IDE新建C#工程

目录 1 结论 2 项目结构 3 项目代码 1 结论 新建C#工程来说,Trae的Chat比DeepSeek的Coder好用。 2 项目结构 MyWinFormsApp/ │ ├── Program.cs ├── Form1.cs ├── Form1.Designer.cs ├── MyResources/ │ └── MyResources.resx └── MyWin…

大数据学习(55)-BI工具数据分析的使用

&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦&#x1f91…

Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境

Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境 Kafka简介: Apache Kafka是由LinkedIn开发并捐赠给Apache基金会的分布式流处理平台,现已成为实时数据管道和流应用领域的行业标准。它基于高吞吐、低延迟的设计理念,能够…

【干货教程】Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)

文章目录 一、环境准备二、安装Ollama2.1 访问Ollama官方网站2.2 下载适用于Windows的安装包2.3 安装Ollama安装包2.4 指定Ollama安装目录2.5 指定Ollama的大模型的存储目录 三、选择DeepSeek R1模型四、下载并运行DeepSeek R1模型五、常见问题解答六、使用Chatbox进行交互6.1 …

TCP/IP 5层协议簇:网络层(ICMP协议)

1. TCP/IP 5层协议簇 如下: 和ip协议有关的才有ip头 2. ICMP 协议 ICMP协议没有端口号,因为不去上层,上层协议采用端口号

STM32标准库代码详解之GPIO

GPIO的初始化代码如下: /*开启时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟,使用外设必须开启/*GPIO初始化*/ GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量 GPIO_InitStructure.GPIO_Mode GPIO_Mo…

【Spring AOP】_切点类的切点表达式

目录 1. 根据方法签名匹配编写切点表达式 1.1 具体语法 1.2 通配符表达规范 2. 根据注解匹配编写切点表达式 2.1 实现步骤 2.2 元注解及其常用取值含义 2.3 使用自定义注解 2.3.1 编写自定义注解MyAspect 2.3.2 编写切面类MyAspectDemo 2.3.3 编写测试类及测试方法 在…

利用EasyCVR平台打造化工园区视频+AI智能化监控管理系统

化工园区作为化工产业的重要聚集地,其安全问题一直是社会关注的焦点。传统的人工监控方式效率低下且容易出现疏漏,已经难以满足日益增长的安全管理需求。 基于EasyCVR视频汇聚平台构建的化工园区视频AI智能化应用方案,能够有效解决这些问题&…

FPGA学习篇——Verilog学习3(关键字+注释方法+程序基本框架)

1 Verilog常用关键字 大概知道以下哪些是关键字就好,如何使用还是得在编写代码中来学习。 2 Verilog注释方法 Verilog有两种注释方式: 2.1 “ // ” 单行。 2.2 “ /* ... */ ” 可扩展多行。 3 Verilog程序基本框架 Verilog 的基本设计单元是“…

扩展------项目中集成阿里云短信服务

引言 在当今数字化时代,短信服务在各种项目中扮演着重要角色,如用户注册验证、订单通知、营销推广等。阿里云短信服务凭借其稳定、高效和丰富的功能,成为众多开发者和企业的首选。本文将详细介绍如何在项目中集成阿里云短信服务,帮…

XHR请求解密:抓取动态生成数据的方法

在如今动态页面大行其道的时代,传统的静态页面爬虫已无法满足数据采集需求。尤其是在目标网站通过XHR(XMLHttpRequest)动态加载数据的情况下,如何精准解密XHR请求、捕获动态生成的数据成为关键技术难题。本文将深入剖析XHR请求解密…

STM32-I2C通信协议

目录 一:什么是I2C通信协议 二:I2C通信 三:I2C时序图 四:面试常见问题 一:什么是I2C通信协议 I2C(Inter-Integrated Circuit)协议是一种串口通信协议,用于在集成电路之间传输数…

Jenkins在Windows上的使用(一):用户配置

(一)下载jenkins和jdk 下载地址 https://www.jenkins.io/download/ jdk下载地址 https://www.oracle.com/java/technologies/downloads/安装jenkins的时候会提示需要的jdk版本(二)windows下创建用户账户 1. 创建jenkins用户 …

MQTT协议下温度数据上报观测云最佳实践

MQTT 介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种轻量级的、基于发布/订阅模式的消息传输协议,专为低带宽、高延迟或不可靠的网络环境设计,广泛应用于物联网(IoT&#xf…

立即释放 Mac 空间!Duplicate File Finder 8 重复文件高速清理工具

Duplicate File Finder 专业的 Mac 重复文件清理工具。查找并删除重复的文件、文件夹,甚至相似的照片。 不要让无用的文件占用磁盘上的宝贵空间。 整理你的 Mac。用最好的重复文件查找器来管理你的文件集合。 扫描任何磁盘或文件夹 主文件夹、照片/音乐库、外部磁…

一文对比RAGFLOW和Open WebUI【使用场景参考】

一、RAGFLOW与Open WebUI RAGFLOW是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不…

SpringBoot整合Caffeine本地缓存

本文章摘自 Java技术小馆https://www.yuque.com/jtostring/am5oq3/ac34uu2liy50t042?singleDoc#LyUGd 在现代的微服务架构中,缓存已经成为提升系统性能、降低数据库压力和提高响应速度的关键技术之一。对于Java开发者而言,Spring Boot作为一种开发框架…

腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台

今天,在腾讯的 Shiply 平台看 Flutter 动态化自研框架 Conch 时,在侧边栏看到了有「跨端开发框架」的介绍,点开发现有两个产品: Hippy:面向前端技术栈的跨端开发框架,Web原生开发体验,支持 Rea…

性能案例经验总结

数据库案例总结案例一:索引创建不合适导致性能问题背景接口getResourceByRoleID在单交易测试时,发现接口响应时间过长,DB 消耗资源比较严重。 关键字db2advis 、执行计划、runstat 、权限接口 问题分析首先是找出接口调用的SQL语句,有两个方法通过DB2top 命令 查找通过以下提…