20154327 EXP8 Web基础

Web前端HTML

kali:192.168.152.134

1.环境配置

  • 检查80端口有没有被占用:netstat -aptn | grep 80
    杀死占用的进程:kill 2380
    打开apache2:service apache2 start

  • 检测apache有没有正常工作

  • 这里为了区分,我又将自己的端口号改为了4327.

2.编写网页

  • 进入apache2的存储html文件的文件夹/var/www/html修改相应html文件,设计自身表单
  • 老师上课提到了QQ的登陆界面,我便去网上找了下QQ登陆界面的html源码,效果如下

  • 保存后在浏览器访问:localhost:4327/4327.html

  • 在上面的文本框内随意输入,然后点击授权并登陆,但由于下载的html里面没有写action的代码,点击后没有任何变化。

3.Web前端javascipt

  • 以下使用javascript创建一些简单的用户名密码的验证规则(用户名不能为空以及对密码长度做出限制)
<html>
    <head>
        <script>
            function username_test(){
                var nameTest=document.getElementById("username");
                if(nameTest.value==""){
                    alert("用户名不能为空");
                }
            }

            function password_test(){
                var pwdTest=document.getElementById("password");
                if(pwdTest.value.length<6){
                    alert("密码长度不得少于六位");
                }
            }
        </script>
    </head>
    <body>
    </body>
</html>

Web后端MySQL基础

1.mysql数据库基础使用

  • 开启sql服务:/etc/init.d/mysql start
  • 使用root身份登陆:mysql -u root -p
  • 输入密码,默认为p@ssw0rd,随后进入mysql
  • 使用:show databases;可以查看数据库里库表的基本信息

  • use mysql; 选择mysql数据库

  • select user, password, host from user; 查看mysql库中的user表,表中存储着用户名、密码与权限

  • UPDATE user SET password=PASSWORD("4327") WHERE user='root'; 更换密码为4327

  • 输入flush privileges; 更新权限
  • quit 退出

3.Mysql中建库建表

  • CREATE SCHEMA 4327_log; 建名为4327_log的库
  • CREATE TABLE 4327_log.users ( 表名为users
  • userid INT NOT NULL COMMENT '',
  • username VARCHAR(45) NULL COMMENT '',
  • password VARCHAR(256) NULL COMMENT '',
  • enabled VARCHAR(5) NULL COMMENT '',
  • PRIMARY KEY (userid) COMMENT '');

4.添加用户

  • 输入use 4327_log打开表
  • 添加用户名与密码均为4327的用户:
  • insert into users(userid,username,password,enabled) values(2,'154327',password("lovezh"),"TRUE");

4.Web后端数据库身份认证
1.登陆基础编写

  • 在/var/www/html文件夹下编写4327_login.html登陆界面
    并编写跳转界面4327_login.php

    <?php
    echo ($_GET["A"]);
    include($_GET["A"]);
    echo "hello this is 20154327<br>";
    ?>

登陆成功界面:

PHP+MySQL实现登录网页编写

  • 这一步卡了好久,换了好多种不同的PHP代码,也将自己的数据库修改无数次,各种不同的代码各有各的问题,最后终于将一个修改成功,这里贴出我的解决方案,供遇到相同问题的同学参考。

  • 在/var/www/html文件夹下编写123.html登陆界面并编写跳转界面login.php

  • 登陆成功界面:

  • 登陆失败界面:

  • 在调试时遇到了这个问题,打开测试页面的时候出现如下错误:Forbidden
    You don't have permission to access /123.html on this server.

  • 开始我以为我配置出错,花半天时间都没有搞定,最后仔细都了下英文,感觉是权限不够.

  • 原因:apache权限不够。

  • 解决方法:更改文件权限;cd过去更改权限,权限指令在一开始的实验楼上有学,修改为755,chmod 755 123.html

5.简单SQL注入
1.永真式

在用户名输入框中输入' or 1=1#,密码随便输入,就可以登陆成功

2.sql语句注入

在用户名输入框中输入:';insert into users(userid,username,password,enabled) values(666,'4327zh',password("1997"),"TRUE");#,将用户名为4327zh、密码为1997的用户注入users表中

但是跳转到了一个空白界面

一直登陆不成功是因为if ($result = $mysqli->query($query_str))这条语句不允许多条执行,即php防范SQL攻击的措施,改为if ($result = $mysqli->multiy_query($query_str))即可
我们在库表中查询一下,注入成功没有:

出现了4327zh这个用户,下面登陆成功:

6.XSS攻击测试
1.DOM—based XSS

在用户名输入框中输入:once后登陆
登陆失败,但是会显示那个图片:

一直是这个图片破损界面.

同上面网页打不开一样,我初步怀疑是权限不足造成的,

2.弹窗

在用户名输入框中输入:后点击登陆,出现弹框:

当然随后是登陆失败的界面

猜你喜欢

转载自www.cnblogs.com/lovezh/p/9054791.html