20155334 《网络攻防》 Exp 8 Web基础

一、基础问题回答

1. 什么是表单?
表单在网页中主要负责数据采集功能,一个表单有三个基本组成部分:

部分 内容
表单标签 这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法
表单域 包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等
表单按钮 包括提交按钮、复位按钮和一般按钮.表单按钮可以用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作

2. 浏览器可以解析运行什么语言?

  • 超文本标记语言: HTML
  • 可扩展标记语言: XML
  • 脚本语言: ASPPHPScriptJavaScriptVBScriptPerlPythonColdFusionJavaJSP

3. WebServer支持哪些动态语言?

  • 比较常用的有 ASP 语言, PHP 语言和 JSP 语言。

二、实践总结与体会

  1. 总的来说这次的实验难度还是挺大的,整个实验涵盖了前端html代码编写、javascript代码编写、php代码编写、sql语句执行、apache服务调试、mysql系统搭建……
  2. 知识点很多,需要了解的东西也不少,但总体来说就是一根主线: apache(html)<——>php<——>mysql ,apache负责搭建web服务挂载html网页,mysql负责数据库的维护,php负责为前二者“搭桥牵线”,使前端与后台数据能够交互,弄清楚这层关系,对这个实验也就有了一个整体的把握。
  3. 这次实验内容是网络攻防中web类的基础,就像本次简单的SQL注入和XSS攻击,这些都是基于语法的漏洞来实现攻击的,所以要注重学习web。

三、实践过程记录

Apache

  • apache 是kali下的web服务器,通过访问 ip地址+端口号+文件名称 可以打开对应的网页。
  • 输入命令 vi /etc/apache2/ports.conf 更改apache2的监听端口号;
  • 输入命令 apachectl start 打开apahce,并使用 netstat -aptn查看端口号 ,确认apache正确开启,如下图所示:
  • 在kali下的firefox输入 http://127.0.0.1:80 可以看见上一次实验克隆的网页

    一、前端编程

  • 使用 cd /var/www/html 在该目录下编辑 34ceshi.html
  • 在firefox中输入: http://127.0.0.1:80/34ceshi.html 就能打开该网页
  • 如果填写上内容并submit,因为没有上面代码里标出的一行中action指定的php文件,所以会出现not found的提示:

二、后端编程

  1. javascript

    • 是一种脚本语言,一般可以写在html中部分,响应用户的各种操作,和java比较类似,只不过所有的变量声明都是用var来进行
    • 下面的t脚本例子用于验证用户名和密码的规则,比如用户名和密码不能为空:
  2. php
    • PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言。
    • 一个简单的php测试代码:
    • 效果如图所示:
  3. MySQL基础
    • 安装: apt-get install mysql-server mysql-client mysql-workbench
    • 启动: /etc/init.d/mysql start
    • 使用 mysql -u root –p 进入MySQL,提示输入密码,密码是没有,嗯对没有:
    • 在Mysql中建库建表,命令如下:
      • CREATE SCHEMA `库表的名称`; 我的表库名称为 34t
      • 输入 show databases; 查看新建的库表的信息;
      • 使用数据库: use 34t;
      • 在数据库中创建数据表: create table info (usrname VARCHAR(10), password VARCHAR(64), email VARCHAR(20), type VARCHAR(10));
      • 查看数据表: show tables;
      • 添加数据,格式: insert into 表名 values('值1','值2','值3'...);
      • 查看数据表: select * from info;
  4. php+mysql实现登录页面功能
    • 我们需要用php脚本语言来连接数据库与前端输入,将输入结果传入到后台(php脚本),并且链接相应的数据库,利用SQL语句读取数据库中的记录,与输入进行比对,成功即可正常登录。
    • 在同样的目录下输入vim login.php ,通过php实现对数据库的连接:
    • 测试效果:
      • 登录成功:
      • 登录失败:

三、简单SQL注入与XSS

  1. SQL注入

    • SQL本是查询语句,可以实现对数据库的增、删、改、查等操作,是操作数据库数据的直接手段,但是SQL语句是存在缺陷的,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
    • 具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库。
    • 简单地说,SQL注入的产生原因通常是将用户输入的字符串,当成了 “SQL语句” 来执行。
    • 根据前文中SQL的编写过程可以体会,当输入某些特定格式的字符串的时候,会利用语法避开一些检查,通常也叫这样的密码为"万能密码"

    • 获取权限

    • 在用户名输入框中输入 ' or 1=1# ,密码随便输入,这时候的合成后的SQL查询语句为 select * from info where usrname='' or 1=1#' and password='' and type='' ,#相当于注释符,会把后面的内容都注释掉,而 1=1 是永真式,所以这个条件肯定恒成立,所以能够成功登陆:
  2. XSS
    • XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。
    • xss攻击也可以分成三类:
    • 反射型:经过后端,不经过数据库
    • 存储型:经过后端,经过数据库
    • DOM:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。
    • 简单的XSS实践:
      • 用户名输入 <img src="heihei.jpg">34t</a> ,密码随意,但要保证该图片物理位置和网页在同一个文件夹下:

四、发帖和会话管理

  • 我们可以利用PHP实现会话管理:
  • 在浏览器中输入http://127.0.0.1:80/logIn.php,进行登录:
  • 登录成功:
  • 点击 start a new post ,可以开始发帖:
  • 提交内容后,会进入test.php页面,再次点击 CHECK 可以查看会话记录:

20155334 《网络攻防》 Exp 8 Web基础的更多相关文章

  1. 20155211 网络攻防技术 Exp08 Web基础

    20155211 网络攻防技术 Exp08 Web基础 实践内容 Web前端HTML,能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. We ...

  2. 20155306 白皎 《网络攻防》 EXP8 Web基础

    20155306 白皎 <网络攻防> EXP8 Web基础 一.问题回答 - 什么是表单 表单:一般用来收集用户的信息和反馈意见 表单包括两个部分:一部分是HTML源代码用于描述表单(例如 ...

  3. 20155318 《网络攻防》 Exp9 Web基础

    20155318 <网络攻防> Exp9 Web基础 基础问题 SQL注入攻击原理,如何防御 就是通过把SQL命令插入到"Web表单递交"或"输入域名&quo ...

  4. 20155318 《网络攻防》 Exp8 Web基础

    20155318 <网络攻防> Exp8 Web基础 基础问题 什么是表单? HTML表单用于收集用户输入,用元素定义,包含不同类型的input元素.复选框.单选按钮.提交按钮等等.一个表 ...

  5. 20155321 《网络攻防》 Exp8 Web基础

    20155321 <网络攻防> Exp8 Web基础 基础问题回答 什么是表单? 表单是主要负责数据采集功能.主要是以下三个部分构成: 表单标签:包含处理表单数据所用的程序的URL以及数据 ...

  6. 20155334 《网络攻防》 Exp9 Web安全基础

    <网络攻防> Exp9 Web安全基础 一.实验后回答问题 SQL注入攻击原理,如何防御: 原理: 就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服 ...

  7. 2018-2019-2 20165312《网络攻防技术》Exp 8 Web基础

    2018-2019-2 20165312<网络攻防技术>Exp 8 Web基础 目录 一.相关知识点总结 二.实验内容 三.实验步骤 四.实验总结及问题回答 五.实验中遇到的问题及解决方法 ...

  8. 20155220 《网络对抗》Exp 8 Web基础

    20155220 <网络对抗>Exp 8 Web基础 基础问题回答 实践内容 1.Web前端HTML 配置环境 正常安装.启动Apache 安装:sudo apt-get install ...

  9. 20155226 《网络对抗》Exp 8 Web基础

    20155226 <网络对抗>Exp 8 Web基础 实践内容 1.Web前端HTML 配置环境 正常安装.启动Apache 安装:sudo apt-get install apache2 ...

随机推荐

  1. 用ContentProvider获取通讯录联系人

    手机中的联系人数据实际是保存在数据库中的,但Android并没有让我们通过操作数据库去读取数据,而是通过一个ContractProvider这个应用提供了一个ContentProvider访问接口. ...

  2. java 性能优化 字符串过滤实战

    转自[http://www.apkbus.com/blog-822717-78335.html]  如有不妥联系删除!! ★一个简单的需求 首先描述一下需求:给定一个 String 对象,过滤掉除了数 ...

  3. describe命令

    describe简写是desc 表 desc t1; desc t1 column1; desc extended t1; desc formatted t1; 数据库 desc database t ...

  4. Django组件扩展 总结

    1. Form组件扩展: 验证用户输入 obj = Form(reuest,POST,request.FILES) if obj.is_valid(): obj.clean_data else: ob ...

  5. 学习ASP.NET之旅

    1.HTML 2.DIV 3.CSS 4.JS脚本 5.javascript 6.J-Query 7.AJAX 8.c# 9.IIS配置 10.ASP.NET怎样添加控件,与winform的控件添加方 ...

  6. 更改 Windows VM 的可用性集

    以下步骤说明如何使用 Azure PowerShell 来更改 VM 的可用性集. 只能在创建 VM 时将 VM 添加到可用性集. 如果要更改可用性集,必须将虚拟机删除,并重新创建虚拟机. 使用 Po ...

  7. crm lookup

    1. 大家都知道CRM 里面的Lookup 保存了相关实体的GUID,让我们深入的了解一下CRM Lookup.当我们在2个实体间建立关系的时候,CRM自动生成了一些attributes来保存相关实体 ...

  8. You have new mail in /var/spool/mail/root 解决烦琐提示的方法

    今天写定时任务时,出现奇怪的提示,有的时候每敲一下回车,也出现奇怪的提示 You have new mail in /var/spool/mail/root 阿西吧........表示很烦...究竟是 ...

  9. 关于idea通过smalidea无源调试apk

    idea 14.0.2 可以使用 smalidea 0.03 单步时,只能按照源码中的行号(line xxx)指定的行跳动, 可以使用鼠标选中变量即时查看变量值 idea 16/17 可以使用smal ...

  10. November 03rd, 2017 Week 44th Friday

    The secret of success is to do the common things uncommonly well. 成功的秘诀就是把平凡的事情做得异常的好. Sometimes you ...