Web前端HTML
kali:192.168.152.134
1.环境配置
检查80端口有没有被占用:netstat -aptn | grep 80
杀死占用的进程:kill 2380
打开apache2:service apache2 start
检测apache有没有正常工作
这里为了区分,我又将自己的端口号改为了4327.
2.编写网页
- 进入apache2的存储html文件的文件夹/var/www/html修改相应html文件,设计自身表单
老师上课提到了QQ的登陆界面,我便去网上找了下QQ登陆界面的html源码,效果如下
保存后在浏览器访问:localhost:4327/4327.html
在上面的文本框内随意输入,然后点击授权并登陆,但由于下载的html里面没有写action的代码,点击后没有任何变化。
3.Web前端javascipt
- 以下使用javascript创建一些简单的用户名密码的验证规则(用户名不能为空以及对密码长度做出限制)
<html>
<head>
<script>
function username_test(){
var nameTest=document.getElementById("username");
if(nameTest.value==""){
alert("用户名不能为空");
}
}
function password_test(){
var pwdTest=document.getElementById("password");
if(pwdTest.value.length<6){
alert("密码长度不得少于六位");
}
}
</script>
</head>
<body>
</body>
</html>
Web后端MySQL基础
1.mysql数据库基础使用
- 开启sql服务:/etc/init.d/mysql start
- 使用root身份登陆: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("4327") WHERE user='root'; 更换密码为4327
- 输入flush privileges; 更新权限
quit 退出
3.Mysql中建库建表
- CREATE SCHEMA
4327_log
; 建名为4327_log的库 - CREATE TABLE
4327_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 4327_log打开表
- 添加用户名与密码均为4327的用户:
- insert into users(userid,username,password,enabled) values(2,'154327',password("lovezh"),"TRUE");
4.Web后端数据库身份认证
1.登陆基础编写
在/var/www/html文件夹下编写4327_login.html登陆界面
并编写跳转界面4327_login.php<?php echo ($_GET["A"]); include($_GET["A"]); echo "hello this is 20154327<br>"; ?>
登陆成功界面:
PHP+MySQL实现登录网页编写
这一步卡了好久,换了好多种不同的PHP代码,也将自己的数据库修改无数次,各种不同的代码各有各的问题,最后终于将一个修改成功,这里贴出我的解决方案,供遇到相同问题的同学参考。
在/var/www/html文件夹下编写123.html登陆界面并编写跳转界面login.php
登陆成功界面:
登陆失败界面:
在调试时遇到了这个问题,打开测试页面的时候出现如下错误:Forbidden
You don't have permission to access /123.html on this server.开始我以为我配置出错,花半天时间都没有搞定,最后仔细都了下英文,感觉是权限不够.
原因:apache权限不够。
解决方法:更改文件权限;cd过去更改权限,权限指令在一开始的实验楼上有学,修改为755,chmod 755 123.html
5.简单SQL注入
1.永真式
在用户名输入框中输入' or 1=1#,密码随便输入,就可以登陆成功
2.sql语句注入
在用户名输入框中输入:';insert into users(userid,username,password,enabled) values(666,'4327zh',password("1997"),"TRUE");#,将用户名为4327zh、密码为1997的用户注入users表中
但是跳转到了一个空白界面
一直登陆不成功是因为if ($result = $mysqli->query($query_str))这条语句不允许多条执行,即php防范SQL攻击的措施,改为if ($result = $mysqli->multiy_query($query_str))即可
我们在库表中查询一下,注入成功没有:
出现了4327zh这个用户,下面登陆成功:
6.XSS攻击测试
1.DOM—based XSS
在用户名输入框中输入:once后登陆
登陆失败,但是会显示那个图片:
一直是这个图片破损界面.
同上面网页打不开一样,我初步怀疑是权限不足造成的,
2.弹窗
在用户名输入框中输入:后点击登陆,出现弹框:
当然随后是登陆失败的界面