20155306 白皎 《网络攻防》 EXP8 Web基础

20155306 白皎 《网络攻防》 EXP8 Web基础

一、问题回答

- 什么是表单

表单:一般用来收集用户的信息和反馈意见

表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另一部分是脚本或应用程序用于处理提交的信息(如CGI脚本)。不使用处理脚本就不能搜集表单数据。表单由文本域、复选框、单选框、菜单、文件地址域、按钮等表单对象组成,所有的部分都包含在一个由标识符标志起来的表单结构中。表单的种类有注册表、留言薄、站点导航条、搜索引擎等。

- 浏览器可以解析运行什么语言

超文本标记语言:HTML
可扩展标记语言:XML
脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等。

- WebServer支持哪些动态语言

JavaScript、ASP、PHP、Ruby等脚本语言,ASP基于IIS WEB SERVER,是微软的服务器端脚本技术,PHP基于APACHE WEB SERVER,与ASP有几分类似,都是一种在服务器端执行的嵌入HTML文档的脚本语言。

二、实验步骤

(1)Web前端HTML

1.直接使用指令apachectl start打开Apache服务,使用netstat -aptn查看一下端口占用。用kill+进程ID杀死进程,Apache服务开启后,会打开了上次实验克隆的网页,说明我们Apache正常工作。

2.在/var/www/html目录下编辑test1.html

代码:

(2)Web前端javascip

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

test2.html代码如下

  • 提示功能:若用户名或密码为空,则会出现下述警告。

  • 重置功能:直接按重置按钮,可以清空之前填入的用户名和密码。

可以看到,直接清空

(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表

  1. 开启sql服务/etc/init.d/mysql star
    2.输入mysql -u root –p,并根据提示输入密码,默认密码为**[email protected]**,进入MySQL
    3.更改密码
- 输入use mysql;//选择mysql数据库
- 输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';//更改密码
- 输入flush privileges;//更新权限
- 输入quit//退出


4.创建数据库

[email protected]:/# mysql -u root -p//根据提示输入密码,默认密码为[email protected]
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.1.26-MariaDB-1 Debian unstable

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql;//选择mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> CREATE TABLE `t_user` (
    ->   `id` int(11) NOT NULL AUTO_INCREMENT,
    ->   `userName` varchar(20) DEFAULT NULL,
    ->   `password` varchar(20) DEFAULT NULL,
    ->   PRIMARY KEY (`id`)
    -> ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;//create table 表名 (字段设定列表);建立数据表
Query OK, 0 rows affected (0.20 sec)

MariaDB [mysql]> insert  into `t_user`(`id`,`userName`,`password`) values (1,'20155306','123456');//insert into 表名 values('值1','值2','值3'...);插入数据
Query OK, 1 row affected (0.00 sec)

MariaDB [mysql]> select * from t_user
    -> ;//select * from 表名查询表中的数据
+----+----------+----------+
| id | userName | password |
+----+----------+----------+
|  1 | 20155306 | 123456   |
+----+----------+----------+
1 row in set (0.00 sec)

MariaDB [mysql]> 

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

PHP是一种通用开源脚本语言,语法吸收了C语言、Java和Perl的特点,主要适用于Web开发领域。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行。

1.我们可以在/var/www/html目录下新建一个PHP测试文件。

<?php
  echo ($_GET["a"]);
  include($_GET["a"]);
  echo "i am 20155306!<br>";
?>

浏览器打开localhost:80/lxm_test.php?a=/etc/passwd可看到/etc/passwd文件的内容。

2.接下来,我们利用PHP和MySQL结合之前编的登录网页进行简单的用户身份认证。

test2login.php

代码:

3.先将之前编的登录网页的test2.html代码中form的action属性改成test2login.php,再在火狐浏览器中输入localhost:8082/login_test.html访问自己的登录页面:[注:端口号根据自己情况不同来确定!]

4.用户名和密码写自己刚刚mysql数据库最后一步新增的那个用户名和密码,匹配成功则显示如下

5.若不匹配则显示如下

(5)最简单的SQL注入

SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

1.永真式攻击

在用户名输入框中输入:‘ or 1=1#,任意输入密码。

2.普通sql攻击

  • 在用户名输入框中输入:
';insert into users(id,userName,password) values(5,'1553',password("5306"));#
  • 登录后,出现如下界面:

  • 数据库中查询一下发现真的添加成功,如图所示对比说明插入成功:

  • 使用刚才插入的用户名和密码进行登录,登录成功。

(6)XSS攻击

SS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。

1.参考大家普遍的一个测试,在用户名输入框中输入20155306读取/var/www/html目录下的图片,但是总是出现下图界面,并没有出现图像。

  1. xss类型一般分为三种:


第一种:反射型XSS

反射型XSS只是简单的把用户输入的数据“反射”给浏览器.也就是说需要诱使用户“点击”一个恶意链接,才能攻击成功。反射型XSS也叫作“非持久型XSS”

第二种:储存型XSS

储存型XSS会把用户输入的数据“储存”在服务器端。这种XSS具有很强的稳定性

第三种:DOM Based XSS

在这里,我们使用反射型XSS,通过给别人发送有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行。

  • 假设一个页面把用户输入的参数直接输出到页面上。

- 正常情况下,用户提交数据会展示到页面中http://127.0.0.1/xss.php?param=This is a test!```,得到下面结果:

在查看页面源代码,可以看到:<div>/This is a xss test!</div>

  • 如果提交一段HTML代码:
    http://127.0.0.1/xss.php?param=<script>alert(/This is a xss test!/)</script> ,会发现,alert(/This is a xss test!/)在当前页面执行了。

  • 再查看源代码:
    <div><script>alert(/This is a xss test!/)</script></div>
    用户输入的的Script,脚本已经被写入页面中,这并不是开发者所希望看到的。这就是反射型XSS攻击的原理。

三、遇到的困难

问题: Mysql中执行命令mysql -u root -p之后可能出现登录时提示ERROR 1045 (28000):的错误。

解决:通过百度,找到了解决办法如下,大家可以参考教程ERROR 1045 (28000)

[email protected]:/#  /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
[email protected]:/# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &[1] 3687
[email protected]:/# 180516 19:38:54 mysqld_safe Logging to syslog.
180516 19:38:54 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
 mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-1 Debian unstable

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [mysql]> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
Query OK, 4 rows affected (0.03 sec)
Rows matched: 4  Changed: 4  Warnings: 0

MariaDB [mysql]>  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

MariaDB [mysql]>  quit
Bye
[email protected]:/#  /etc/init.d/mysql restart
[ ok ] Restarting mysql (via systemctl): mysql.service.
[email protected]:/#  mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.1.26-MariaDB-1 Debian unstable

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>  select user, password, host from user;
ERROR 1046 (3D000): No database selected
MariaDB [(none)]>
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> select user, password, host from user;
+------------------+-------------------------------------------+--------------------+
| user             | password                                  | host               |
+------------------+-------------------------------------------+--------------------+
| root             | *FE4F2D624C07AAEBB979DA5C980D0250C37D8F63 | localhost          |
| root             | *FE4F2D624C07AAEBB979DA5C980D0250C37D8F63 | aphrodite.kali.org |
| root             | *FE4F2D624C07AAEBB979DA5C980D0250C37D8F63 | 127.0.0.1          |
| root             | *FE4F2D624C07AAEBB979DA5C980D0250C37D8F63 | ::1                |
| debian-sys-maint | *93FE00CD040E5B41447C242EFDC6E00481B98C3D | localhost          |
+------------------+-------------------------------------------+--------------------+
5 rows in set (0.00 sec)

MariaDB [mysql]> UPDATE user SET password=PASSWORD("20155306") WHERE user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)


原文地址:https://www.cnblogs.com/0831j/p/9053879.html

时间: 2024-11-07 17:53:51

20155306 白皎 《网络攻防》 EXP8 Web基础的相关文章

2018-2019 20165208 网络对抗 Exp8 Web基础

目录 2018-2019 20165208 网络对抗 Exp8 Web基础 实验内容 基础问题回答 实践过程记录 1. Apache准备 2. Web前端HTML 3. Web前端javascipt 4. Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 5. Web后端:编写PHP网页,连接数据库,进行用户认证 6. SQL注入 7. XSS攻击测试 实验中遇到的问题 实验感想 2018-2019 20165208 网络对抗 Exp8 Web基础 实验内容

20145301赵嘉鑫《网络对抗》Exp8 Web基础

20145301赵嘉鑫<网络对抗>Exp8 Web基础 基础问题回答 什么是表单? 表单是一个包含表单元素的区域,主要负责数据采集部分.表单元素允许用户在表单中输入信息.一个表单有三个基本组成部分:表单标签.表单域.表单按钮: 表单标签:包含处理表单数据所用的URL以及数据提交到服务器的方法: 表单域:包含了文本框.密码框.多行文本框.下拉选择框等等: 表单按钮:包括提交按钮.复位按钮和一般按钮. 浏览器可以解析运行什么语言? 支持HTML(超文本标记语言).XML(可扩展标记语言)以及Pyt

20145331魏澍琛《网络对抗》Exp8 Web基础

20145331魏澍琛<网络对抗>Exp8 Web基础 实践内容: 1.简单的web前端页面(HTML.CSS等) 2.简单的web后台数据处理(PHP) 3.Mysql数据库 4.一个简单的web登陆页面例子 5.SQL注入.XSS攻击 Web前端:HTML基础 1.先将apache的端口号设为80(上节已经设置好了),接着结束掉占用80端口的进程,再启动apache. 2.在/var/www/html目录下创建20145331wsc.html文件,即前端文件. 附:检查第一步是否成功只需在

20145211 《网络对抗》Exp8 Web基础

20145211 <网络对抗>Exp8 Web基础 本实践的具体要求有: (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(1分) 理解JavaScript的基本功能,理解DOM.编写JavaScript验证用户名.密码的规则. (3).Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表(1分) (4).Web后端:编写PHP网

2017-2018-2 20155314《网络对抗技术》Exp8 Web基础

2017-2018-2 20155314<网络对抗技术>Exp8 Web基础 目录 实验内容 实验环境 基础问题回答 预备知识 实验步骤 1 Apache的安装与配置 2 前端编程 3 后端编程 PHP的安装与配置 4 MYSQL的安装与配置 5 简单SQL注入与XSS 实验中遇到的问题及解决过程 实验总结与体会 参考资料 返回目录 实验内容 Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前端

20155330 《网络对抗》 Exp8 Web基础

20155330 <网络对抗> Exp8 Web基础 实验问题回答 什么是表单 表单可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 一个表单有三个基本组成部分 表单标签 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等 表单按钮:包括提交按钮.复位按钮和一般按钮. 浏览器可以解析运行什么语言 超文本标记语言:HTML 可扩展标记语言:XML 脚本语言:ASP.PHP.Script.JavaScript.VBScript.Perl.P

20155304《网络对抗》Exp8 Web基础

20155304<网络对抗>Exp8 Web基础 实践要求 (1).Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt 理解JavaScript的基本功能,理解DOM.编写JavaScript验证用户名.密码的规则. (3).Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 (4).Web后端:编写PHP网页,连接数据库,进行用户认证 (5).

20154309 【网络对抗技术】Exp8: Web基础

20154309 [网络对抗技术]Exp8: Web基础 一.实验要求 掌握网页编程的基本知识 html语法 javascript php 前端,后台,数据库之间如何建立连接 掌握数据库的使用 mysql的启动,创建数据库,表单等基本操作 sql语句的使用 了解如今网页设计上的一些安全隐患以及原理 sql注入 xss攻击 二.实验问题解答 什么是表单 表单是web设计中一个组件,用于采集用户输入的数据,以便进行后续处理,实现和用户之间的交互 浏览器可以解析运行什么语言 html php 脚本语言

20165214 2018-2019-2 《网络对抗技术》Exp8 Web基础 Week11—12

<网络对抗技术>Exp8 Web基础 Week11-12 一.实验目标与内容 1.实践内容 (1).Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt 理解JavaScript的基本功能,理解DOM.编写JavaScript验证用户名.密码的规则. (3).Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 (4).Web后端:编写PHP网页,连