20155307实验八 《网络对抗》 Web基础
实验过程
Web前端:HTML
- 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kill 原进程号,如果空闲就用apachectl start开启Apache,然后再次用netstat -aptn查看端口占用情况。
- 在kali的浏览器上输入localhost:80测试apache是否正常工作(我的虚拟机正常显示上次实验设定的钓鱼网站google网页)。
- 进入Apache工作目录
/var/www/html
,新建一个lh5307.html文件,编写一个含有表单能实现输入用户名、密码实现登录的html。
- 打开浏览器访问
localhost:80/lh5307.html
,出现刚才编写的HTML页面。
-
点击会跳转
Web前端:javascript
-
用JavaScript来编写一个验证用户名、密码的函数,当其为空时提示错误信息,把它和前面的liuhao.html合起来形成一个新的HTML网页lh5307.html。
Web后端:MySQL基础
- 用
/etc/init.d/mysql star
t开启sql服务。输入mysql -u root -p
用账号root登录,并根据提示输入对应密码,我的MySQL默认密码就是直接回车,,最后再直接敲回车之后进入MySQL。
- 用
show databases;
查看基本信息。
- 修改MySQL的root用户密码可以进行如下步骤
- 用use mysql;,选择mysql数据库。
- 用
select user, password, host from user;
,查看mysql库中的user表中存储着用户名、密码与权限。
- 输入
UPDATE user SET password=PASSWORD("新密码") WHERE user='root';
更改密码。 - 用
flush privileges;
进行更新。
-
重新登录验证密码更改成功
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 '');
- 输入use 库表名使用刚建的库表。
-
输入insert into users(userid,username,password,enabled) values(ID号,'用户id',password("用户密码"),"TRUE");添加新用户。
PHP测试
-
新建一个PHP测试文件
vi /var/www/html/test.php
,输入如下
<?php
echo ($_GET["A"]);include($_GET["A"]);
echo "php page 5307!
";
?> -
用浏览器打开
localhost:80/test.php
,可以看见如下界面,测试成功PHP+MySQL实现登录网页编写
- 打开之前的登录页面设置编写的文件夹
/var/www/html
,输入vim login.php
,通过- - PHP实现对数据库的连接
-
在其中输入正确的用户名和密码(即自己所新建数据库表中存在的新加入的用户和密码),显示登陆成功。
SQL注入
- 在用户名输入框中输入
' or 1=1#
,密码随便输入,会显示登陆成功!
';insert into users(userid,username,password,enabled) values(66,'22',password("20155307"),"TRUE");# - 这是因为,这时候
' or 1=1#
合成后的SQL查询语句为select * from lxmtable where username='' or 1=1#' and password=md5('')
,#相当于注释符,会把后面的内容都注释掉,1=1
是永真式,所以这个条件肯定恒成立,一定会登陆成功。
在用户名框中输入';insert into users(userid,username,password,enabled) values(66,'22',password("20155307"),"TRUE");#
- 通过SQL注入将用户名和密码保存在数据库中,这就相当于是
SELECT * FROM users WHERE username=''; insert into users(userid,username,password,enabled) values(66,'22',password("20155305"),"TRUE");
- 这时数据库中已经有了新输入的这个用户和密码。
-
使用这个新输入的这个用户和密码在网页中登录就没有问题了。
XSS攻击测试
XSS表示Cross Site Scripting(跨站脚本攻击),通过插入恶意脚本,实现对用户浏览器的控制。
- 在
/var/www/html
目录下事先保存一个图片文件555555.jpg,在用户名输入框输入 < img src="555555.jpg" />,对应到php中,就是echo < img src="555555.jpg" /> ,然后既可以查看到图片了。 - 开始尝试的时候,攻击成功了,但图片一直加载不出来,后来给图片加上权限就可以了。
- 具体怎么加权限我请教的磊哥
-
输入chmod 777授予任何人读,写,运行的权限,终于图片可以显示了
实验总结与体会
这门课程刘念老师教过,但是想必都忘得差不多了,在同学的指导下一步一步的做,没遇到什么解决不了的问题,其实我想了一下可能这就是不同的过程所以收获不同吧,磊哥先做完了所以遇到了很多问题,他处理的同时也收获了许多,我可能收获不如他多。刘念老师以前讲的SQL注入我印象最深刻,所以很熟悉这方面的内容。