20155311《网络对抗》Web基础

实验过程

Web前端:HTML

  • 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kill 原进程号(由于我上周虚拟机挂起没有关闭所以只是演示杀死了80进程,重新打开了Apache),如果空闲就用apachectl start开启Apache,然后再次用netstat -aptn查看端口占用情况。

  • 在kali的火狐浏览器上输入localhost:80测试apache是否正常工作(我的虚拟机正常显示上次实验设定的钓鱼网站google网页)。

  • 进入Apache工作目录/var/www/html,新建一个gzy001.html文件,编写一个含有表单能实现输入用户名、密码实现登录的html。

  • 打开浏览器访问localhost:80/gzy001.html,出现刚才编写的HTML页面。

  • 点击会跳转,但是因为我还没有设置跳转页面login.php,所以会出现如下错误提示:

Web前端:javascript

  • 用JavaScript来编写一个验证用户名、密码的函数,当其为空时提示错误信息,把它和前面的qiaolei001.html合起来形成一个新的HTML网页qiaolei002.html。

  • Web后端:MySQL基础

  • 用/etc/init.d/mysql start开启sql服务。

  • 输入mysql -u root -p用账号root登录,并根据提示输入对应密码,我的MySQL默认密码就是直接回车,一直没有理解YES的意思,最后终于在直接敲回车之后进入MySQL。

  • 用show databases;查看基本信息(友情提示此命令里包括英文分号)。

  • 修改MySQL的root用户密码可以进行如下步骤

  • 用use mysql;,选择mysql数据库。

    用select user, password, host from user;,查看mysql库中的user表中存储着用户名、密码与权限。

  • 输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';更改密码。

    用flush privileges;进行更新。

  • 重新登录验证密码更改成功

  • MySQL建表建库

    CREATE SCHEMA库表的名称; CREATE TABLE 库表的名称.users(useridINT NOT NULL COMMENT '',usernameVARCHAR(45) NULL COMMENT '',passwordVARCHAR(256) NULL COMMENT '',enabled VARCHAR(5) NULL COMMENT '', PRIMARY KEY (userid) COMMENT '');

  • 输入use 库表名使用刚建的库表。

  • 输入insert into users(userid,username,password,enabled) values(ID号,'用户id',password("用户密码"),"TRUE");添加新用户。

  • 输入show databases; ,查看新建库表的信息

PHP测试

  • 新建一个PHP测试文件vi /var/www/html/test.php,输入如下

";
?>

2.用浏览器打开localhost:80/test.php,可以看见如下界面,测试成功

PHP+MySQL实现登录网页编写

打开之前的登录页面设置编写的文件夹/var/www/html,输入vim login.php(因为我之前编写html代码已经设置了跳转页面login.php),通过PHP实现对数据库的连接

输入localhost:80/prettylogin.html访问登录页面,但是跳转依旧是login.php

在其中输入正确的用户名和密码(即自己所新建数据库表中存在的新加入的用户和密码),显示登陆成功。

在其中输入错误的用户名和密码(即新建数据库表中不存在的),显示登录失败。

最简单的SQL注入

在用户名输入框中输入' or 1=1#,密码随便输入,竟然会显示登陆成功!

这是因为,这时候' or 1=1#合成后的SQL查询语句为select * from lxmtable where username='' or 1=1#' and password=md5(''),#相当于注释符,会把后面的内容都注释掉,1=1是永真式,所以这个条件肯定恒成立,一定会登陆成功。

在用户名框中输入

';insert into users(userid,username,password,enabled) values(777,'121212',password("121212"),"TRUE");#

通过SQL注入将用户名和密码保存在数据库中,这就相当于是

SELECT * FROM users WHERE username=''; insert into users(userid,username,password,enabled) values(66,'22',password("20155305"),"TRUE");

这时数据库中已经有了新输入的这个用户和密码。

使用这个新输入的这个用户和密码在网页中登录就没有问题了。

XSS攻击测试

XSS表示Cross Site Scripting(跨站脚本攻击),通过插入恶意脚本,实现对用户浏览器的控制。

在/var/www/html目录下事先保存一个图片文件33333.jpg,然后在登录网页的用户名窗口中输入20155311

实验总结与体会

通过此次实验,使得我对信息的收集手段、方式、方法等有了一定的理解和掌握,其实形象点说就是“人肉”ip和计算机的各种信息,正所谓知己知彼,百战不殆,只有了解对手才能”对症下药“。另外也让我们清晰的感受到网络信息时代无隐私,我们随便连个网,自己的位置、信息都会暴露,当然科学技术本无善恶好坏,就看我们如何对其进行规范和使用

20155311《网络对抗》Web基础的更多相关文章

  1. 网络对抗——web基础

    网络对抗--web基础 实践内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 (4)Web ...

  2. 20145306 张文锦 网络攻防 web基础

    20145306 网络攻防 web基础 实验内容 WebServer:掌握Apache启停配置修改(如监听端口)前端编程:熟悉HTML+JavaScript.了解表单的概念编写不同的HTML网页,放入 ...

  3. 20145334赵文豪网络对抗Web安全基础实践

    1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...

  4. 20155311《网络对抗》Web安全基础实践

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

  5. 20155324《网络对抗技术》web安全基础实践

    20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在 ...

  6. 20155324王鸣宇 《网络对抗技术》Web基础

    20155324王鸣宇 <网络对抗技术>Web基础 实践要求 ①Web前端HTML: 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HT ...

  7. 2017-2018-2 20155228 《网络对抗技术》 实验九:Web安全基础

    2017-2018-2 20155228 <网络对抗技术> 实验九:Web安全基础 1. 实践内容 1.1 标理解常用网络攻击技术的基本原理 1.2 在Webgoat实验环境下实践相关实验 ...

  8. 2017-2018-2 20155228 《网络对抗技术》 实验八:Web基础

    2017-2018-2 20155228 <网络对抗技术> 实验八:Web基础 1. 实践内容 1.1 Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET ...

  9. 20155208徐子涵《网络对抗》Exp9 Web安全基础

    20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...

随机推荐

  1. JSP内置对象——response对象

    看一个实例: 运行结果: 出现了一个很奇怪的现象,这个outer对象输出的字符串,跑到顶部去了.这个呢也就说明了response对象获得的writer对象的输出总是前于我们的内置对象.(respons ...

  2. Android 2018最新的三方库

    文章出处https://blog.csdn.net/qq_32368129/article/details/78749880 1.MaterialStepperView 它是用Material Des ...

  3. Android应用程序启动过程(一)总结

    一.App启动方式 1,冷启动 冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用. 冷启动的特点:因为系统会重新创建一个新的进程分配给它,所以会创建和初始化App ...

  4. 2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础

    ---layout: posttitle: 2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础key: 20180203tags: 机器学习 ML IRIS python3mo ...

  5. .NET泛型中的协变与逆变

    泛型的可变性:协变性和逆变性 实质上,可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用. 我们已经习惯了普通继承中的可变性:例如,若某方法声明返回类型为Stream,在实现时可以返回一个M ...

  6. [Visual Studio] [Config] [Transformation] [SlowCheetah] 在非Web工程中使用Transformation

    1. 为VS安装SlowCheetah插件 https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.Sl ...

  7. 检测到在集成的托管管道模式下不适用的 ASP.NET 设置

    system.webServer节点下加上 <validation  validateIntegratedModeConfiguration="false" />

  8. C# 生成随机订单号

    //生成固定位数的随机数 //ran.Next(999)生成的是1-999的随机数,不能保证位数是固定的. public static string GenerateOrderNo()        ...

  9. jsencrypt加密

    在登录时,前台页面的用户名.密码都是明文传输到后台的,漏洞扫描认为这样子不安全,就想到了前台js加密,后台解密的方法,要用到jsencrypt.js,具体代码如下: 前台页面: <!DOCTYP ...

  10. SDN2017 期末作业验收

    GIT仓库:GITHUB 负载均衡程序 拓扑如图 目的 实现一个负载均衡的北向程序: 服务器host 2 ,host 3,host 4上各自有不同的服务,host 1是客户端 当host 2,host ...