20192413宗俊豪 2021-2022-2 《网络与系统攻防技术》实验八实验报告
20192413 2021-2022-2 《网络与系统攻防技术》实验八实验报告
1.实验内容
(1)Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
(2)Web前端javascipt
理解JavaScript的基本功能,理解DOM。
在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
尝试注入攻击:利用回显用户名注入HTML及JavaScript。
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
(4)Web后端:编写PHP网页,连接数据库,进行用户认证
(5)最简单的SQL注入,XSS攻击测试
(6)安装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击。
2.实验过程
2.1 Web前端HTML
-
启动apache并查看状态
-
浏览器中输入127.0.0.1,可以看到
-
cd /var/www/html
进入Apache目录下,新建一个含有表单的html文件login.html
-
在浏览器中打开可以显示出结果
2.2 Web前端javascipt
-
在login.html中加入验证规则
-
在浏览器中登录时不输入密码
2.3 Web后端MySQL基础
2.3.1开启mysql并登录
2.3.2 建库
- 查看数据库
2.3.3 使用数据库
- 建立表logininfo
- 插入“zjh”和“20192413”
- 查看表内容
2.3.4用户操作
-
修改密码
-
创建用户
-
使用新用户登录可以成功
2.4 Web后端PHP
-
编写login.php
-
将前边login.html中的action改为login.php
-
在浏览器输入127.0.0.1/login.html访问自己的登录界面
-
输入正确用户名和密码登入,可以看到
2.5最简单的SQL注入和XSS攻击测试
2.5.1SQL注入
-
在浏览器输入127.0.0.1/login1.html访问自己的登入页面
-
在用户名输入框输入' or 1=1#,密码任意输入,点击登入
2.5.2XSS攻击
-
将图片test.jpg放入/var/www/html目录下
-
在浏览器输入127.0.0.1/login.html访问自己的登入页面
-
输入同户名
<img src="test.jpg"/>
,密码任意输入,点击登入可以读取到图片并可以看到登入信息
2.6 装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击
2.6.1WebGoat环境搭建
-
下载webgoat-server-8.0.0.M26.jar
java -jar webgoat-server-8.0.0.M26.jar加载jar包
-
浏览器中输入http://127.0.0.1:8080/WebGoat打开WebGoat注册界面,先注册后登录即可
2.6.2 SQL注入
- 在不需要知道任何用户名的情况下,得到整张表的内容。
2.6.3 XSS攻击
-
点击Update Cart时,可以看到页面上输出,可以判断卡号字段存在xss
-
注入
<script>alert(20192413);</script>
发现成功
2.6.4 CSRF攻击
- 用Burp的proxy抓包,把Referer中8080修改为9080,获得flag
3.问题及解决方案
- 问题1:在浏览器打开php文件时出现白屏
- 问题1解决方案:在我用的kali2022版中apache与php模块没有连接,换为kali2021后后可打开
4.学习感悟、思考等
本次实验是Web的一些基础应用:前端的HTML和JavaScript、后端的MySQL和PHP、前端和后端的结合,以及SQL注入攻击、XSS攻击、CSRF攻击等等。在本次实验中,结合数据库课程的内容,我更深刻地熟悉和掌握了MySQL数据库在Linux系统中的应用,对PHP文件的操作也有了比较基础的掌握。通过本次实践中尝试的各类攻击方式,发现在平时的web设计中只要多加注意,其实就能很好地避免简单的攻击,在之后的学习过程中也会加以思考和应用。