20155217《网络对抗》Exp08 Web基础

实践内容

  • Web前端:HTML基础
  • Web前端:javascipt基础
  • Web后端:MySQL基础
  • Web后端:PHP基础
  • SQL注入
  • XSS攻击测试
  • 发帖和会话管理的实现

Web前端:HTML基础

  • Web开发是基于Apache服务器进行的,Exp07已经安装好Apache。使用指令apachectl start打开Apache服务,使用netstat -aptn查看一下端口占用:

  • 在kali浏览器中输入localhost:80,如图所示,说明我们Apache正常工作:

  • 进入Apache工作目录/var/www/html,新建一个5217-1.html文件,编写一个含有表单能实现输入用户名、密码实现登录的html

  • 结果如图:

Web前端:javascipt基础

  • 直接在之前的代码中进行修改来限制用户登录时必须输入用户名和密码:

  • 结果如下:

MySQL基础

  • 输入/etc/init.d/mysql start打开mysql服务。
  • 输入mysql -u root -p,以root身份登录,根据提示输入密码,默认密码为password,进入MySQL;

  • 可以对密码进行修改:输入use mysql;,选择mysql数据库;输入update user set password=PASSWORD("20155217") where user='root';,修改密码;输入flush privileges;,更新权限:

  • 输入show databases;查看权限:

  • 输入create database 库名;建立一个数据库;
  • 输入use 库名;使用刚刚创建的数据库:

  • 输入create table yd (userid VARCHAR(100),username VARCHAR(45),password VARCHAR(256),enabled VARCHAR(5));建立数据表;
  • 输入show tables;查看存在的数据表:

  • 输入insert into yd(userid,username,password,enabled) values(1,'20155217','5217',"TRUE");在表中添加内容;
  • 输入select * from yd;查看表中现在的信息:

Web后端:PHP网页

  • /var/www/html目录下新建一个test.php测试一下PHP

  • 浏览器打开localhost/test.php可看到/etc/passwd文件的内容,注意PHP变量大小写敏感:

  • /var/www/html目录下编写一个5217-2.html,设置将5217-2.html的表单提交到yd.php

  • 编写login.php,通过php实现对数据库的连接,并显示用户是否能成功登录。如图:

  • 在浏览器中访问登录页面:localhost:80/5217-2.html,报错:

  • 于是在MySQL中增加新用户:
  • 输入insert into mysql.user(Host,User,Password) values("localhost","yd5217",password("5217"));
  • 输入grant all privileges on *.* to 'yd5217' identified by '5217' with grant option;
  • FLUSH PRIVILEGES;

  • 在登录页面中输入数据库中存有的用户名和密码并点击提交进行用户认证登录成功,反之失败:

SQL注入

  • 可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
  • 在网页登录的用户名中填写' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为select * from users where username='' or 1=1#' and password=md5(''),#相当于注释符,会把后面的内容都注释掉,而1=1是永真式,所以这个条件肯定恒成立,所以能够成功登陆:

  • 或者先在PHP中改语句if ($result = $mysqli->query($query_str))if ($result = $mysqli->multi_query($query_str)),然后在用户名框中输入';insert into yd values('888','skrr','1234',"TRUE");#在数据库中可以直接插入一个伪造的用户名,密码,下次就可以用伪造的用户名密码登录网站了(登录前将if ($result = $mysqli->query($query_str))语句改回来)。

XSS攻击

  • 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSSXSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。
  • 在登录的用户名中输入<img src="1.jpg" />5217</a>,读取/var/www/html目录下的图片(注意把php代码中原本隐去的echo $uname;显示出来,这样才能把图片输出出来):

基础问题回答

什么是表单

  • 表单:可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。
  • 表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另一部分是脚本或应用程序用于处理提交的信息(如CGI脚本)。不使用处理脚本就不能搜集表单数据。
  • 表单由文本域、复选框、单选框、菜单、文件地址域、按钮等表单对象组成,所有的部分都包含在一个由标识符标志起来的表单结构中。
  • 表单的种类有注册表、留言薄、站点导航条、搜索引擎等。

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

  • 超文本标记语言:HTML
  • 可扩展标记语言:XML
  • 脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等。

WebServer支持哪些动态语言

  • PHP语言、JSP语言。

实验体会

实验过程中真的出现了太多问题QAQ,最让我崩溃的是最初我的php只能显示代码,百度之后发现缺少httpd.conf文件,就想重新下一个php,但不知道怎么就把Apache删掉了!幸好有一个Exp07的快照可以恢复文件,就是需要把之前的重新再做一遍TT。但发现还是不行,感谢我的舍友,贡献了她的虚拟机,最后让我顺利地度过这个问题,迎来了下一个问题:D

20155217《网络对抗》Exp08 Web基础的更多相关文章

  1. 20145326蔡馨熤《网络对抗》—— Web基础

    20145326蔡馨熤<网络对抗>—— Web基础 1.实验后回答问题 (1)什么是表单. 表单是一个包含表单元素的区域,表单元素是允许用户在表单中输入信息的元素,表单在网页中主要负责数据 ...

  2. 20155305《网络对抗》Web基础

    20155305<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...

  3. 20155307实验八 《网络对抗》 Web基础

    20155307实验八 <网络对抗> Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用 ...

  4. 20155311《网络对抗》Web基础

    20155311<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...

  5. 20145216史婧瑶《网络对抗》Web基础

    20145216史婧瑶<网络对抗>Web基础 实验问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签.表单域.表单按钮. (2)浏览器可以 ...

  6. 20145227鄢曼君《网络对抗》Web基础

    20145227鄢曼君<网络对抗>Web基础 实验内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创建 ...

  7. 20145312袁心《网络对抗》Web基础实践

    20145312袁心<网络对抗>Web基础实践 问题回答 1.什么是表单: 表单在网页中主要负责数据采集功能. 一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程 ...

  8. 20145321 《网络对抗》 Web基础

    20145321 <网络对抗> Web基础 基础问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能,一个表单有三个基本组成部分:表单标签——这里面包含了处理表单数据所用CGI程序 ...

  9. 20145330 《网络对抗》 Web基础

    20145330 <网络对抗> Web基础 1.实践内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创 ...

  10. 20144303石宇森 《网络对抗》 WEB基础实践

    20144303石宇森 <网络对抗> WEB基础实践 实验后回答问题 一.什么是表单 表单是一个包含表单元素的区域.用form来定义. HTML是静态显示网页的,无法跟服务器进行交互,所以 ...

随机推荐

  1. C#加解密算法

    先附上源码 加密解密算法目前已经应用到我们生活中的各个方面 加密用于达到以下目的: 保密性:帮助保护用户的标识或数据不被读取. 数据完整性:帮助保护数据不被更改. 身份验证:确保数据发自特定的一方. ...

  2. 实战演示疑惑 mysql insert到底加什么锁

    innodb的事务隔离级别是可重复读级别且innodb_locks_unsafe_for_binlog禁用,也就是说允许next-key lock 实验来自网上. ( 如果你没有演示出来,请check ...

  3. python自定义函数和推导

    #之所以把这俩写一起,并不是因为这俩有什么关系,因为都太简单,没什么可说的 #自定义函数的格式,def开头,后面空格,在后面是函数名,接括号,括号里是入参参数 #!/usr/bin/python # ...

  4. 个人犯的一个golang routine错误

    这个其实不是错误,2个写法没有区别.-2015.11.22 认识golang也不少时间了,也做过几个项目.最近发现之前用golang写的一个服务,内存涨得比较快,一直没找出来原因来.今天把疑惑发到群里 ...

  5. python基础学习15----异常处理

    异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件). 1.异常的类型 异常的类型多种多样,常见的异常有: AttributeE ...

  6. Python初学者第三天 运算符、while循环

    3day Python基础语法 1.运算符:算数运算符.比较运算符.赋值运算符.逻辑运算符 A.算数运算符:a=10,b=3 + 加   a+b - 减  a-b * 乘  a*b / 除  a/b ...

  7. npm安装vue

    目录 npm安装vue Vue.js 是什么 直接用script引入 安装vue 对不同构建版本的解释 安装命令行工具 (CLI) 安装cnpm 安装vue-cli 新建vue项目 运行服务 目录结构 ...

  8. saltstack二次开发(一)

    Saltstack简介 Salt是一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的包被安装,指定的服务在运行),一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则 ...

  9. 13.2SolrCloud集群使用手册之CoreAdmin API

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ CoreAdminHandler是用来管理Solr cores的,用来管理一个Solr instance中所有 ...

  10. Android Studio中新建和引用assets文件

    从eclipse转过的朋友们应该不太习惯AS中新建assets文件和对文件内容的引用.我也查找了网上很多资料发现很少有这样的解决答案,于是便把自己解决的方法总结在这里. 1.一般新建project后这 ...