RIPS源码精读(一):逻辑流程及lib文件夹大致阐明

访客5年前关于黑客接单1210

很早就有深入剖析学习一款源代码审计东西的主意,在查找rips源码剖析相关材料时,发现相关的学习剖析材料较少,所以挑选rips作为该系列文章的剖析方针,由于没有最新版的rips的源码,因而选取的rips源码为已揭露的版别。由于我是之一次将详细的剖析写下来,而且自身的技能才能问题,在某些场景下的用语或许技能细节描述或许存在误差,请师傅们包容。
导言
RIPS是一个源代码剖析东西,它运用了静态剖析技能,可以自动化地发掘PHP源代码潜在的安全缝隙
本篇内容
作为本系列文章的开端,只介绍rips的逻辑流程以及lib文件夹下各文件大致内容剖析,不详细剖析代码审计的细节,相关细节在之后的文章中剖析
全体结构
RIPS东西的全体架构如下:
+-- CHANGELOG [file]
+-- config [dir]
|   +-- general.php
|   +-- help.php
|   +-- info.php
|   +-- securing.php
|   +-- sinks.php
|   +-- sources.php
|   +-- tokens.php
+-- css [dir]
|   +-- ayti.css
|   +-- barf.css
|   +-- code-dark.css
|   +-- espresso.css
|   +-- notepad++.css
|   +-- phps.css
|   +-- print.css
|   +-- rips.css
|   +-- rips.png
|   +-- scanning.gif
|   +-- term.css
|   +-- twlight.css
+-- index.php [file]
+-- js [dir]
|   +-- exploit.js
|   +-- hotpatch.js
|   +-- netron.js
|   +-- script.js
+-- lib [dir]
|   +-- *** yzer.php
|   +-- constructer.php
|   +-- filer.php
|   +-- printer.php
|   +-- scanner.php
|   +-- searcher.php
|   +-- tokenizer.php
+-- LICENSE [file]
+-- main.php [file]
+-- README.md [file]
+-- windows [dir]
|   +-- code.php
|   +-- exploit.php
|   +-- function.php
|   +-- help.php
|   +-- hotpatch.php
|   +-- leakscan.php
config目录:放置各种装备信息
css目录:放置css款式文件
js目录:放置js代码文件
lib目录:rips的中心代码文件
window:rips的前端构成
lib文件夹阐明
lib文件夹寄存rips运转的中心文件,界说了很多函数以及类用以完结rips完好的代码剖析功用
*** yzer.php
仅界说了Analyzer类,并在类中界说了三个函数,别离是get_tokens_value,get_var_value,getBraceEnd,Analyzer类首要用以依据token信息剖析文件信息
constructer.php
本文件界说了五个类,别离为VarDeclare、VulnBlock、VulnTreeNode、InfoTreeNode、FunctionDeclare,别离用以存储变量、缝隙总干、每个缝隙详细信息、存储信息、存储函数
filer.php
仅界说了函数read_recursiv,用以遍历文件夹下的文件信息
printer.php
界说很多函数,根本都是用于将剖析得到的成果输出至前端页面
scanner.php
仅界说了scanner类,类中包含很多办法,本文件为rips剖析操作的中心文件,包含token处理、字段处理等功用
searcher.php
仅界说了searchFile函数,首要用于依据token信息剖析缝隙状况,并运用VulnTreeNode类加以实例化
tokenizer.php
仅界说了Tokenizer类,类中界说很多函数,其他文件中所用到的token信息均来历于此文件
index.php 剖析
index.php是rips项意图进口文件,因而我放在了之一个剖析。
代码构成首要是前端文件,功用方面首要将方针途径、扫描类型等参数发送至剖析模块。
在index.php的112行邻近,触发点击事情,进入main.php
main.php剖析
main.php是整个rips代码剖析的开端部分
装备文件引进:
    include('config/general.php');          // 首要为各种参数的初始设置
    include('config/sources.php');          // 或许从外部引进数据的函数或全局变量,如$_GET、file_get_contents()
    include('config/tokens.php');           // 将代码分割成许多个token,以便于词法剖析
    include('config/securing.php');         // 依据函数的意图运用以及作用不同区分,如 htmlspecialchars 划入数组变量 $F_SECURING_XSS
    include('config/sinks.php');            // 灵敏函数汇总,依据函数对应的功用不同进行更进一步的区分
    include('config/info.php');             // 对各种函数名增加对应注释,如sqlite_open()=>'using DBMS SQLite'
中心代码引进:
include('lib/constructer.php');         // 类信息
    include('lib/filer.php');               // 仅界说了一个函数,用以获取指定途径下一切文件
    include('lib/tokenizer.php');           // prepare and fix token list
    include('lib/ *** yzer.php');            // string *** yzers
    include('lib/scanner.php');             // provides class for scan

[1] [2] [3] [4] [5]  黑客接单网

相关文章

2019 Q2被黑网站趋势陈述:哪家CMS最易招黑?黑客侵略网站后会干什么?

Sucuri BLOG最近发布了2019年Q2季度被黑网站趋势陈述(Website Hacked Trend Report 2019 -Q2)。这家组织的事端呼应小组和歹意程序研讨组对部分被黑站点进行...

Webshell安全检测篇(3)-根据行为剖析来发现“不知道的Webshell”

一  “已知”or “不知道” 已知的已知,已知的不知道,不知道的不知道,这个最近安全职业也谈的比较多,现在圈内热炒的“要挟情报”,其实应该归于“已知的不知道”,对本地来说是不知道要挟,其实是其他当...

压缩包有密码怎么办,怎么找黑客查一个资料,网上找黑客查别人的资料靠谱吗

F12 输入 imageData.name , document.body.outerHTML 能够看调试成果select * from admin where id=1.1union select...

黑客接单论坛_网络上赌博输钱找黑客

4月7、售后服务套路多,明修暗骗躲不过一、多样化的进犯投进办法无黑客接单论坛,网络上赌博输钱找黑客 图1:真假页面链接比照Facebook 没有对此事置评。 文件名黑客接单论坛,网络上赌博输钱找黑客,...

能接单的黑客qq群号_学业网

无首要,咱们在视频中看到了经久不衰的“神器”猫池。 或许你能够有一个无符号的Int16数组,它能够将其分化成16位,处理它就好像是处理一个无符号的整数。 20、!@#$%^&* (新呈现)能接...

个人身份证信息查询_怎么找黑客记者电话-中国黑客联盟

news.maiyadi.comBulletin board:1.4获取数据库类型以及表和字段 registry.bind("hello", hello);#include "stand...