20145302张薇 《网络对抗》 web基础

实验问题回答

1.什么是表单

  • 表单在网页中主要负责数据采集功能:一般网页上需要用户输入、选择的地方都会用到表单
  • 表单标签:即,用于确定表单所控制的范围
  • 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等
  • 表单按钮:包括提交按钮、复位按钮和一般按钮
  • 因为表单可以从用户那里获取信息,所以DOM可以连接表单来使用获取的信息

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

  • 超文本标记语言:HTML
  • 可扩展标记语言:XML
  • 脚本语言:JavaScript、Python等

3.WebServer支持哪些动态语言

  • JSP脚本语言、php语言、ASP脚本语言、java语言等

实验总结与体会

  • 写前端一遍遍改代码,最终出来页面,虽然是很简单的代码,但是还是有满足感的
  • 就是一直盯着电脑看,眼睛快要失明

实践过程记录

kali的IP:192.168.239.131

1.Web前端HTML

1.环境配置

  • 检查80端口有没有被占用:netstat -aptn | grep 80

  • 杀死占用的进程:kill 1086

  • 打开apache2:service apache2 start

  • 检测apache有没有正常工作

  • 因为IP变了,所以又做了一遍SET,捕获用户名与口令

  • 在kali的浏览器里输入:localhost:80也可以确认apache有没有正常运行

2.编写网页

  • 访问Apache工作目录:cd /var/www/html

  • 新建html文件并编辑:test.html

  • 编写一个登陆界面,肯定会用到表单的

  • 保存后在浏览器访问:localhost:80/test.html



  • 此时输入用户名密码登陆后页面跳转到我们设置的action:logok.html页面,因为这个页面还没有被创建,所以出错:

  • 而且在链接地址那里我们没有捕捉到输入的用户名与密码,很明显我使用的是POST方法

3.php测试

  • 编写一个用于test.html动作跳转的页面:test.php(html的action也更变为test.php)

2.Web前端javascipt

  • DOM就是文档对象模型,网上好多人说可以把这个看作一个节点
  • 我认为使用DOM是用来实现网页与服务器的动态交互的

1.投票

  • 使用javascipt编写一波用于投票的网页

  • 该功能是:投票页面选择了几个选项都可以在下方显示出来,网页效果如下:

  • 投票成功了:

2.验证用户名与密码

  • 用户名长度不能小于4个字符与密码不能为空:
<script language="javascript">
function nameText(){
var name= document.getElementByIdx_x ("username");
var divID= document.getElementByIdx_x ("divName");
divID.innerHTML="";
if(name.value.length<4){
divID.innerHTML="用户名长度不能小于4个字符";
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>

3.Web后端MySQL基础

1.mysql数据库基础使用

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

  • 使用root身份登陆:mysql -u root –p

  • 输入密码,默认为p@ssw0rd,随后进入mysql

  • 使用:show databases;可以查看数据库里库表的基本信息

2.修改密码


- use mysql; 选择mysql数据库
- select user, password, host from user; 查看mysql库中的user表,表中存储着用户名、密码与权限
- UPDATE user SET password=PASSWORD("5302") WHERE user='root'; 更换密码为5302
- 输入flush privileges; 更新权限
- quit 退出

  • 再次登陆输入新密码,成功登陆

3.Mysql中建库建表

- CREATE SCHEMA `5302_log`;                 建名为5302_log的库
- CREATE TABLE `5302_log`.`users` ( 表名为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 '');

4.添加用户

  • use 5302_log
  • 添加用户名与密码均为5302的用户:insert into users(userid,username,password,enabled) values(1,'5302',password("5302"),"TRUE");

4.Web后端数据库身份认证

1.登陆基础编写

  • 在/var/www/html文件夹下编写5302_login.html登陆界面

  • 并编写跳转界面5302_login.php

  • 登陆成功界面:

  • 登陆失败界面:

2.界面美化

  • 刚刚那个php界面太简陋了,可以对php代码进行修改

  • 登陆成功中加入一行header("Refresh:2;url=5302_logok.html");就可以在2秒后跳转到5302_logok.html界面

  • 登陆失败中加入一行header("Refresh:2;url=5302_logno.html");就可以在2秒后跳转到5302_logno.html界面

5.简单SQL注入

1.永真式

  • 在用户名输入框中输入' or 1=1#,密码随便输入,就可以登陆成功

2.sql语句注入

  • 在用户名输入框中输入:';insert into users(userid,username,password,enabled) values(666,'53attack',password("02ok"),"TRUE");#,将用户名为53attack、密码为02ok的用户注入users表中

  • 但是跳转到了一个空白界面

  • 一直登陆不成功是因为if ($result = $mysqli->query($query_str))这条语句不允许多条执行,即php防范SQL攻击的措施,改为if ($result = $mysqli->multiy_query($query_str))即可

  • 我们在库表中查询一下,注入成功没有:

  • 出现了53attack这个用户,下面登陆成功:



6.XSS攻击测试

1.DOM—based XSS

  • 在用户名输入框中输入:<img src="5302.jpg" />once</a>后登陆
  • 登陆失败,但是会显示那个图片:

  • 一直是这个图片破损界面,我试了8万张图,改了八万遍代码,终于成功了,眼睛都快瞎了

  • by the way,我输入的是:<img src="eUtpwVaG.jpeg" />20145302</a>
  • 我还试了给图片链接的做法,但是也是无法正常显示出图片……但是貌似图片这个大家都是一次成功啊,为何我这里这么艰难,好奇怪啊,是图片格式的问题?还是大小问题?
  • 再尝试一波短一点的动态影像:
	<video class="top-big-video" id="topBigVideo" autoplay loop>
<source src="http://ossweb-img.qq.com/images/lol/v1/banner/big-v12.webm" type="video/webm">
<source src="http://ossweb-img.qq.com/images/lol/v1/banner/big-v12.mp4" type="video/mp4">
</video>
  • 成功了 > <



2.弹窗

  • 在用户名输入框中输入:<Script Language="JavaScript"> alert("20145302感到害怕"); </Script>后点击登陆,出现弹框:

  • 当然随后是登陆失败的界面

6.2网页编写尝试

  • 上面注入的图片显示不了,图片来源是我从网上下载到主机,再从主机复制到kali,而注入成功的图片是以前我直接用kali截的图,尝试编写带有图片的网页:

  • 也是根本就不显示图片啊!而且直接把jpg改为jpeg是没用的

  • 试着直接在kali把图片下载下来:

  • 哇,成功显示了,是图片源格式的问题吗?

7.会话管理

1.保存登录信息

  • 只要用户登陆成功过,进入登陆页面都会显示已登陆



2.发帖

  • 帖子写在data.txt中,也可以读取







20145302张薇 《网络对抗技术》 web基础的更多相关文章

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

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

  2. 20145217《网络对抗》web基础

    20145217<网络对抗>web基础 一.问题 1.什么是表单? 表单:可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 表单包括两个部分:一部分是HTML源代码用于描 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. iOS + Node + MySQL

    最近有空,又温习了一下Node ,配合Express 4.x可以很快的搭建一个简单的后台. Node比较适合频繁I/O,大量异步.至于更加复杂的后台逻辑还是用Java,个中滋味自己体验. Expres ...

  2. ubuntu ndk 开发

      参考 https://developer.android.com/ndk/index.html   配置 下载android-ndk-r10d-linux-x86_64.bin  ,运行自解压. ...

  3. linux中fork函数详解(转)

    add by zhj: 在Linux,创建进程是用fork(),它其实就是拷贝父进程的数据段和其它数据,这相当于C函数调用中的值传递,这是 此后两者的修改都互不影响.因为两者的数据虽相同,但却在不同的 ...

  4. PS快速制作下雪效果

    PS快速制作下雪效果 具体的制作步骤如下: 1.打开PS,打开素材,打开窗口-动作 2.创建新动作,参数如下图 3.回到图层,建立一个图层,填充黑色,如下图 4.滤镜-像素化-点状化,参数如下图 5. ...

  5. 如何使用Soft-NMS实现目标检测并提升准确率

    非极大值抑制(Non-Maximum suppression,NMS)是物体检测流程中重要的组成部分.它首先基于物体检测分数产生检测框,分数高的检测框M被选中,其他与被选中检测框又明显重叠的检测框被抑 ...

  6. android ImageView加圆角

    1.attrs添加 <declare-styleable name="RoundImageView"> <attr name="circle" ...

  7. SQL 3

    SQL SELECT DISTINCT 语句 SELECT DISTINCT 语句用于返回唯一不同的值. SQL SELECT DISTINCT 语句 在表中,一个列可能会包含多个重复值,有时您也许希 ...

  8. myeclipse连接并运行sql文件

    1:在工程目录上右键>new >SQL File  ,写入sql 2:在sql文件上面右键>execute sql files 3:选择数据库类型,并点击create创建一个连接: ...

  9. 使用SQLMAP对网站和数据库进行SQL注入攻击

    from:http://www.blackmoreops.com/2014/05/07/use-sqlmap-sql-injection-hack-website-database/ 0x00 背景介 ...

  10. 浅谈CDN加速问题

    (以百度CDN进行分析) 婆说婆有理,公说公有理.是否使用CDN,不同的工程师有不同的意见. 这里呢我来进行一下简单的分析. [正方观点] 1. 提升网站加载速度:CDN通过缓存技术提升网站打开速度, ...