网络对抗——web基础

实践内容

(1)Web前端HTML
(2)Web前端javascipt
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
(4)Web后端:编写PHP网页,连接数据库,进行用户认证
(5)最简单的SQL注入,XSS攻击测试

实践后问题回答

(1)什么是表单

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

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

(2)浏览器可以解析运行什么语言。
超文本标记语言:HTML
可扩展标记语言:XML
脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等

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

PHP语言和JSP语言等

实践总结与体会

之前我们也学过一些有关html网页编程的例子,但是接触面比较窄,这次实验又让我们系统的接触了web相关的知识,尤其是在做到sql注入和XSS攻击的时候,我觉得网页攻击还是非常可怕的,因为现在的网页很多都会连接这数据库,虽然关于sql注入和xss攻击防不胜防,但是我们在编写html的时候仍必须了解一些防范知识,避免一些低级的攻击。

实践前准备——apache

  • apache是kali下的web服务器,通过访问ip地址+端口号+文件名称可以打开对应的网页。

1、输入命令vi /etc/apache2/ports.conf更改apache2的监听端口号;

2、输入命令apachectl start打开apahce,并查看端口号,确认apache正确开启,如下图所示:

3、在kali下的firefox输入ip地址:端口号可以看见apache2的网页

简单表单HTML编写

1、在/var/www/html目录下编辑index.html

2、在firefox中输入:127.0.0.1:5204,就能打开该网页。

3、在网页中的文本框中填写一些数据,提交。因为在该目录下我们没有编写指定的php文件,所以返回,网页未找到。

javascript

JavaScript是一种属于网络的脚本语言,已经被广泛用于网页,用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用,通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。以下是一个关于javascript的警告框,限制用户登录时必须输入用户名和密码。
<html>
<head>
<meta charset ="UTF-8">
<script type="text/javascript">
function disp_alert()
{var sUserName = document.form.username.value ;  var sPassword = document.form.password.value ;    if ((sUserName =="") || (sUserName=="Your name")){  alert("Please input the username!");  return false ;  }  if ((sPassword =="") || (sPassword=="Your password")){  alert("Please input the password!");  return false ;  }
}
</script>
</head>
<body>
<form name='form' class="form" method='get' action='login.php' >
<input type="text" placeholder="Username" name='username'>
<input type="password" placeholder="Password" name='password'>
<button type="submit" onclick="disp_alert()"  value="submit" />submit</button></body>
</html>

2、结果如下图所示

php测试

PHP(Hypertext Preprocessor)是一种通用开源脚本语言。主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率高,PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。以下是一个php测试代码:

<?phpecho ($_GET["A"]);include($_GET["A"]);echo "this is my first php page!<br>";
?>
20145204

在firefox中输入localhost:5204/5204test.php,显示:

mysql

mysql是一个数据库,我们这次只是一个简单的应用,基本上是以下三个部分


1、开启mysql,并更改用户名密码2、建立库表,并插入数据3、实现网页和数据库的连接。
具体时间步骤

1、输入/etc/init.d/mysql start打开mysql服务,

2、输入mysql -u root -p,以root身份登录,根据提示输入密码,默认密码为p@ssw0rd,进入MySQL:

3、修改密码可以:
输入use mysql;,选择mysql数据库
输入select user, password, host from user;,显示mysql库中已有的用户名、密码与权限
输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';更改用户名root的密码
输入flush privileges;,更新权限。
输入quit退出,重新登录mysql

4、创建新表


CREATE SCHEMA `库表的名称`;
CREATE TABLE `库表的名称`.`users` (`userid` INT NOT NULL COMMENT '',`username` VARCHAR(45) NULL COMMENT '',`password` VARCHAR(256) NULL COMMENT '',`enabled` VARCHAR(5) NULL COMMENT '',PRIMARY KEY (`userid`) COMMENT '');

5、在表中添加内容:


use 刚刚建立的库表名insert into users(userid,username,password,enabled) values(1,'用户id',password("用户密码"),"TRUE");

6、输入show databases ,查看新建的库表的信息

7、编写与数据库连接的php页面:vi /var/www/html/login.php


<?php$uname=$_GET['username'];$pwd=$_GET['password'];echo $uname;$query_str="SELECT * FROM users WHERE username='{$uname}' and password=password('{$pwd}');";$mysqli = new mysqli("127.0.0.1", "root", "20145204", "5204");/* 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> Wellcome login Mr/Mrs:{$uname} <br> ";} else {echo "<br> login failed!!!! <br> " ; }/* free result set */$result->close();}$mysqli->close();?>

8、网页登录界面:使用在javascript部分中的代码。

9、登录成功信息:

登录失败信息:

sql注入

可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

在网页登录的用户名中填写' or 1=1#,成功登录:

或者在用户名框中输入';insert into users(userid,username,password,enabled) values(888,'5204',password("20145204"),"TRUE");#,在数据库中可以直接插入一个伪造的用户名,密码,下次就可以用伪造的用户名密码登录网站了。

XSS攻击

跨站脚本攻击(Cross Site Scripting),恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

在登录的用户名中输入:<img src="1.png" />20145204</a>,就可以访问目录下的图片:

转载于:https://www.cnblogs.com/yayaer/p/6806352.html

网络对抗——web基础相关推荐

  1. 2018-2019 20165208 网络对抗 Exp9 Web安全基础

    目录 2018-2019 20165208 网络对抗 Exp9 Web安全基础 实验内容 基础问题回答 实践过程记录 1. WebGoat准备 2. SQL注入攻击 2.1 Command Injec ...

  2. 20145233《网络对抗》Exp8 Web基础

    20145233<网络对抗>Exp8 Web基础 实验问题思考 什么是表单? 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码框.隐藏域 ...

  3. 20145227鄢曼君《网络对抗》Web安全基础实践

    20145227鄢曼君<网络对抗>Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御? SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是 ...

  4. 20155202《网络对抗》Exp9 web安全基础实践

    20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...

  5. 2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础

    2018-2019-2 20165221 [网络对抗技术]-- Exp9 Web安全基础 目录: 一 . 实验要求 二 . 实验过程记录 1 . Webgoat安装 2 . SQL注入的攻击 命令注入 ...

  6. 2018-2019-2 网络对抗技术 20165329 Exp 8 Web基础

    2018-2019-2 网络对抗技术 20165329 Exp 8 Web基础 原理与实践说明 实践内容概述 基础问题回答 实践过程记录 1.Web前端:HTML 2.Web前端:javascipt ...

  7. 2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础

    2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础 基础问题回答 实践过程记录 WebGoat安装 SQL注入攻击 1.命令注入(Command Injection) ...

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

    目录 2018-2019 20165208 网络对抗 Exp8 Web基础 实验内容 基础问题回答 实践过程记录 1. Apache准备 2. Web前端HTML 3. Web前端javascipt ...

  9. 2018-2019-2 网络对抗技术 20165322 Exp8 Web基础

    2018-2019-2 网络对抗技术 20165322 Exp8 Web基础 目录 实验原理 实验内容与步骤 Web前端HTML Web前端javascipt Web后端:MySQL基础:正常安装.启 ...

  10. 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础

    2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础 目录 实验内容与步骤 (一)Webgoat安装 (二)SQL注入攻击 1.命令注入(Command Injection ...

最新文章

  1. Ubuntu VSCode OpenCV 环境配置
  2. python使用fpdf创建pdf并写入hello world
  3. jtable如何从表格中定位_Java Swing组件编程之JTable表格用法实例详解
  4. windows下使用自带certutil工具校验文件MD5、SHA1、SHA256
  5. python实现logistic_用Python实现机器学习算法—Logistic 回归算法
  6. Paxos与zookeeper
  7. JavaScript 技术篇-js正则表达式匹配字符串左右两边是否包含空格
  8. 不建议在Docker中部署数据库
  9. 考oracle ocm,Oracle数据库OCM考试系列教程与总结_OCM考试实验笔记
  10. 零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下)
  11. 文件对比工具Beyond Compare的使用(入门)
  12. Linux : 文件处理命令
  13. 苹果电脑 默认安装jdk位置_收藏起来你一定用的上!JDK的安装和配置
  14. 中upload依赖包_upload-labs writeup
  15. 大数据全球战略布局全面升级
  16. Window2003 IIS+MySQL+PHP+Zend环境配置
  17. 工程思想——继电器特性抖动处理
  18. Redis实现MongoDB的getlasterror功能
  19. 英语语法成分:主谓宾定状补
  20. 成都盛铭轩:商品质量分怎么提升

热门文章

  1. 仿Android6.0联系人列表
  2. Apache Spark源码走读(十)ShuffleMapTask计算结果的保存与读取 WEB UI和Metrics初始化及数据更新过程分析...
  3. js原生设计模式——8单例模式之简约版属性样式方法库
  4. jQuery具体实例介绍什么时候用ajax,ajax应该在什么地方使用
  5. 浅谈:如何加快本本的开机时间
  6. 通达OA办公系统的短信服务器(CDMA)
  7. 功能增强的进度条控件(源码)
  8. mysql连接教程_MySQL 连接
  9. Redis多线程执行 -- 过程分析
  10. ZMQ源码阅读 ---- zmq创建线程的过程