20154324 刘康权 Exp 8 Web基础

2023-10-15 11:50

本文主要是介绍20154324 刘康权 Exp 8 Web基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、实践目标与内容

  1. Web前端HTML
  • 能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
  1. Web前端javascipt
  • 理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。
  1. Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
  2. Web后端:编写PHP网页,连接数据库,进行用户认证(1分)
  3. 最简单的SQL注入,XSS攻击测试(1分)
  • 功能描述:用户能登陆,登陆用户名密码保存在数据库中,登陆成功显示欢迎页面。

二、实践过程与步骤

1.Web前端HTML

1.1首先修改apache2服务的端口文件,设置端口为80端口,并开启apache2服务
1.2用lsof -i:80查看是否有进程占用80端口,如果有进程占用80端口,用kill+进程号杀死占用端口的进程
1.3用cd /var/www/html/进入文件夹,再用leafpad 20154324_2.html编写一个含有表单的html文件

1344859-20180520153204351-910742481.png

1.4首先尝试登陆http://localhost访问,but但是

1344859-20180520151915121-1030834810.png

  • 于是,开始了探索之旅,一开始我以为是一个应用占用了本地的连接,还把它卸载了,再次进行尝试,还是失败了,查询了一下,在控制面板管理工具里面查看,以为是电脑没有IIS服务 无法访问本机地址的解决办法,于是又安装了IIS服务 IIS的安装,终于成功了
    1344859-20180520152531091-333444210.png
1.5成功了后,打开编写的html文件访问http://localhost/4324_2.html/

1344859-20180520152719002-467290762.png

  • 命途多舛,还是乱码信息,于是开始进行尝试,原来是文件编码方式的问题,于是将文件另存为字符编码为UTF-8模式

1344859-20180520152936156-566344429.png

1.6再次访问,终于成功了

1344859-20180520153129988-611009704.png

2.Web前端javascipt

2.1使用JavaScript来编写一个验证用户名、密码的规则,加入之前编写的html文件里面,增加了一段javascript的代码,设置学号和密码规则都不能为空,如下:

1344859-20180520153329116-1850900154.png

2.2再次访问http://localhost/4324_2.html/,就可以看到规则生效了

1344859-20180520153504110-407548957.png

3.Web后端:MySQL基础

3.1首先开启mysql服务/etc/init.d/mysql start,并输入mysql -u root -p设置登录密码
  • 这里一定要注意,登录密码一定要设置得有特点,这个密码是独一无二的
    1344859-20180520153929798-261510045.png
3.2一开始我设置的密码就是默认密码,于是输入update user set password=PASSWORD("新的密码") where user='root';修改密码,并输入flush privileges;刷新数据
3.3使用create 20154324创建数据库,输入show databases;查看存在的数据库

1344859-20180520154545252-288932415.png

3.4用use 20154324;使用数据库,并输入create table lkq (username VARCHAR(20), password VARCHAR(30));创建表,并输入show table;查看存在的表
3.5用insert into 表名 values('lkq4324','20154324');插入数据,并输入select * from lkq查看表中的数据

1344859-20180520154704892-1588126645.png

3.6用insert into mysql.user(Host,User,Password) values(‘localhost’,'test2’,password(‘1234’));增加一个名叫test2的用户,并给予该用户权限,并用flush privileges;刷新数据,相关命令在连接里面mysql用户管理

1344859-20180520155347347-870631125.png

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

4.1进入文件夹后,再用leafpad test.php编写一个php文件,编写相关规则连接test2用户的数据库
  • 因为这里是GET["password]等,所以html中method改成了GET,并且将html代码中form的action属性由#改成test.php

1344859-20180520160004630-682369190.png

1344859-20180520155720772-1212165770.png

4.2访问以后,输入相关信息,就可以看到编写的php文件了

1344859-20180520160226130-190801181.png
1344859-20180520160230966-973500819.png

5. 最简单的SQL注入,XSS攻击测试

5.1 SQL注入,用户名输入框中输入' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为select * from info where usrname='' or 1=1#' and password='' and type='',#相当于注释符,会把后面的内容都注释掉,而1=1是永真式,条件肯定恒成立,所以能够成功登陆

1344859-20180520160505211-788272442.png

5.2 还是SQL注入,在用户输入框中输入';insert into lkq values('admin','123');#就可以在表中增加一条数据了,原因是分隔符后的#把后面的内容注释掉了,所以执行的其实是insert into lkq values('admin','123');,登录以后就会发现增加一条数据了
  • 注意:首先因为要使用多条sql语句进行攻击,所以要将if ($result = $mysqli->query($query_str))中的query()改为multi_query($query_str),其次,因为之前设置的HTML中定义的默认长度不够长,放不下注入的攻击语句
    1344859-20180520161646759-531204016.png
    1344859-20180520162321012-836568473.png
5.3进行XSS攻击,在用户名输入<img src="123.jpg">,密码随意,预想结果是显示出图片,但是

1344859-20180520163514980-970932085.png

5.4进行查询后,原来是图片权限不够的问题,使用chmod 755 123.jpg赋予图片足够权限,就成功啦

1344859-20180520163553900-381776644.png

三、基础问题回答

(1)什么是表单

  • HTML 表单用于搜集不同类型的用户输入。表单是一个包含表单元素的区域。
    表单元素是允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素。
    表单使用表单标签()定义。

(2)浏览器可以解析运行什么语言。

  • 浏览器可以解析运行HTML、XML,javascript等脚本语言,对于JS脚本,会调用JS脚本引擎来处理,浏览器本身不处理程序代码。

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

  • Javascript、PHP、Ruby等脚本语言

四、心得体会

  • 通过这次实验,较为快速、系统地学习了一下Web的前端和后端,并将两者结合在一起使用,这次实验可以说和我们的互联网活动息息相关,每天我们访问的每一个网页都是一段代码,我们还针对代码的漏洞进行了攻击(虽然现在绝大多数网站都能阻止),理解了代码的含义,我觉得是非常有意义的。

转载于:https://www.cnblogs.com/liukangquan/p/9063846.html

这篇关于20154324 刘康权 Exp 8 Web基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/217521

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除