20155207 EXP8 Web基础
20155207 EXP8 Web基础
实验内容
- (1)Web前端HTML
- (2)Web前端javascipt
- (3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
- (4)Web后端:编写PHP网页,连接数据库,进行用户认证
- (5)最简单的SQL注入,XSS攻击测试
基础问题回答
- (1)什么是表单
- 在网页中负责信息采集,在网页中用户输入信息,通过表单能够提交到后台进行相应的处理
- (2)浏览器可以解析运行什么语言
- HTML、CSS,JS脚本会调用JS脚本引擎来处理,PHP的解释执行是在服务器端进行的
- (3)WebServer支持哪些动态语言
- ASP、PHP、JSP、Python
实践过程记录
Apache
-
启动apache,查看端口占用
-
检测apache是否正常工作,fierfox访问
localhost:80
,显示Apache截获的google登陆页面
编写网页
-
测试:apache读取工作目录下的文件
-
输入字符串
-
浏览器打开localhost:80/test.txt
前端编程
- 编写简单的用于login的HTML页面
-
method参数是GET,所以输入值会在URL中显示、提交
-
javascript,编写测试输入密码是否为空的代码
<html>
<head>
<meta charset ="UTF-8">
<script type="text/javascript">
function check_pwd()
{
var Pwd = document.form.password.value ;
if (Pwd ==""){
alert("password input cannot be empty!");
return false ;
}
}
</script>
<body bgcolor="#aaFFFFF">
<h1>login</h1>
<form name="form" action ="5207_login.php" method="GET" onclick="return inputshow()">
<input type="text" name="username" >
<br>
<input type="password" name="password" id="password">
<br>
<button type="submit" onclick="disp_alert()" value="submit" />submit</button>
</form>
</body>
</html>
- 测试,输入空的密码
- 弹出对话框
后端编程PHP
- 安装PHP
- 测试PHP
- 编写PHP尝试获得表单数据
- form使用POST方法提交,需要修改PHP也用POST方法
MySQL
-
安装启动Mysql
-
进入mysql:
输入/etc/init.d/mysql start
打开mysql服务,
输入mysql -u root -p
,以root身份登录,根据提示输入密码,默认密码为p@ssw0rd,进入MySQL;
- 修改密码:前面默认的密码不好记,可以修改密码
输入use mysql;
选择mysql数据库
输入select user, password, host from user;显示mysql库中已有的用户名、密码与权限
输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';更改用户名root的密码
输入flush privileges;更新权限。
输入quit退出,重新登录mysql
- 重新输入
mysql -u root –p
,使用新密码登录。 - 创建数据库和新表。命令如下:
create database 库名;
use 库名;
create table gyl (userid VARCHAR(100),username VARCHAR(45),password VARCHAR(256),enabled VARCHAR(5));
- 表名users 四个字段userid、username、password、enabled 主键userid
- 向表中添加账户
SQL注入
- 在网页登录的用户名中填写
' or 1=1#
,密码随便输入,这时候的合成后的SQL查询语句为select * from users where username='' or 1=1#' and password=md5('')
-
可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
-
修改代码,允许多条执行,SQL注入将用户名和密码保存在数据库中
XSS攻击
- 在登录的用户名中输入:5207,读取/var/www/html目录下的图片