2017-2018-2 20155309南皓芯 Exp8 WEB基础实践
基础问题回答
(1)什么是表单
表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分:
表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
(2)浏览器可以解析运行什么语言。
html,css,javascript等脚本语言
(3)WebServer支持哪些动态语言
ASP语言,PHP语言和JSP语言
实验过程记录
Apache
(一)环境配置
apache是kali下的web服务器,通过访问ip地址+端口号+文件名称可以打开对应的网页。
输入命令vi /etc/apache2/ports.conf更改apache2
的监听端口号;
输入命令apachectl start
打开apahce,并使用netstat -aptn
查看端口号,确认apache正确开启,如下图所示:
在kali下的firefox输入http://127.0.0.1:5309
可以看见上一次实验克隆的网页
(二)前端编程
使用cd /var/www/html在/var/www/html
目录下编辑test.html
在存盘的时候出现了这种错误,我们按照网上所说的强制存盘即可。
之后在firefox打开网页即可,我们会看到自己所做的一个简单的页面
2.Web前端:
javascipt基础
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,现代所有的web都是使用javascipt来编写完成的。
通常Javascipt脚本是通过嵌入在HTML中来实现自身功能的。
直接在之前的基础上加上如下代码:
<script language="javascript">
function check(Form){
var Username =Form.user.value;
var pwd =Form.pw.value;
if((Username == "")||(pwd == ""))//如果用户名为空
{
alert("用户名或密码不能为空");
return false;
}
if (pwd.length > 16 || pwd.length < 6)
{
alert("密码长度应该在 6 - 16 位");
return false;
}
Form.submit();
}
</script>
之后我们可以看到网页变成了这种形式
PHP测试
新建一个PHP测试文件vi /var/www/html/test.php
,输入如下
<?php
echo ($_GET["A"]);
include($_GET["A"]);
echo "php page 5309!<br>";
?>
MySQL基础
开启mysql/etc/init.d/mysql start
mysql -u root -p
以root身份进行登录
之后会提醒你输入密码,但是由于是用的老师的虚拟机,所以我们并不知道密码,这样我们参考同学的博客找到了解决办法。
键入show databases;
查看基本信息,注意一定要加分号哦,数据库里以分号作为一个语句的结束。
修改密码,首先选择MySQL,键入use mysql;
,输入update user set password=PASSWORD("新密码") where user='root';
修改密码,进行更新flush privileges;
。
输入quit
退出登录,再次键入mysql -u root -p
,测试新密码对不对,ok,成功登录。
建库建表
首先输入这两条命令:
create database nhx1;
use nhx1;
使用create table
表名 (字段设定列表);建立数据表,数据表是数据库中一个非常重要的对象,一个数据库中可能包含若干个数据表;使用show tables;
查看存在的数据表:
create table nhx1table (userid VARCHAR(100),username VARCHAR(45),password VARCHAR(256),enabled VARCHAR(5));
在表中添加内容:
insert into nhx1table(userid,username,password,enabled) values(1,'20155309','123456',"TRUE");
使用select * from 表名;
查询表中的数据,*表示查询所有的参数信息,也可以指定某一参数比如username来进行查询。
增加新用户赋予所有权限,键入grant all on nhx1.* to pc@localhost identified by '20155309';
,其中grant all赋予所有的权限,pc.*数据库 pc中所有的表,@localhost 在本地电脑上的 mysql服务器,identfified by 'password'设置密码。
键入mysql -u pc -p
使用新用户进行登录,验证新用户是否建立成功,登录成功,说明新建用户成功。
Web后端:编写PHP网页
在上面的实验中我们已经做过了PHP的测试。
所以我们直接编写网页的代码即可
在这里我们需要了解的是 127.0.0.1是本机的ip root是用户名,20155309是我所设的密码,nhx1是数据库的名称
点击login
SQL注入
在用户名输入框中输入' or 1=1#
,密码随便输入,这时候的合成后的SQL查询语句为
select * from lrttable where username='' or 1=1#' and password=''
可以通过SQL注入在数据库中插入一条伪造的用户名和密码。
首先修改后端的PHP代码,将if ($result = $mysqli->query($query_str))
这条判断语句改成if ($result = $mysqli->multi_query($query_str))
使得允许多条sql语句执行,这样就可以实现执行多个sql语句,接着在用户名输入框中输入';insert into pc values('100','53','53',"true");#
,随便输入一个密码,接着登录,出现如下所示。
将PHP改回去,再次用新插入的用户进行登录,登录成功。
XSS攻击
首先什么是XSS攻击呢?XSS攻击,即跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。
一共有三种类型:
1.本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。也就是A发给B 一个链接B打开了那么A的具有漏洞的HTML页面包含了在B电脑本地域执行的JavaScript中。
2.反射式漏洞,这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中,这个会牵扯到一有个网站拥有者A和用户B以及黑客C。
3.直接威胁用户个体,而类型B和类型C所威胁的对象都是企业级Web应用。存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,黑客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
类型1直接威胁用户个体,而类型2和3所威胁的对象都是企业级Web应用。
在用户名输入框中输入<img src="1.png" />1111</a>
读取/var/www/html目录下的图片,尝试了多张图片,上网进行搜索,并不能获取到图片....
感觉这个与自己本身的kali机有关系
实验体会
这次的实验与刘念老师的课程可以说是紧密相关的,在做实验的过程中,我们可以温习java前端的知识,说句实话,在做的过程中,我们对上学期的知识可以了解的更加深入,并且该实验很有趣味性值得我们学习。
2017-2018-2 20155309南皓芯 Exp8 WEB基础实践的更多相关文章
- 2017-2018-2 20155309 南皓芯 Exp9 Web安全基础
基础问题回答 1.SQL注入攻击原理,如何防御 原理:它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数 ...
- 2017-2018-2 20155309 南皓芯 Exp5 MSF基础应用
实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如ms08_067; 1.2 一个针对浏览器的攻击,如ms11_05 ...
- 20155326《网路对抗》Exp8 WEB基础实践
20155326<网路对抗>Exp8 WEB基础实践 实践内容 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写 ...
- 20145236《网络对抗》Exp8 WEB基础实践
20145236<网路对抗>Exp8 WEB基础实践 一.基础问题回答 什么是表单 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码框. ...
- 20155206 Exp8 WEB基础实践
20155206 Exp8 WEB基础实践 基础问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能. 一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以 ...
- 20155210 Exp8 WEB基础实践
Exp8 WEB基础实践 Apache环境配置 apache是kali下的web服务器,通过访问ip地址+端口号+文件名称可以打开对应的网页. 输入命令vi /etc/apache2/ports.co ...
- 20155216 Exp8 WEB基础实践
Exp8 WEB基础实践 实践内容 Apache环境配置 apache是kali下的web服务器,通过访问 ip地址+端口号+文件名称 打开对应的网页. 输入命令 vi /etc/apache2/po ...
- 20155223 Exp8 WEB基础实践
20155223 Exp8 WEB基础实践 基础问题回答 什么是表单? 表单是一个包含表单元素的区域. 表单元素是允许用户在表单中(比如:文本域.下拉列表.单选框.复选框等等)输入信息的元素. 表单使 ...
- 20155331《网路对抗》Exp8 WEB基础实践
20155331<网路对抗>Exp8 WEB基础实践 基础问题回答 什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签,这里面包含了处理表单数据所用CGI ...
随机推荐
- 多目标遗传算法 ------ NSGA-II (部分源码解析)二元锦标赛选择 tourselect.c
tourselect.c 文件中共有两个函数: selection (population *old_pop, population *new_pop) individual* tournament ...
- 【JUC】CopyOnWriteArrayList
写入时复制(CopyOnWrite) 什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器.通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进 ...
- web中的乱码处理
1 .web中的中文乱码处理 1.页面设置pageEncoding="UTF-8" <%@ page contentType="text/html;charset= ...
- iscroll.js 手机上下滑动 加载更多
html <!DOCTYPE html> <html> <head> <title>下拉上拉刷新页面代码</title> <meta ...
- 作业引擎quartz.net --- 监听链
针对多个作业:如何描述各个跑批任务之间的顺序,紧前.紧后关系,实现灵活调度.例如:A完成则B开始,B完成C开始. 对quartz.net 进行了查阅,能实现如上业务,如下图: 测试代码: using ...
- android ContentObserver内容观察者基本使用
package com.example.observertest; import android.content.ContentResolver; import android.database.Co ...
- linq to xml 简单的增、删、改、查、保存xml文件操作
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- Linux之安装虚拟机/虚拟操作系统[VisualBox]
使用VisualBox安装虚拟机步骤: BIOS开启 Visual Technology(或者 visualization) 安装Visual Box 打开Visual Box > 新建虚拟电脑 ...
- JavaScript之关闭轮询定时器(setTimeout/clearTimeout|setInterval/clearInterval)小结
已知: 1.1 开启Timeout程序: scope.setTimeout("functionName()" | functionHandle, timeValue) 返回值:ti ...
- luogu P1776 宝物筛选_NOI导刊2010提高(02)
Sto flashhu orz flash太强啦 多重背包裸题(逃 使用压维大法,\(f_i\)为总重量为\(i\)时的答案 对于每种物品,记\(w\)为单个的重量,\(v\)为单个的价值,\(m\) ...