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

20154307《网络对抗》Exp8 Web基础

20154307《网络对抗》Exp8 Web基础

一、基础问题回答

(1)什么是表单

  表单在HTML中主要负责数据采集功能

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

支持HTML、XML以及Python、PHP、JavaScript、ASP等众多脚本语言。

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

JavaScript、ASP、PHP、Ruby等脚本语言

二、实验内容

1.HTML基础

首先打开apach服务,使用netstat -aptn查看一下端口占用

83oinZW.png

Apache服务开启后,我们在浏览器中输入localhost:80进行查看,然后看到Apache是工作的

0jiShHi.png

输入cd var/www/html,把路径转到Apache路径下

ujkT4Pl.png

vi 4307.html进入编辑界面,核心代码大致如下:

ZC3KoQT.png

其中method的属性有POST和GET两种,我在网上查了有关资料,整理如下:

1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,数据都会直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理

2、 Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容

3、Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击

建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法

4、Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框此处

我选择的是GET,

而action后是我之后做的php,此处可以填#,即为转跳回当前页。。。

下面就大致的效果图

xnZyBin.png

当然第一次做网页,效果还不是很理想,做的比较简陋,后面我再来完善它的一系列功能。。

2.javascipt基础

JavaScript一种直译式脚本语言,是 Web 的编程语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。

文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。DOM 定义了访问和操作 HTML 文档的标准方法。

我用了js编写的验证用户名和密码的规则,大致代码如下。。。。

ZhzqGhC.png

效果图

cpmvC0o.png

YnmL8L2.png

3.MySQL基础

那么,我们登入账号密码时,我们的信息是存在哪儿的,如何验证我们的信息是否正确呢,于是我们在这里先用到了数据库,mysql就是数据库管理系统

输入/etc/init.d/mysql start开启mysql服务

59FfApE.png

登入mysql,此处好像没有密码。。。。直接就进去了。(在后面php连接数据库的时候发现没有密码好像是不行的。。。。。)

uKFZ7wM.png

建立一个数据库creat database 20154307_fb;(这个数据库是前面做实验的时候测试的,与后面php回连的数据库不是一个,还有这里一定在语句结束后要加分号。。。。)

uK42dAd.png

输入use 201543047;

ReU97vt.png

新建一个表info,这里我做了一个统计学号性别的数据库。。。。

XrSLGaa.png

insert into 表名 values('值1','值2','值3'...);往表中输入信息

hJcEaMf.png

下面这个就是我建立的数据库表。。。。。

va2nWOf.png

当然,我最后回连的数据库表是下面这个样子的。。。。。(步骤我就没有截图,略过了。。。)

Y8E2fWK.png

4.PHP基础

/var/www/html目录下新建一个php文件

7cHTsUT.png

此处我的root没有密码,所以好像获得不了root的登入条件。。。。于是我新建了一个名叫FENG的数据库用户,但是结果也不理想,每次只能连接回数据库,但是没法对比数据库的内容,可能也是权限的问题吧。。。。

acBaWmQ.png

Z9VHkJS.png

rp4LcJm.png

于是乎,我在网上找到了修改root密码的办法,修改后重新编辑了php文件,大致代码如下。。。

7GMANO4.png

连接成功了!

zEcszD6.png

5.SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。于是哦我们在用户名输入框中输入' or 1=1#,密码随意,这时候html的文件就变成了select * from lxmtable where username='' or 1=1#' and password='',1=1永远成立,所以可以直接登入了。。

iF11LfP.png

效果图

eauNf5i.png

if ($result = $mysqli->query($query_str))这条判断语句改成if ($result = $mysqli->multi_query($query_str))便能实现执行多个sql语句,然后再username框输入';insert into fb_1 values('20154300','0000');#,相当于在我的数据库表单中填入了一个新的用户(攻击者伪造的),然后也可以实现登入

fZR5gsK.png

查询添加成功

JAEghGi.png

6.XSS攻击测试

XSS攻击全称跨站脚本攻击,是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

我们在用户名输入框中输入<img src="1.bmp" />11111</a>读取/var/www/html目录下的图片:

lF6oiqF.png

效果图

vT4tftC.jpg

三、实现总结与体会

本次实验并不是很简单,需要掌握了解的web语言较多,包括html、js、php,还有数据库,总之做一个简单的网页也并不是很容易,但是很有意思,同时如果我们以后要做相关网页的时候,一定要做好sql注入或者是xss攻击的防范手段,网页还有很多有意思的内容,等待我们去探索。。。。。

转载于:https://www.cnblogs.com/gnlm/p/9062163.html

相关文章:

  • Bash知识点记录
  • Android 滑动效果入门篇(一)—— ViewFlipper
  • 在Moto Atrix4G手机里安装全功能Ubuntu记录(特附友情广告一则)
  • rpm 软件包管理
  • pom.xml文件详解
  • 互联网测试有什么不一样
  • Python基础第十六天:面向对象进阶
  • log4net 在.net CompactFramework 2.0中的使用
  • 20165307 实验四《Andriid应用开发》实验报告
  • 使用 php Header 报错的一个原因
  • 【IOS】仿捕鱼达人的金币滚动显示
  • 谷歌 AXURE RP EXTENSION拓展问题
  • Android 滑动效果入门篇(二)—— Gallery
  • 大型网站典型故障案例分析
  • 在C#中派生C++的抽象类
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • CSS居中完全指南——构建CSS居中决策树
  • gcc介绍及安装
  • LeetCode29.两数相除 JavaScript
  • Material Design
  • Odoo domain写法及运用
  • 创建一种深思熟虑的文化
  • 聊聊hikari连接池的leakDetectionThreshold
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 无服务器化是企业 IT 架构的未来吗?
  • 线性表及其算法(java实现)
  • 小程序测试方案初探
  • MyCAT水平分库
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (HAL库版)freeRTOS移植STMF103
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (南京观海微电子)——I3C协议介绍
  • (转)h264中avc和flv数据的解析
  • (转)linux下的时间函数使用
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .Net Web项目创建比较不错的参考文章
  • .NET 发展历程
  • .net 中viewstate的原理和使用
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET程序员迈向卓越的必由之路
  • .sh 的运行
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [BZOJ3757] 苹果树
  • [c]统计数字
  • [C++]模板与STL简介
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [Effective C++读书笔记]0012_复制对象时勿忘其每一部分
  • [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总
  • [IE技巧] 让IE 以全屏模式启动