网络对抗技术 20164320 Exp8 Web基础

 

回答问题
(1)什么是表单
在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
(2)浏览器可以解析运行什么语言。
超文本标记语言:HTML
可扩展标记语言:XML
脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等。
(3)WebServer支持哪些动态语言
PHP、JSP。

实验内容

1.Web前端HTML
(1)Apache安装
由于我的kali好像已有Apache,所以就没有安装的过程,但是应该可以执行sudo apt-get install apache2来安装
(2)Apache启停

  • 执行service apache2 start来启动apache服务
  • 如果失败,可能是80端口被占用,可执行netstat -tupln | grep 80来查看占用80端口的其他进程,然后kill processID来杀死该进程,然后重新开启apache即可。
  • 使用service apache2 stop来停止apache服务
     

网络对抗技术 20164320 Exp8 Web基础_第1张图片

网络对抗技术 20164320 Exp8 Web基础_第2张图片

(3)1.测试Apache在浏览器输入127.0.0.1,如果和下图一样,即说明可正常工作。

网络对抗技术 20164320 Exp8 Web基础_第3张图片

2.使用 cd /var/www/html 进入Apache目录下,新建一个简单的含有表单的html文件 simple_form.html :

 网络对抗技术 20164320 Exp8 Web基础_第4张图片

编辑文件代码如下:

CryptoTeam

 

   

Login

       

           

           

           

           

           

           

           

       

网络对抗技术 20164320 Exp8 Web基础_第5张图片

 

在浏览器尝试打开

 网络对抗技术 20164320 Exp8 Web基础_第6张图片

2.Web前端javascipt

1)在原有 simple_form.html 基础上,可以添加一段JavaScript代码,以完成对用户是否填写邮箱和密码的判断。修改后的 login_test.html 如下所示:

CryptoTeam

 

   

Login

       

           

           

           

           

           

           

           

       

 

 

2)在浏览器访问 file:///var/www/html/login_test.html ,如果用户邮箱或密码未填,网页会提示:

 网络对抗技术 20164320 Exp8 Web基础_第7张图片

网络对抗技术 20164320 Exp8 Web基础_第8张图片

3.Web后端:MySQL基础

 

(1)MySQL的配置

 

输入代码/etc/init.d/mysql start 启动MySQL服务 注意开头不需要加cd。。。

网络对抗技术 20164320 Exp8 Web基础_第9张图片

输入mysql -u root -p ,用root权限登录MySQL

网络对抗技术 20164320 Exp8 Web基础_第10张图片

输入use mysql;进入数据库(注意进入数据库之后的操作都要加‘;’否则程序无法识别)

网络对抗技术 20164320 Exp8 Web基础_第11张图片

输入代码:update user set password=PASSWORD("20164320") whereuser='root';

修改用户登录密码为20164320

网络对抗技术 20164320 Exp8 Web基础_第12张图片

输入 flush privileges;更新权限

网络对抗技术 20164320 Exp8 Web基础_第13张图片

输入 exit 退出数据库,使用新的密码登录

网络对抗技术 20164320 Exp8 Web基础_第14张图片

使用 create database databasename; 建立数据库

使用 show databases; 查看存在的数据库

网络对抗技术 20164320 Exp8 Web基础_第15张图片

 使用 use databasename; 使用我们创建的数据库

网络对抗技术 20164320 Exp8 Web基础_第16张图片

使用 create table tablename; 建立数据库表,并设置字段基本信息

使用 show tables; 查看表信息

网络对抗技术 20164320 Exp8 Web基础_第17张图片

使用 insert into tablename values('1','2'); 插入数据

输入insert into login_table values('123456789besti4320.com','20164320')插入数据表项信息

网络对抗技术 20164320 Exp8 Web基础_第18张图片

  输入select * from login_table;

 网络对抗技术 20164320 Exp8 Web基础_第19张图片

在MySQL中增加新用户,使用 grant select,insert,update,delete on sql.* to username@localhost identified by "password";

网络对抗技术 20164320 Exp8 Web基础_第20张图片

尝试登陆

网络对抗技术 20164320 Exp8 Web基础_第21张图片

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

(1)先编写简单的php网页脚本

在 /var/www/html 目录下新建一个PHP测试文件 phptest.php ,简单了解一下它的一些语法

 

 echo ($_GET["a"]);

 

include($_GET["a"]);

 

echo "This is my wjt php test page!
";

 

?>

网络对抗技术 20164320 Exp8 Web基础_第22张图片

 在浏览器网址栏中输入 localhost/phptest.php?a=/etc/passwd ,可看到 /etc/passwd 文件的内容

网络对抗技术 20164320 Exp8 Web基础_第23张图片

可以看到测试网页内容:this is my php test page!

 

(2)利用PHP和MySQL,结合之前编写的登录网页进行登录身份认证

 在var/www/html目录下创建文件login.html和login.php

 login.php

代码如下:

login

Login

 

username:
password:

 

 

 

 

$uname=($_GET["username"]);

$pwd=($_GET["password"]);

echo $uname;

$query_str="SELECT * FROM login_table where username='$uname' and password='$pwd';";

$mysqli = new mysqli("127.0.0.1", "root", "666", "wh");

 

/* check connection */

if ($mysqli->connect_errno) {

    printf("Connect failed: %s\n", $mysqli->connect_error);

    exit();

}

echo "connection ok!";

/* Select queries return a resultset */

if ($result = $mysqli->query($query_str)) {

    if ($result->num_rows > 0 ){

            echo "
{$uname}:Welcome!!!
";

    }

    else {

        echo "
login failed!!!!
" ; }

    /* free result set */

    $result->close();

}

$mysqli->close();

?>

4.在浏览器输入 127.0.0.1/login.html 访问自己的登录界面,并登录自己的用户名和账号

 

简单SQL注入,XSS攻击测试

1.SQL注入

  • SQL注入原理 是利用现有应用程序,将SQL命令注入到后台数据库引擎执行的能力,可以通过在Web表单中输入SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

在用户名输入框输入 ' or 1=1# ,密码任意输入,可登陆成功

    • 输入的用户名与select语句组合变成 select * from users where username='' or 1=1#' and password='' ,#起到注释作用屏蔽了密码判断语句,而1=1是1,所以能够成功登陆。
    • 网络对抗技术 20164320 Exp8 Web基础_第24张图片
    • 2.XSS攻击
      • XSS攻击原理 一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

      将图片放在 /var/www/html 目录下,在用户名输入框输入  ,密码任意,但是发现登陆失败了。

网络对抗技术 20164320 Exp8 Web基础_第25张图片

实验感想

本次实验难度不大,但对代码要求较高,需要和同学合作讨论后才能完成,马上要结课了,好快啊

你可能感兴趣的:(网络对抗技术 20164320 Exp8 Web基础)