当前位置: 首页 > news >正文

20145223 杨梦云 《网络对抗》 Web基础

20145223 杨梦云 《网络对抗》 Web基础

1.实验后回答问题

(1)什么是表单

表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分:(1) 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。

(2) 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 

(3)表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

一般我们看见的网站的登录界面、调差问卷、查询输入框等等,都属于表单。

(2)浏览器可以解析运行什么语言。

文本标记语言:HTML

•可扩展标记语言:XML

•脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等

(3)WebServer支持哪些动态语言

ASP语言,PHP语言和JSP语言等。

2.实验总结与体会

这次实验我觉得内容还是涉及到很多方面的,作为ltc的室友已经无数次看见她做实验的时候炸毛了=-=。我们设计的网站都比较脆弱,所以这些攻击才能很容易的实现,但是我们平时所用到的邮箱、淘宝这类的大型网站,除了要考虑网站安全、数据库安全这些因素一位以外,还要保证页面的友好美观,真的是一个不小的工程。我们现在的水平确实有限,但是能够掌握一些最基本的概念和防范方法,也是一种收获。

3.实践过程记录

(一)、Apache配置

1、apachectl start开启apache,并用netstat -aptn查看apache所占用的端口号:

890352-20170505200802382-126346881.png

上一次做实验的时候,将/etc/apache2/ports.conf的端口号设置为了80

2、在浏览器中输入localhost:80 测试apache是否正常开启

890352-20170505200828179-1196206754.png

可以看到上一次伪装的网页页面,说明apache正常工作

(二)网页编写

1、cd /var/www/html在Apache的工作目录下新建并编写一个最简单的含有表单的html文件,如下:

890352-20170505200950695-584446207.png

2、打开firefox浏览器打开localhost:80/20145223.html:

890352-20170505201012195-190395628.png

3、如果填写上内容并submit,因为没有上面代码里标出的一行中action指定的php文件,所以会出现not found的提示:

890352-20170505201041914-540926121.png

(三)javascript

JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。

1、javascript编写验证用户名和密码的规则,限制用户文本框必须输入内容:

890352-20170505201102711-1344276828.png

2、新建php测试文件,php的测试代码:

890352-20170505201118476-370299511.png

3、浏览器打开php测试页面:

890352-20170505201131039-426258921.png

(四)Mysql和相应准备

1、/etc/init.d/mysql start开启mysql数据库,mysql -u root –p输入密码p@ssw0rd

890352-20170505201202867-812963618.png

2、修改密码

步骤:
·输入use mysql;,选择mysql数据库
·输入select user, password, host from user;,mysql库中的user表中存储着用户名、密码与权限

890352-20170505201217648-671802056.png

·输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';
·输入flush privileges;,更新权限
·输入quit退出

890352-20170505201229664-712179144.png

3、创建一个名为5223mysql的数据库,在其中创建一个名为5223的表

CREATE SCHEMA `5223mysql`;
CREATE TABLE `5223`.`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 '');

890352-20170505201242664-826917710.png

4、向创建好的表中插入数据:

use 刚刚建立的库表名

insert into users(userid,username,password,enabled) values(1,'用户id',password("用户密码"),"TRUE");

890352-20170505201314882-761807073.png

5、查看创建好的库

890352-20170505201608007-1132724583.png

6、在/var/www/html下编写与数据库连接的php页面,其中包含连接数据库的额基本信息(本机地址用户名密码连接的数据库名称)

890352-20170505201622554-824041180.png

7、网页登录成功页面

890352-20170505201703601-649837477.png

8、网页登录失败页面

890352-20170505201718914-917529580.png

9、套用ltc同学模板的登录界面(这个比我自己做的好看,就用这个做了)

890352-20170505201733961-131410283.png

10、成功登陆以后的结果(和之前是一样的)

890352-20170505201751601-206223745.png

11、失败结果

890352-20170505201821664-1293201282.png

12、为了使登录成功以后界面更加友好,在login.php中添加一行代码:

890352-20170505201846164-1041439869.png

我这里为了跳转更快所以选择了两秒,不过发现到后面为了验证sql注入时结果截图不好截,还是该回6秒

13、再次登录以后跳转的界面

890352-20170505201907304-628377222.png

(五)SQL注入

1、在网页登录的用户名中填写' or 1=1#,密码随意

890352-20170505201939711-636913038.png

2、成功登陆

890352-20170505201953617-1992286789.png
890352-20170505202042367-569924025.png

SQL查询语句为select * from users where username='' or 1=1#' and password=md5(''),1=1成立,因此可以直接登录

3、第二种是在用户名中写入';insert into users(userid,username,password,enabled) values(888,'5204',password("20145204"),"TRUE");#,通过SQL注入将用户名和密码保存在数据库中

890352-20170505202058164-1031016743.png

4、出来的界面如下:

890352-20170505202124507-703956869.png

5、没有成功的结果是因为代码中的这条语句不允许多条执行(防范SQL攻击),需要将其修改为$result = $mysqli->multi_query($query_str))

890352-20170505202218445-406951402.png

6、修改后可以用添加到的用户名密码登陆,查看mysql,数据已经成功添加进去了

890352-20170505202305148-2085159869.png

(六)XSS

1、将保存的图片重命名拷贝到/var/www/html目录下,在用户名输入框中输入<img src="5223.jpg" />5223</a>,给出图片超链接

890352-20170505202319054-1834041288.png

2、再次登陆后,可以看见5223.jpg

890352-20170505202328586-1795333002.png

转载于:https://www.cnblogs.com/20145223ymy/p/6814735.html

相关文章:

  • ionic入门之数据绑定显示-1
  • TFS 测试用例导入、导出工具
  • IntelliJ IDEA搭建SpringBoot
  • Hadoop OutputFormat浅析
  • php7 安装yar 生成docker镜像
  • 闪屏完善
  • vSphere
  • sed awk 练习
  • 利用数组创建的顺序表实现各种功能
  • 公司管理系列--80% of Your Culture is Your Founder(FaceBook)
  • 一道有趣的啤酒趣味题
  • Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)...
  • javaWeb_使用标签库简化jsp
  • 地图后台判断一点是否在一个区域内
  • 思科路由器DHCP配置(GNS3模拟)
  • 时间复杂度分析经典问题——最大子序列和
  • 2017-08-04 前端日报
  • ES10 特性的完整指南
  • java中的hashCode
  • overflow: hidden IE7无效
  • Python3爬取英雄联盟英雄皮肤大图
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Vue--数据传输
  • 安装python包到指定虚拟环境
  • 程序员该如何有效的找工作?
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 山寨一个 Promise
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 通过调用文摘列表API获取文摘
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #Java第九次作业--输入输出流和文件操作
  • #Linux(帮助手册)
  • #图像处理
  • (poj1.3.2)1791(构造法模拟)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)大型网站架构演变和知识体系
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET Framework杂记
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 读取 JSON格式的数据
  • .NET 回调、接口回调、 委托
  • .net 受管制代码
  • .net对接阿里云CSB服务
  • .net连接oracle数据库
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .NET是什么