实训日志day5

6 篇文章 0 订阅
6 篇文章 0 订阅

今天主要讲解了命令行查看数据库、数据库连接、越权访问

命令行的使用
在文件根目录下执行cmd,输入数据库的账号和密码进行数据库的访问
在这里插入图片描述
输入 show databases;语句查看数据库表,注意是databases后面有一个分号‘;’

 show databases;

数据库表单
查看数据库表,show tables;

show tables;

数据库表
通过查询语句访问数据库表users,select * from users;

select * from users;

访问数据库表信息
通过查询语句查询数据库信息单条信息

select * from users where username='student1' and password='123456';

单信息查询
逻辑语句的优先级,and和or,输入语句select * from users where username=‘stu1’ and password=‘11111’ or 1;可以看到输出的是全部信息,表中并无查询的信息,优先级就是前面所查询的没有信息的语句为假,但是or1与前面进行逻辑运算可以看到最终语句为1也就是为真,所以相当于打出整个表的信息。

select * from users where username='stu1' and password='11111' or 1;

在这里插入图片描述
根据不同的名称进行排序,输入语句select * from users order by username;

select * from users order by username;

排序

数据库连接

数据库连接,连接到phpstudy下的mysql,注意的是不要连接本机的另一个mysql数据库

 $sql ="select * from users where username='$name' and password='$pass'";
    #$sql="select * from security";
    echo $sql;
    $conn=mysqli_connect('localhost','root','root','score_system');/*localhost或127.0.0.1或本地ip*/

可以看到数据库已经连接成功:
数据库连接成功
越权访问
在越权访问这里需要使用到抓包工具brupsute,通过php文件的编写实现,其中有login.php、logindeal.php、student.php、teacher.php为主要功能文件,进行越权访问的主要原理是对cookie值的篡改,将其值改成所需要访问的类型值,其中还讲到了对cookie值的注销。
login.php文件:这部分代码包括了对数据库的访问,数据库的连接,连接成功后通过数据库内存储的信息进行分析,通过登录页面输入的信息与数据库信息进行对比,判断输入的用户名和密码是否正确,进而判断登录是否成功。代码如下:

 		$req=mysqli_query($conn,$sql);
        $num=mysqli_num_rows($req);
        if ($num===1)
        {
            echo "登录成功";
            $res=mysqli_fetch_array($req);
            $role=$res['role'];
            setcookie("username",$name,time()+3600);
            setcookie("role",$role,time()+3600);
            header("Location:logindeal.php");
            echo "<a href='loginout.php'>注销</a>";
        }
        else
        {
            echo "登录失败!";
        }

login.php 完整代码:

<?php
    echo "<meta charset='UTF-8'>";
    echo "Hello word!","hello worth!<br>";
	echo "<br>";
    $pass=$_POST['pass'];
    $name=$_POST['name'];
    $sql ="select * from users where username='$name' and password='$pass'";
    #$sql="select * from security";
    echo $sql;
    $conn=mysqli_connect('localhost','root','root','score_system');//localhost或127.0.0.1或本地ip
    if ($conn)
    {
        echo "数据库连接成功!"."<br>";
        $req=mysqli_query($conn,$sql);/*将数据库里面的数据赋值*/
        $num=mysqli_num_rows($req);/*返回结果值*/
        if ($num===1) /*判断输入信息是否与数据库一致*/
        {
            echo "登录成功";
            $res=mysqli_fetch_array($req);
            $role=$res['role'];
            setcookie("username",$name,time()+3600);/*设置cookie值的有效时长*/
            setcookie("role",$role,time()+3600);
            header("Location:logindeal.php");/*跳转到角色判断界面*/
            echo "<a href='loginout.php'>注销</a>";
        }
        else
        {
            echo "登录失败!";
        }
    }
    else
    {
        echo "数据库链接失败!";
    }
?>

logindeal.php文件:这一部分对登录角色信息进行判断,不同角色的信息分别进入不同的界面,完整代码如下:

<?php
    $role=$_COOKIE['role'];
    if ($role=="teacher")
    {
        header("Location:teacher.php");
    }
    elseif($role=="student")
    {
        header("Location:student.php");
    }
    else
    {
        header("Location:login.php");
    }
?>

下面是登录界面的效果图:
登录界面效果图
下面是正常登录界面所进入的界面,老师界面是老师好,学生界面是学生好:
正常界面
下面是使用burpsuite对登录的信息进行抓包,抓包后将其cookie值进行修改:
未修改role前:
未修改
修改role之后:
在这里插入图片描述
可以看到通过对cookie值中的role进行角色信息的篡改,可以将学生登录的权限界面跳转到教师权限界面。
下面是teacher.php和student.php完整代码:
teacher.php:

<?php
    echo "<meta charset='UTF-8'>";
    echo "老师好!";
?>

student.php:

<?php
    echo "<meta charset='UTF-8'>";
    echo "同学好!";
?>

上面说到的对cookie值的注销代码,loginout.php完整代码:

<?php
    echo "<meta charset='UTF-8'>";
    $name=$_COOKIE['username'];
    setcookie("username",$name,time()-3600);/*将cookie有效值时间减掉*/
    echo "cookie已注销";
    echo $name;
?>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值