静态分析-RIPS-源码解析记录-02

这部分主要分析scanner.php的逻辑,在token流重构完成后,此时ini_get是否包含auto_prepend_file或者auto_append_file

 取出的文件路径将和tokens数组结合,每一个文件都为一个包含require+文件名的token数组

接着回到main.php中,此时调用scanner的parse开始解析,这里的一个设计点问题就是要扫描漏洞,此时已经需要准备好的有哪些东西

1.file_scanning:

 

这里实际上就代表的是将要进行扫描的文件,在这里实际上是对每个待扫描的php文件都将调用parse进行解析,files就是前端指定的目录位置,勾选subdirs就包括其子目录的php文件

2.scan_functions:

 

 扫描的结果显示级别是根据前端verbosity来进行选择,扫描函数是根据vuln type来选择

主要分为两个大类,客户端攻击和服务端

客户端主要包括

a.xss

主要是以下函数在输出时可能存在xss,其中每种函数都对应一个数组,0代表跟踪该函数所有参数,1代表跟踪第一个,2代表第2个,

其中securing_xss为一些过滤函数,包括把字符转为实体,将左右尖括号、单双引号、&转为html实体,所以这种防御并不是百分百有效的

b.http 头部注入

c.会话固定漏洞

服务端主要包括:

a.代码执行

 这里的securing_preg主要针对php5.x的e修饰符导致的代码执行,preg_quote将对正则进行转义

 

 b.反射注入

 c.文件读取

securing_file主要包括以下三种

 

d.文件系统操作相关和e文件包含相关也都是用的相同的securing_file

  

 f.命令执行相关

 securing_function主要关注两个命令转义函数

 

  g.sql操作相关:

  securing_function:

 h.xpath注入

securing_functions

  i.ldap注入

 

  

  j.连接相关的函数

 k.php对象注入:

 l.其他一些高危函数

 

因此以上一共是3种客户端+12种服务端=15种预配置的漏扫类型,但是这些漏洞并没有完全涵盖比如csrf、ssrf、xxe以及无法检测一些越权漏洞等逻辑漏洞,以及反序列化也不一定是unserialize,可能是phar反序列化

上面预先配置的这些函数也是作者对php的函数都做了相关的调查,建立在对php语言与漏洞本身的理解基础上(白盒对基础的要求还是高)

3.info_functions

info类中主要包括一些辅助审计的函数检测,比如出现phpinfo,将对应phpinfo detected,以及不同数据库用到的函数如果出现,则代表当前应用使用了哪些数据库

 

4.source_functions

待扫描的函数初始化后,将初始化source点

 

source点主要包括:

a.otherinput 包括http头部一些信息,超全局数组变量等操作函数

b.从文件中提取的输入

c.从数据库中提取的输入

这些输入点全部都定义在source.php,其中还包括userinput,http server相关的一些参数,不过这两类输入在初始化时并未加入source_functions数组

 

 info中还包含了常用的一些pop链构造需要的一些gadget方法

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

收音机套件焊接和装调的总结

很早之前买了一个小收音机,今天翻出来焊接上。 还好,质量挺好的,电路板没有氧化。 一。静态电流 pcb上面留有ABCD四个测电流的位置。方便调试。 焊接后,V1电流偏大,如果电流过大,会导致R2的压降过大&am…

双目相机标定流程(MATLAB)

一:经典标定方法 1.1OPENCV 1.2ROS ROS进行双目视觉标定可以得到左右两个相机的相机矩阵和畸变系数,如果是单目标定,用ROS会非常方便。 3.MATLAB标定(双目标定) MATLAB用来双目标定会非常方便,主要是为…

1.分布式-理论

目录 一、什么是分布式系统 二、CAP理论 1.一致性Consisency 2.可用性(Availability) 3.分区容错性(Partition tolrance) 三、BASE理论 1.Basically Available(基本可用) 2.Soft state(软状态) 3.Eventually consistent(最终一致性&a…

Linux虚拟主机如何设置错误页面

设置一个定制的404页面对网站有多种好处。首先,它能够提升用户体验,当用户访问错误的网址或不存在的页面时,定制的404页面能够友好地提醒用户并给予导航或提示。其次,404页面可以帮助留住访问者,让他们在意外情况下不至…

国产版Sora到来!视频大模型更上一层楼

大模型的快节奏发展,让了解最新技术动态、积极主动学习成为每一位从业者的必修课。InfoQ 研究中心期望通过每周更新大模型行业最新动态,为广大读者提供全面的行业回顾和要点分析。现在,让我们回顾过去一周的大模型重大事件吧。 一、重点发现…

解决ubuntu无法上网问题

发现是网络配置成了Manual手动模式,现在都改成自动分配DHCP模式 打开后,尝试上网还是不行,ifconfig查看ip地址还是老地址,怀疑更改没生效,于是重启试试。 重启后,ip地址变了,可以打开网页了 …

SQL Server 存储过程中的字符串本身包含单引号的用法

文章目录 引言I 存储过程中的字符串本身包含单引号的用法1.1 问题1.2解决方法引言 使用场景: 字符串类型字段的值比较 I 存储过程中的字符串本身包含单引号的用法 在SQL Server中,单引号用于表示字符串常量。如果你的存储过程中的字符串本身包含单引号,你需要用两个连续的…

SpringCloud 2023.0.1

本文介绍如何使用 springboot3及cloud2023 进行微服务模块化开发 采用父-module 模块开发 父工程 demo-java pom.xml <!--配置 springboot的依赖的版本号, 方便 module 进行继承--><dependencyManagement><dependencies><!--增加 springboot的依赖--&g…

25_Scala集合Tuple

文章目录 tuple1.元组定义2.Tuple元素访问3.如果元素的len2&#xff0c;称之为键值对对象&#xff0c;也称之为对偶元组4.补充上节Map5.Map集合遍历6.集合之间相互转化 tuple 概念&#xff1a;scala语言采用特殊的方式将无关的数据作为一个整体&#xff0c;组合在一起’ 1.元…

3款超好用的智能AI写作神器,不容错过!

在当代写作领域&#xff0c;人工智能&#xff08;AI&#xff09;辅助的写作工具已显著地改变了创作过程&#xff0c;不仅优化了撰写效率还提高了内容质量。为了协助读者更好地了解并利用这些先进的工具&#xff0c;本文将详细评述3种卓越的AI驱动的写作辅助软件&#xff0c;每一…

车辆管理|基于SprinBoot+vue的4S店车辆管理系统(源码+数据库+文档)

4S店车辆管理系统 目录 基于SprinBootvue的4S店车辆管理系统 一、前言 二、系统设计 三、系统功能设计 系统实现 1管理员功能模块 2销售员功能模块 3维修员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xf…

scikit-learn多因子线性回归预测房价

1.首先是单因子线性回归预测房价 import numpy as np import pandas as pd from matplotlib import pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score# 1.读取csa房屋数据 path D:/pythonDATA/us…