May062020
DVWA-2.2 Command Injection(命令注入)-Medium-绕过弱的黑名单
Medium Level
查看源码
<?php
if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $target = $_REQUEST[ 'ip' ];
    // Set blacklist----黑名单:删掉&&和;
    $substitutions = array(
        '&&' => '',
        ';'  => '',
    );
    // Remove any of the charactars in the array (blacklist).
    $target = str_replace( array_keys(...阅读全文
抢沙发
May062020
DVWA-2.1 Command Injection(命令注入)-Low
Low Level
查看源码
<?php
if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $target = $_REQUEST[ 'ip' ];
    // Determine OS and execute the ping command.
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
        // Windows
        $cmd = shell_exec( 'ping  ' . $target );
    }
    else {
        // *nix
        $cmd = shell_exec( 'ping  -c 4...阅读全文
May062020
DVWA-1.4 Brute Force(暴力破解)-Impossible
Impossible Level
查看源码
<?php
if( isset( $_POST[ 'Login' ] ) && isset ($_POST['username']) && isset ($_POST['password']) ) {
    // Check Anti-CSRF token---校验token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
    // Sanitise username input----过滤、转义用户输入的username
    $user = $_POST[ ...阅读全文
May062020
DVWA-1.3 Brute Force(暴力破解)-High-绕过token
High Level
查看源码
<?php
if( isset( $_GET[ 'Login' ] ) ) {
    // Check Anti-CSRF token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
    // Sanitise username input
    $user = $_GET[ 'username' ];
    $user = stripslashes( $user );
    $user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS[...阅读全文
May062020
DVWA-1.2 Brute Force(暴力破解)-Medium
Medium Level
此阶段在失败的登录页面上加上了sleep(2),这意味着当我们输入的用户名或密码错误时,将需要等待额外的两秒钟才能看到错误页面。这只会减少单位时间内可处理的请求数量,从而使暴力破解的时间更长。
另外,本阶段源码通过mysql-real-escape-string()函数对输入的用户名和密码中的特殊字符进行了转义,以防止sql注入,因此无法使用万能密钥登录。
源码
<?php
if( isset(...阅读全文
May062020
php计算两个时间戳之间相差的日时分秒的两种方法
php计算两个时间戳之间相差的日时分秒的两种方法。
/**
 * 计算两个时间戳之间相差的日时分秒
 * @param int $unixTime_1 开始时间戳
 * @param int $unixTime_2 结束时间戳
 * @return array
 */
function timeDiff($unixTime_1, $unixTime_2) {
    $timediff = abs($unixTime_2 - $unixTime_1);
    //计算天数
    $days = intval($timediff / 86400);
    //计算小时数
    $remain ...阅读全文
Apr262020
jQuery ajax再封装使用方法
有时候我们需要统一整个项目的ajax请求格式,比如在所有的ajax请求中附加上一些必须的参数,这时就不可能一个一个的去加了,我们可以在jquery的ajax方法的基础上再封装一层做统一处理,具体代码如下,供参考:
/**
 * ajax post 提交
 * @param param 参数(json格式)
 * @param successCallback 成功后的回调函数
 * @return
 * @author www.phpernote.com
 */
function sendAjax(param, ...阅读全文
Apr262020
Apr262020
使用PHP如何获取某个周的所有日期列表
使用PHP如何获取某个周的所有日期列表。
/**
 * 获取本周所有日期列表
 * @param string $time
 * @param string $format
 * @return array
 */
function get_week_day_list($time = '', $format = 'Y-m-d') {
    $time = $time != '' ? $time : time();
    //获取当前周几
    $week = date('w', $time);
    $date = [];
    for ($i = 1; $i <= 7; $i++) {
        $date[$i] = d...阅读全文
Apr262020
 
        
         
 
 
 
 
 
 
