20155234 《网络对抗》Exp 8 Web基础

基础问答

  • 什么是表单
    可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。 表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另一部分是脚本或应用程序用于处理提交的信息(如CGI脚本)。不使用处理脚本就不能搜集表单数据。
    表单通常是交由CGI(公共网关接口)脚本处理。CGI是一种在服务器和处理脚本之间传送信息的标准化方式。CGI脚本比较典型的是使用Perl语言编写,当然也有其他语言如C++,Java,VBScript或JavaScript。在创建交互表单之前,接洽您的ISP或服务器管理员以确认CGI脚本可以在您的服务器上运行。
    表单由文本域、复选框、单选框、菜单、文件地址域、按钮等表单对象组成,所有的部分都包含在一个由标识符标志起来的表单结构中。
    表单的种类有注册表、留言薄、站点导航条、搜索引擎等。
  • 浏览器可以解析运行什么语言?
    支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等众多脚本语言。
  • WebServer支持哪些动态语言?
    JavaScript、ASP、PHP、Ruby等脚本语言,ASP基于IIS WEB SERVER,是微软的服务器端脚本技术,PHP基于APACHE WEB SERVER,与ASP有几分类似,都是一种在服务器端执行的嵌入HTML文档的脚本语言。

实践内容

  • Web前端HTML
    启动:apachectl start
    查看端口占用情况:netstat -aptn

    浏览器登录到Apache首页 ok可用

    Apache的工作目录是/var/www/html,编写一个HTML作为前端的登录页面

    我并没有绑定php,所以回车后会出现这种情况
  • Web前端javascipt
    用JavaScript来编写一个验证用户名、密码的函数,当其为空或者长度不符合要求时提示错误信息
  • Web后端,MySQL基础
    安装:apt-get install mysql
    启动/etc/init.d/mysql start
    登陆:mysql -u root -p

    MySQL建表建库
    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 '');
    输入insert into users(userid,username,password,enabled) values(ID号,'用户id',password("用户密码"),"TRUE");添加新用户。
  • PHP测试
    新建一个PHP测试文件vi /var/www/html/1.php
  • Web后端:编写PHP网页,连接数据库,进行用户认证
    这里我们修改第二个任务的php文件,使之可以查询数据库
    但是我的kail虚拟机出现问题,php不能链接到mysq,所以采用了同学的解决方法,下载一个XAMPP来在主机上进行接下来的实验
    测试如下
    正确输入用户名密码

    错误输入用户名密码
  • 最简单的SQL注入
    在用户名输入框中输入' or 1=1#,密码随便输入

    竟然登录成功了,这是因为,这时候' or 1=1#合成后的SQL查询语句为select * from lxmtable where username='' or 1=1#' and password=md5(''),#相当于注释符,会把后面的内容都注释掉,1=1是永真式,所以这个条件肯定恒成立,一定会登陆成功。
  • xss攻击
    在用户名输入框中输入读取图片,图片和网页代码在同一文件夹下

    ok,成功了。

实验体会

这次实验前面一直很顺利,但是在php链接数据库时出现了问题,使用了很多同学成功的代码,将其中需要改成自己mysql的都改好,但还是不能够解决这个问题,浪费了很多时间,最后还是用了主机完成了这次实验。

posted @ 2018-05-21 22:23  zdyt  阅读(115)  评论(0编辑  收藏  举报