20145318《网络对抗》Web应用
20145318《网络对抗》Web应用
基础问题回答
- (1)什么是表单
- 在网页中负责信息采集,在网页中用户输入信息,通过表单能够提交到后台进行相应的处理
- (2)浏览器可以解析运行什么语言
- 支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等众多脚本语言。
- (3)WebServer支持哪些动态语言
ASP、PHP、JSP、Python、JavaScript、Ruby等
实践过程记录
Apache
- 先通过
apachectl start
命令开启Apach,使用netstat -aptn
命令查看端口占用 因为端口号80已经被占用(上次实验设置的),所以先修改
/etc/apache2/ports.conf
里的端口为5318
后重新开启:
- 可以在浏览器中输入
localhost:5318
来检查是否正常开启,这里可以看到打开了上次实验的网页,开启正常:
简单的网页编写
- 访问Apache工作目录
cd /var/www/html
,新建一个5318.html
文件 编写一个含有表单的html
- 打开浏览器访问:
localhost:5318/5318.html
,成功出现如下界面
- 在上面的文本框内键入几个字母,然后点击确认按钮数据会传送到 "html_form_action.php" 的页面,由于没有对此页面进行编辑,出现的是404
javascript相关
- 相关概念:JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
- 文档对象模型(Document Object Model,简称DOM,是W3C组织推荐的处理可扩展标志语言的标准编程接口。
编写验证用户名和密码的规则:(比如用户名和密码不能为空)
<script>
function nameText(){
var name= document.getElementByIdx_x ("username");
var divID= document.getElementByIdx_x ("divName");
divID.innerHTML="";
if(name.value==""){
divID.innerHTML="用户名不能为空";
return false;
}
}
function passText(){
var pass= document.getElementByIdx_x ("password");
var divIP= document.getElementByIdx_x ("divPass");
divIP.innerHTML="";
if(pass.value==""){
divIP.innerHTML="密码不能为空";
return false;
}
}
</script>
PHP测试
新建一个PHP测试文件vi /var/www/html/test.php,输入如下
<?php
echo ($_GET["A"]); include($_GET["A"]); echo "php page 5212!<br>";
?>
- 用浏览器打开
localhost:5318/test.pgp
,可以看见如下界面,测试成功
MySQL基础
- 使用命令
/etc/init.d/mysql start
打开mysql服务 输入
mysql -u root -p
,并根据提示输入密码,默认密码为p@ssw0rd
,进入MySQL:
- 可以使用命令show databases;可以查看基本信息(分号不可以漏掉,分号代表命令的结束):
可以通过如下方式更改密码:
·输入use mysql;
,选择mysql数据库
·输入select user, password, host from user;
,mysql库中的user表中存储着用户名、密码与权限
·输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';
·输入flush privileges;
,更新权限
·输入quit
退出
- 重新登录就可以发现密码修改成功
在Mysql中建库建表,输入如下
CREATE SCHEMA
库表的名称
;
CREATE TABLE库表的名称
.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 '');
- 向表中添加用户
- 现在再查看信息就可以看到新建表:
php+mysql编写网页
在
/var/www/html
文件夹下输入vim login.html
,编写登录网页
- 输入v
im login.php
,通过php实现对数据库的连接
- 在浏览器中输入
localhost:5318/login.html
访问自己的登陆页面
- 在登录页面中输入数据库中存有的用户名和密码并点击提交进行用户认证登录成功,输入数据库中没有的就会认证失败
SQL注入
- 构造SQL语句:在用户名输入框中输入
' or 1=1#
,密码随便输入,这时候的合成后的SQL查询语句为select * from users where username='' or 1=1#' and password=md5('')
以下的两句sql语句等价:select * from users where username='' or 1=1#' and password=md5('')
select * from users where username='' or 1=1
- 因为1=1永远是都是成立的,即where子句总是为真,所以能够成功登录
通过SQL注入将用户名和密码保存在数据库中
';insert into users(userid,username,password,enabled) values(5318,'145318',password("145318"),"TRUE");#
- 在登录页面输入用户名
145318
密码145318
,成功
XSS攻击
- XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。
进行一个简单的测试,在用户名输入框中输入
<img src="20145318.jpg" />20145318</a>
读取/var/www/html
目录下的图片:
- 点击登录后我们可以看到图片:
发帖和会话管理的实现
我们可以利用PHP实现会话管理,这部分实践可以详细参考ltc同学的博客与代码。
将代码依旧放在/var/www/html
目录下,在浏览器中输入http://localhost:5318/logIn.php
,进行登录:
- 登录成功后如图所示:
- 点击
start a new post!
发帖,进入如下界面:
- 提交之后跳转到如下界面,可以选择查看发过的帖子、继续发帖、返回或者退出登录:
- 点击
CHECK
查看发过的帖子,但是却什么内容都没有,由于这个操作是通过从data.txt
文件中读取之前发帖时保存的记录来查看发帖内容,但是在/var/www/html
目录下根本没有找到这个文件,这就说明之前创建也没有成功,后面发现/var/www/html
底下文件默认的都是属于root的,其他用户没有权限进行操作,所以我们可以先使用touch data.txt
建一个data.txt
文件,再对该文件进行加权:
- 再次发帖查看,可以成功显示之前的发帖历史:
20145318《网络对抗》Web应用的更多相关文章
- 网络对抗——web基础
网络对抗--web基础 实践内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 (4)Web ...
- 20145334赵文豪网络对抗Web安全基础实践
1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...
- 20145318《网络对抗》Web安全基础实践
20145318<网络对抗>Web安全基础实践 基础问题回答 1.SQL注入原理,如何防御 SQL注入 就是通过把SQL命令插入到“Web表单递交”或“输入域名”或“页面请求”的查询字符串 ...
- 20155324《网络对抗技术》web安全基础实践
20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在 ...
- 20155324王鸣宇 《网络对抗技术》Web基础
20155324王鸣宇 <网络对抗技术>Web基础 实践要求 ①Web前端HTML: 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HT ...
- 2017-2018-2 20155228 《网络对抗技术》 实验九:Web安全基础
2017-2018-2 20155228 <网络对抗技术> 实验九:Web安全基础 1. 实践内容 1.1 标理解常用网络攻击技术的基本原理 1.2 在Webgoat实验环境下实践相关实验 ...
- 2017-2018-2 20155228 《网络对抗技术》 实验八:Web基础
2017-2018-2 20155228 <网络对抗技术> 实验八:Web基础 1. 实践内容 1.1 Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET ...
- 20155208徐子涵《网络对抗》Exp9 Web安全基础
20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...
- 20155208徐子涵 《网络对抗技术》Web基础
20155208徐子涵 <网络对抗技术>Web基础 实验要求 Web前端HTML Web前端javascipt Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密 ...
随机推荐
- Docker命令详解(build篇)
命令格式:docker build [OPTIONS] <PATH | URL | -> Usage: Build an image from a Dockerfile. 中文意思即:使用 ...
- 维基百科 请求流 webrequest_flow
Logstash - Wikitech https://wikitech.wikimedia.org/wiki/Logstash
- 通过qemu复现路由器漏洞
目录 简介 环境搭建 固件解包 复现漏洞,IDA调试 参考资料 简介 qemu和vmware一样,一种虚拟机软件,只不过qemu能够虚拟的平台更加丰富一些.能够虚拟很多嵌入式平台的设备. 工作上需要向 ...
- Python实现简单HTTP服务器(二)
实现简单web框架 一.框架(MyWeb.py) # coding:utf-8 import time # 设置静态文件根目录 HTML_ROOT_DIR = "./html" c ...
- 优云软件应邀出席 ITSS 数据中心运营管理工作组 2017 年春季研讨会
2017 年 4 月 15 日,中国电子工业标准化技术协会信息技术服务分会(以下称 ITSS 分会)数据中心运营管理工作组(以下简称 DCMG)在江苏省启东市召开春季研讨会. DCMG 工作组组长肖建 ...
- html+css小总结
html+css小总结 1.块级元素 <div> <h1> <hr /> <p> <pre> <ol> <ul> & ...
- 非极大值抑制(NMS)
非极大值抑制顾名思义就是抑制不是极大值的元素,搜索局部的极大值.这个局部代表的是一个邻域,邻域有两个参数可变,一个是邻域的维数,二是邻域的大小.这里不讨论通用的NMS算法,而是用于在目标检测中提取分数 ...
- 008-jdk1.7版本新特性
一.JDK1.7 名称:Dolphin(海豚) 发布日期:2011-07-28 新特性: 1.1.switch-case中可以使用字串 区分大小写.Java编译器通过switch使用String对象的 ...
- phpstorm中FTP自动同步功能
首先打开PhpStorm软件,新建个项目完成以后,找到Tools, 找到 Tools->Deployment->configruation点击进行设置, 点击configruation ...
- Fisher精确检验【转载】
转自:https://en.wikipedia.org/wiki/Fisher%27s_exact_test https://www.cnblogs.com/Dzhouqi/p/3440575.htm ...