20155204《网络对抗》Exp8 Web基础

20155204《网络对抗》Exp8 Web基础

1、基础问题回答

1.什么是表单

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

2. 浏览器能够解析运行什么语言。

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

3. WebServer支持哪些动态语言

PHP语言、JSP语言。前端

2、实践总结与体会

此次实验咱们主要实践了关于web中SQL的使用,以及一些简单的SQL的攻击方式。这几个攻击方式让我感受逻辑上的漏洞真的是十分巧妙的,也是很是难以防范的。java

3、实践过程记录

1.Web前端HTML

  • 经过apchectl start打开apahce。mysql

  • 在kali浏览器中输入localhost:80,观察Apache正常工做。
    web

2.Web前端:javascipt基础

  • 进入Apache工做目录/var/www/html,新建一个wh.html文件,限制用户登陆时必须输入用户名和密码。

3.MySQL基础

  • 这部分主要练习SQL的使用。
  • 输入/etc/init.d/mysql start打开mysql服务,
  • 输入mysql -u root -p,以root身份登陆,根据提示输入密码,默认密码为p@ssw0rd,进入MySQL;
  • 用show databases;查看基本信息。(分号必定要加)

  • 建立数据库和新表。命令以下:
create database 库名;
use 库名;
create table tb1 (userid VARCHAR(100),username VARCHAR(45),password VARCHAR(256),enabled VARCHAR(5));

  • 在表中添加内容:
insert into tb1(userid,username,password,enabled) values(1,'20155204','5204',"TRUE");
  • 输入select * from tb1;查看表中如今的信息:

4.Web后端:PHP网页

  • 在/var/www/html目录下编写一个wh1.html(在以前的wh.html上修改),设置将wh1.html的表单提交到whL.php。sql

  • 编写wh.php,经过php实现对数据库的链接,并显示用户是否能成功登陆。数据库

<?php

$uname=($_POST["username"]);
$pwd=($_POST["password"]);

/* echo $uname; */

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

/* echo "<br> {$query_str} <br>";*/

$mysqli = new mysqli("127.0.0.1", "wh15204", "5204", "db1");

/* 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 "<br> Welcome login Mr/Mrs:{$uname} <br> ";
    } else {
        echo "<br> login failed!!!! <br> " ;
    }

    /* free result set */
    $result->close();
}


$mysqli->close();

?>
  • 在登陆页面中输入数据库中存有的用户名和密码并点击提交,若是匹配就登陆成功。

5.SQL注入

  • 能够经过在Web表单中输入(恶意)SQL语句获得一个存在安全漏洞的网站上的数据库,经过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
  • 在网页登陆的用户名中填写' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为select * from users where username='' or 1=1#' and password=md5(''),#至关于注释符,会把后面的内容都注释掉,而1=1是永真式,因此这个条件确定恒成立,因此可以成功登录。

  • 或者先在PHP中改语句if ($result = $mysqli->query($query_str))为if ($result = $mysqli->multi_query($query_str)),而后在用户名框中输入';insert into users values('66','5204','20155204',"TRUE");#在数据库中能够直接插入一个伪造的用户名,密码,下次就能够用伪造的用户名密码登陆网站了(登陆前将if ($result = $mysqli->query($query_str))语句改回来)。

6.XSS攻击

  • 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种常常出如今web应用中的计算机安全漏洞,它容许恶意web用户将代码植入到提供给其它用户使用的页面中。好比这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞因为被骇客用来编写危害性更大的phishing攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。后端

  • 在登陆的用户名中输入:5204,读取/var/www/html目录下的图片:浏览器

相关文章
相关标签/搜索