博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dvwa 源码分析(二) --- dvwaPage.inc.php分析
阅读量:4684 次
发布时间:2019-06-09

本文共 3797 字,大约阅读时间需要 12 分钟。

在setup.php中,包含了这个文件,所以这里分析这个文件。

1 

在setup.php中,定义了DVWA_WEB_PAGE_TO_ROOT为空

所以这里判断是否已经定义,如果未定义,则会报错,我测试了,报错是

Warning: define() expects at least 2 parameters, 1 given

然后退出。

然后是启用会话。

// Include configsrequire_once DVWA_WEB_PAGE_TO_ROOT.'config/config.inc.php';require_once( 'dvwaPhpIds.inc.php' );

然后再次包含两个文件,我们先去分析这两个文件。

 

分析了这两个文件,我们继续往下分析

声明html变量

// Declare the $html variableif(!isset($html)){    $html = "";}
$html变量声明

设置dvwa安全等级cookie

// Set security cookie to high if no cookie existsif (!isset($_COOKIE['security'])){    setcookie( 'security', 'high' );}
设置安全等级cookie

返回dvwa版本号

// DVWA versionfunction dvwaVersionGet() {    return '1.0.7';}
dvwa 版本

dvwa 发布日期

// DVWA release datefunction dvwaReleaseDateGet() {    return '08/09/10';}
dvwa发布日期

以数组的形式定义会话信息

// Start session functions -- function &dvwaSessionGrab() {    if( !isset( $_SESSION[ 'dvwa' ] ) ) {        $_SESSION[ 'dvwa' ] = array();    }    return $_SESSION[ 'dvwa' ];}
启用会话功能

判断用户是否登录,是否使用IDS功能

function dvwaPageStartup( $pActions ) {    if( in_array( 'authenticated', $pActions ) ) {        if( !dvwaIsLoggedIn()){            dvwaRedirect( DVWA_WEB_PAGE_TO_ROOT.'login.php' );        }    }    if( in_array( 'phpids', $pActions ) ) {        if( dvwaPhpIdsIsEnabled() ) {            dvwaPhpIdsTrap();        }    }}
dvwaPageStartup

启用IDS功能

function dvwaPhpIdsEnabledSet( $pEnabled ) {    $dvwaSession =& dvwaSessionGrab();    if( $pEnabled ) {        $dvwaSession[ 'php_ids' ] = 'enabled';    } else {        unset( $dvwaSession[ 'php_ids' ] );    }}
dvwaPhpIdsEnabledSet

判断是否启用了IDS功能

function dvwaPhpIdsIsEnabled() {    $dvwaSession =& dvwaSessionGrab();    return isset( $dvwaSession[ 'php_ids' ] );}
dvwaPhpIdsIsEnabled

用户登录

function dvwaLogin( $pUsername ) {    $dvwaSession =& dvwaSessionGrab();    $dvwaSession['username'] = $pUsername;}
dvwaLogin

判断用户是否已经登录

function dvwaIsLoggedIn() {    $dvwaSession =& dvwaSessionGrab();    return isset( $dvwaSession['username'] );}
dvwaIsLoggedIn

用户退出,清除会话

function dvwaLogout() {    $dvwaSession =& dvwaSessionGrab();    unset( $dvwaSession['username'] );}
dvwaLogout

重新加载

function dvwaPageReload() {    dvwaRedirect( $_SERVER[ 'PHP_SELF' ] );}
dvwaPageReload

返回当前用户

function dvwaCurrentUser() {    $dvwaSession =& dvwaSessionGrab();    return ( isset( $dvwaSession['username']) ? $dvwaSession['username'] : '') ;}
dvwaCurrentUser

初始化页面

function &dvwaPageNewGrab() {    $returnArray = array(        'title' => 'Damn Vulnerable Web App (DVWA) v'.dvwaVersionGet().'',        'title_separator' => ' :: ',        'body' => '',        'page_id' => '',        'help_button' => '',        'source_button' => '',    );    return $returnArray;}
dvwaPageNewGrab

获取当前安全等级

function dvwaSecurityLevelGet() {    return isset( $_COOKIE[ 'security' ] ) ? $_COOKIE[ 'security' ] : 'high';}
dvwaSecurityLevelGet

设置安全等级

function dvwaSecurityLevelSet( $pSecurityLevel ) {    setcookie( 'security', $pSecurityLevel );}
dvwaSecurityLevelSet

启用消息函数,以压入栈的方式(数组)

// Start message functions -- function dvwaMessagePush( $pMessage ) {    $dvwaSession =& dvwaSessionGrab();    if( !isset( $dvwaSession[ 'messages' ] ) ) {        $dvwaSession[ 'messages' ] = array();    }    $dvwaSession[ 'messages' ][] = $pMessage;}
Start message functions

弹出消息,以出栈的方式

function dvwaMessagePop() {    $dvwaSession =& dvwaSessionGrab();    if( !isset( $dvwaSession[ 'messages' ] ) || count( $dvwaSession[ 'messages' ] ) == 0 ) {        return false;    }    return array_shift( $dvwaSession[ 'messages' ] );}
dvwaMessagePop

以html的形式返回所以消息

function messagesPopAllToHtml() {    $messagesHtml = '';    while( $message = dvwaMessagePop() ) {    // TODO- sharpen!        $messagesHtml .= "
{
$message}
"; } return $messagesHtml;}
messagesPopAllToHtml

。。

 

转载于:https://www.cnblogs.com/tk091/p/3219968.html

你可能感兴趣的文章
KNN算法原理以及代码实现
查看>>
解读typescript中 super关键字的用法
查看>>
指定IE7(或其他版本)如何访问?
查看>>
iframe 自动适应页面高度
查看>>
eclipse环境下基于tomcat-7.0.82构建struts2项目
查看>>
input标签附带提示文字(bootstrap里面输入框的两侧同时添加额外元素)
查看>>
VHDL硬件描述语言学习笔记---VHDL语言要素
查看>>
.NET Core单文件发布静态编译AOT CoreRT
查看>>
连接MySQL数据库 ODBC DSN的配置
查看>>
Vmware+CentOs7+共享目录
查看>>
JQuery之初探
查看>>
深入了解父类引用指向子类
查看>>
《C语言编写 学生成绩管理系统》
查看>>
Codeforces Round #257 (Div. 2/A)/Codeforces450A_Jzzhu and Children
查看>>
python 之金玉良言 或许是最后一次给自己系统总结--已结
查看>>
目录,文件等
查看>>
解决不能再jupyter notebook中使用tensorflow
查看>>
Python Day10(补充)
查看>>
C字符串输入输出函数
查看>>
《Android开发卷——ListView嵌套GridView(基础)》
查看>>