Exp8 Web安全 20202211 王宏韬

发布时间 2023-05-24 17:03:53作者: 望红桃

目录

一、实践内容

二、基础问题

(1)什么是表单

(2)浏览器可以解析运行什么语言

(3)WebServer支持哪些动态语言

(4) 防范注入攻击的方法有哪些

三、总结体会

四、实验过程

(1)WEB HTML

(2)WEB JAVASCRIPT

(3)WEB 后端 MYSQL

(4)WEB 后端PHP

(5)SQL注入

(6)XSS

(7)WEBGOAT

  SQL注入

  XSS

  CSRF

一、实践内容

  • Web前端HTML

    • 能正常安装、启停Apache
    • 理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML
  • Web前端JavaScipt

    • 理解JavaScript的基本功能,理解DOM
    • 在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
    • 尝试注入攻击:利用回显用户名注入HTML及JavaScript
  • Web后端:MySQL基础——正常安装、启动MySQL,建库、创建用户、修改密码、建表

  • Web后端:编写PHP网页,连接数据库,进行用户认证

  • 最简单的SQL注入,XSS攻击测试

  • 选做Webgoat或类似平台的SQL注入、XSS、CSRF攻击各一例

二、基础问题

(1)什么是表单

  表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分:表单标签:这里面包含了处理表单数据所用 CGI 程序的 URL 以及数据提交到服务器的方法。表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI 脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

(2)浏览器可以解析运行什么语言

  支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等众多脚本语言。

(3)WebServer支持哪些动态语言

  PHP(HypertextPreprocessor)、ASP(ActiveServerPages)、JSP(JavaServerPages)。

(4) 防范注入攻击的方法有哪些

  SQL注入攻击、XSS攻击、CSRF攻击。

三、总结体会

  本次实验中,WEB综合实验是一项非常重要的实践环节。通过这个实验,我们可以深入了解WEB应用的攻击和防御技术,提高自己的安全意识和技能。在实验中,我们首先学习了WEB应用的基本概念和工作原理,包括HTTP协议、HTML、CSS、JavaScript等。然后,我们通过搭建虚拟机和安装WEB应用程序,学习了常见的WEB攻击技术,如SQL注入、XSS攻击、CSRF攻击等。在攻击的过程中,我们使用了各种工具和技术,如Burp Suite、Sqlmap、Metasploit等。同时,我们也学习了如何防御这些攻击,如过滤用户输入、使用预编译语句、使用验证码等。通过这个实验,我深刻认识到了WEB应用的安全问题和重要性。我也发现了自己在安全方面的不足之处,需要不断学习和提高。同时,我也感受到了安全工作的挑战和乐趣,我对这个领域的兴趣更加浓厚了。总之,WEB综合实验是一项非常有价值的实践环节,它让我更加深入地了解了WEB应用的攻击和防御技术,提高了我的安全意识和技能。我相信这个实验对我的未来职业发展和个人成长都有着重要的意义。

四、实验过程

(1)WEB HTML

service apache2 start命令打开Apache服务

netstat -aptn查看端口信息
如果80端口被Apache2监听,则启动成功。

 

kali访问127.0.0.1,可正常打开Apache介绍网页,则开启成功。

 

cd /var/www/html 
进入Apache目录下,新建一个简单的含有表单的html文件
touch 2211.html(创建)
vi 2211.html(编辑)

 

访问/var/www/html/2211.html

 

(2)WEB JAVASCRIPT

添加一段JavaScript代码,以完成对用户是否填写账号和密码的判断,在用户点击登陆按钮后回显“欢迎+输入的用户名”
<!--//main-->
<script language="javascript">
function validateLogin(){
var sUserName = document.form_login.user.value;
var sPassword = document.form_login.Password.value;
if ((sUserName =="") || (sUserName=="Your name")){
alert("need name!");
return false ;
}
if ((sPassword =="") || (sPassword=="Your password")){
alert("need password!");
return false ;
}
}

 

编写登录成功后跳转的界面,主要任务是获取用户名参数并显示出来

 

尝试注入攻击

 

 

 

 

 

(3)WEB 后端MYSQL

MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表

service mysql start开启MySQL服务

sudo mysql -u root -p使用mysql

 

创建用户
CREATE USER wht2211@localhost IDENTIFIED BY '20202211';

use mysql

修改密码
set password for root@'localhost'=password('20202211');

创建一个新的数据库wht1
create database wht1;

查看数据库
show databases

 

use wht1;
建立数据库表login,并设置字段基本信息
create table login(username VARCHAR(20),password VARCHAR(20));

插入数据
insert into login values ('20202211@qq.com', '20202211');
查询表中的数据
select * from login;

增加新用户
grant select,insert,update,delete on LZ1.* to wht2211@localhost identified by "20202211";

 

 

(4)WEB 后端PHP

安装PHP

 

 

 

 

 

 

 

 

(5)WEB SQL注入

 

 

 

 

(6)XSS

 

 

 

 

(7)WEBGOAT

 

 

 

SQL注入

 

XSS

 

 

CSRF