zoukankan      html  css  js  c++  java
  • 审计7 水平越权

     1 <?php
     2 include_once('../sys/config.php');
     3 if (isset($_POST['submit']) && !empty($_POST['username']) ) {
     4 
     5     if (strlen($_POST['username'])>16) {
     6         $_SESSION['error_info'] = '用户名過長(用戶名長度<=16)';
     7         header('Location: edit.php');
     8         exit;
     9     }
    10 
    11     $clean_username = clean_input($_POST['username']);
    12     $clean_user_id = clean_input($_POST['id']);
    13     
    14     //判断用户名已是否存在
    15     $query = "SELECT * FROM users WHERE user_name = '$clean_username'";
    16     $data = mysql_query($query, $conn);
    17     if (mysql_num_rows($data) == 1) {
    18         $_SESSION['error_info'] = '用户名已存在';
    19         header('Location: edit.php');
    20         exit;
    21     }
    22     
    23     $query = "UPDATE users SET user_name = '$clean_username' WHERE user_id = '$clean_user_id'";
    24     mysql_query($query, $conn) or die("update error!");
    25     mysql_close($conn);
    26     //刷新缓存
    27     $_SESSION['username'] = $clean_username;
    28     header('Location: edit.php');
    29 }
    30 else {
    31     not_find($_SERVER['PHP_SELF']);
    32 }
    33 ?>

    首先在./user/edit.php中看见名字为

    搜索关键字  username 找到  ../sys/config.php  在11行和12行直接把user 和 id 读出来直接赋值带入数据库

    而且没有做任何的过滤

    在23行$query = "UPDATE users SET user_name = '$clean_username' WHERE user_id = '$clean_user_id'";

    发现他直接可以更新用户的用户名,而且用户id可控,也就是说可以修改任意id的用户名,并且查询用户资料。

    构造pyload:

    首先 需要三个参数   $_POST['submit']    $_POST['username']   $_POST['id']

    post 给updateName.php

    首先观察到用户  id为10的用户名字为shuaibi

    我目前的用户为root   id为8

    submit的值可以为任意数,只要设定了就好

    构造post参数  越权修改id为10的用户名字

    可以发现此时我已经以hankbay的身份登录

    查看数据库:

    id为10的用户姓名已被我修改。

    修复:需要在

    user_id = '$clean_user_id'";的地方修改为在ssion里去取,而不是直接post去取
  • 相关阅读:
    基于centos6.5 hbase 集群搭建
    基于centos6.5 hadoop 集群搭建
    centos 6.5 搭建zookeeper集群
    centos 6.5 配置ssh免登录
    基于centos6.5 hadoop 伪分布式安装
    跟我学Spring Boot(三)Spring Boot 的web开发
    跟我学Spring Boot(二)Hello World
    BZOJ1034: [ZJOI2008]泡泡堂BNB
    BZOJ1191: [HNOI2006]超级英雄Hero
    BZOJ1432: [ZJOI2009]Function
  • 原文地址:https://www.cnblogs.com/pojun/p/7360447.html
Copyright © 2011-2022 走看看