20145226夏艺华 网络对抗技术EXP8 WEB基础实践

实验问题回答

1.什么是表单?

表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

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

超文本标记语言——HTML

可扩展标记语言——XML

脚本语言——ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等

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

常用:ASP语言,PHP语言和JSP语言。

实验总结与体会

本次网络对抗实验学到了很多WEB的知识,实验的最后,SQL注入和XSS攻击。。。感觉防护真是非常重要啊,不然网站真是太不安全了。

这次实验中我有一些操作上的失误,导致后续影响很大,不得不从头再来,所以虽然每一步实验操作都很明确,但是也非常需要耐心细致。在和同学的交流中,也明白了相关的原理,收获很大。

一个小插曲:昨天吃饭结账网慢,店员说有WiFi的,然而我真的真的,不敢连了。。。

实验步骤

Apache

(一)环境配置

·通过apachectl start开启Apache





·使用netstat -aptn查看端口占用:在这里apache2占用端口8080

·测试apache是否正常工作:在kali的火狐浏览器上输入localhost:8080

PS:这里的端口号就是/etc/apache2/ports.conf下设置的Apache监听端口号,由于上个实验的影响打开的是伪装的网页



网慢。。。网页显示有点问题

(二)简单的网页编写

·访问Apache工作目录cd /var/www/html,新建一个5226.html文件



·编写一个含有表单的html

·打开浏览器访问:localhost:8088/xxx.html,成功出现如下界面

·颜色有点丑陋。。。换一下



再打开就好多了

·在上面的文本框内键入几个字母,然后点击确认按钮数据会传送到 "html_form_action.php" 的页面,由于没有对此页面进行编辑,出现的是404

(三)javascript相关

·概念:JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。

·文档对象模型(Document Object Model,简称DOM,是W3C组织推荐的处理可扩展标志语言的标准编程接口。

·编写验证用户名和密码的规则:(比如用户名和密码不能为空)

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

·输入如下

·用浏览器打开localhost:8080/test.pgp,可以看见如下界面,测试成功

(五)MySQL基础

·开启sql服务/etc/init.d/mysql start

·输入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 -u root –p,检测新密码能否成功使用,能成功登录即可。

·在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 '');

·向表中添加用户

insert into users(userid,username,password,enabled) values(1,'用户id',password("用户密码"),"TRUE");

(六)php+mysql实现登录网页编写

·在/var/www/html文件夹下输入vim login.html,编写登录网页

·在同样的目录下输入vim login.php,通过php实现对数据库的连接

·在火狐浏览器中输入localhost:8080/login.html,就可以访问登陆页面

·在登录页面中输入数据库中存有的用户名和密码并点击提交进行用户认证登录成功



·输入数据库中没有的其他的用户名和密码是失败的

·可以加一行代码header("Refresh:3;url=welcome.php");,实现在3秒之后跳转到welcome.php页面

·最终登陆成功的样子如下

(七)SQL注入

SQL注入是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

简单地说,SQL注入的产生原因通常是将用户输入的字符串,当成了 “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(666,'aaa',password("aaa"),"TRUE");#

·翻译过来就是

SELECT * FROM users WHERE username='';
insert into users(userid,username,password,enabled) values(666,'aaa',password("aaa"),"TRUE");

·输入

';insert into users(userid,username,password,enabled) values(5226,'5226',password("666666"),"TRUE");#





·此时在登录页面输入用户名5226密码666666,成功



·再试试';insert into users(userid,username,password,enabled) values(5226,'xyh',password("666666"),"TRUE");#



也成功啦~如果没有注入的就会登录失败

(八)XSS攻击

·XSS表示Cross Site Scripting(跨站脚本攻击),通过插入恶意脚本,实现对用户浏览器的控制。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。许多流行的留言本和论坛程序允许用户发表包含HTML和javascript的帖子。假设用户甲发表了一篇包含恶意脚本的帖子,那么用户乙在浏览这篇帖子时,恶意脚本就会执行,盗取用户乙的session信息。

·xss攻击分类

(1)持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。

(2)非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。

(3)DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。

·输入20145226来读取网页目录下的图片:



20145226夏艺华 网络对抗技术EXP8 WEB基础实践的更多相关文章

  1. 20145226夏艺华 网络对抗技术 EXP9 web安全基础实践

    20145226夏艺华 网络对抗技术 EXP9 web安全基础实践 !!!免考项目:wannacry病毒分析+防护 一.实验后回答问题 SQL注入攻击原理,如何防御 攻击原理 "SQL注入& ...

  2. 20145226夏艺华 网络对抗技术 EXP7 网络欺诈技术防范

    20145226夏艺华 网络对抗技术 EXP7 网络欺诈技术防范 实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. · 简单应用SET工具建立冒名网站 · ett ...

  3. 20145226夏艺华 网络对抗技术EXP4 恶意代码分析

    20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ...

  4. 20145236《网络对抗》Exp8 WEB基础实践

    20145236<网路对抗>Exp8 WEB基础实践 一.基础问题回答 什么是表单 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码框. ...

  5. 20155308《网络对抗》Exp8 Web基础

    20155308<网络对抗>Exp8 Web基础 实践原理与实践说明 本实践的具体要求有: (1).Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与P ...

  6. 20155324王鸣宇 《网络对抗技术》Web基础

    20155324王鸣宇 <网络对抗技术>Web基础 实践要求 ①Web前端HTML: 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HT ...

  7. 20155304《网络对抗》Exp8 Web基础

    20155304<网络对抗>Exp8 Web基础 实践要求 (1).Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的H ...

  8. 20155323刘威良《网络对抗》Exp8 Web基础

    20155323刘威良<网络对抗>Exp8 Web基础 实践内容 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编 ...

  9. 20145331魏澍琛《网络对抗》Exp8 Web基础

    20145331魏澍琛<网络对抗>Exp8 Web基础 实践内容: 1.简单的web前端页面(HTML.CSS等) 2.简单的web后台数据处理(PHP) 3.Mysql数据库 4.一个简 ...

随机推荐

  1. Burp Suite使用介绍总结

    Burp Suite使用介绍(一) 小乐天 · 2014/05/01 19:54 Getting Started Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些 ...

  2. Win8.1下运行环境/配置问题解决方案总结

    目录 1.运行 adb shell 时报错" adb server version (26) doesn't match this client (39); killing... " ...

  3. Linux系统下常用的磁盘管理命令——du / df / fdisk / mount / xxd

    之前使用虚拟机体验Linux操作系统的使用,一般使用默认的磁盘分区设置,也很少涉及磁盘管理操作,且总有删除重装作为后盾.在安装Ubuntu双系统后,在使用过程中遇到了磁盘分区不合理导致的/boot分区 ...

  4. 页面请求速度慢,TTFB时间长的问题分析

    线上环境发现用户请求某个页面时,出现请求速度慢页面卡顿白屏的现象,通过chrome开发工具调试查看Timing,花费在waiting(TTFB)上的时间过长,几秒十几秒不等 TTFB全称Time To ...

  5. sychronized关键字(多线程)

    sychronized关键字: 1. 作用:利用该关键字来创建内置锁,实现线程同步: 2. 分类:(1)sychronized同步方法:(2)sychronized同步代码块: 3. sychroni ...

  6. 异步模式:Callbacks, Promises & Async/Await

    [译]异步JavaScript的演变史:从回调到Promises再到Async/Await https://www.i-programmer.info/programming/theory/8864- ...

  7. JavaScript脚本的执行原理?

    JavaScript是一种动态.弱类型.基于原型的语言,通过浏览器可以直接执行. 当浏览器遇到\<script>标记的时候,浏览器会执行之间的JavaScript代码.嵌入的js代码是顺序 ...

  8. MySQL 分库分表方案,总结的非常好!

    前言 公司最近在搞服务分离,数据切分方面的东西,因为单张包裹表的数据量实在是太大,并且还在以每天60W的量增长. 之前了解过数据库的分库分表,读过几篇博文,但就只知道个模糊概念, 而且现在回想起来什么 ...

  9. 组合测试(Combinatorial Test)/配对测试 (pairwise)

    组合测试方法:配对测试实践 实施组合测试 常用的Pairwise工具集:http://www.pairwise.org/tools.asp 成对测试(Pairwise Testing)又称结对测试.两 ...

  10. 进入WinRe(windows恢复环境)

    放个预览图: 方法汇总: 1. 2 . +Shift  3 ”shutdown /r /o“ 或 "bootim" 4 5 启动中强制关闭3次以上 6 狂按F8 (不同的电脑操作不 ...