20145326蔡馨熤《网络对抗》—— Web基础
20145326蔡馨熤《网络对抗》—— Web基础
1.实验后回答问题
(1)什么是表单.
- 表单是一个包含表单元素的区域,表单元素是允许用户在表单中输入信息的元素,表单在网页中主要负责数据采集功能,一个表单有三个基本组成部分:表单标签、表单域、表单按钮。
(2)浏览器可以解析运行什么语言.
- HTML(超文本标记语言)
- XML(可扩展标记语言)
- ASP、Python、PHP、JavaScript等众多脚本语言。
(3)WebServer支持哪些动态语言.
- JavaScript、ASP、PHP、Ruby等脚本语言。
2.实验总结与体会
因为之前学过Java web这门课,所以针对这次的实验还是有些基础的。不过岁月不饶人啊,还是有很多东西忘记了。幸好老师给了菜鸟教程这个网站让我们参考学习,我还是收获蛮多的。这次实验的效果还可以,满足了老师提的所有要求。不过我觉得我的前端做得太简单了,课下应该多花时间再研究研究。菜鸟教程上有很多实例,用起来也很方便,左边是代码,右边就是呈现的效果。
现在来看,真是太后悔了,之前没有选过数据库这门课,感觉很吃亏。正是由于对这部分知识的不熟,导致我在实验过程中犯了许多不应该有的错误,也因此浪费了很多时间。不过还好实验成功了,在解决问题的这个过程中,我确实蛮有收获,感触颇深。
3.实践过程记录
(1).Web前端HTML(1分)
- 通过
service apache2 start
开启Apache2服务 - 使用
netstat -aptn
查看端口占用情况,在这里apache2占用端口8080
- 测试apache是否正常工作?
- 在kali的firefox浏览器上输入
localhost:8080
- 打开的是上次实验伪装的网页
- 这里的端口号8080就是
/etc/apache2/ports.conf
下设置的Apache监听端口
- 老师推荐的菜鸟教程很有用。虽然之前学过java web这门课,但确实很多知识都忘了。很尴尬,可以跟着菜鸟教程自己学一遍,很简单。
- 访问Apache工作目录
cd /var/www/html
,新建一个html文件 - 编写一个含有表单的html
- 在文本框内输入相关信息,然后点击Submit按钮数据会传送到
html_form_action.php
的页面,由于没有对此页面进行编写,所以出现的是404页面。
(2).Web前端javascipt(1分)
- JavaScript是一种用于客户端Web开发的脚本语言,被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies。
- 文档对象模型(Document Object Model,简称DOM)是W3C组织推荐的处理可扩展标志语言的标准编程接口。
- 我们可以用JavaScript来编写一个简单的计时程序。
效果显示:
(3).Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表(1分)
开启sql服务:
/etc/init.d/mysql start
输入
mysql -u root –p
,并根据提示输入密码,默认密码为p@ssw0rd
,进入MySQL
。
- 输入
show databases;
,可以查看基本信息
- 如果觉得密码太麻烦了,可以通过如下方式更改:
- 输入
use mysql;
,选择mysql
数据库 - 输入
select user, password, host from user;
,mysql
库中的user
表中存储着用户名、密码与权限 - 输入
UPDATE user SET password=PASSWORD("新密码") WHERE user='root';
- 输入
flush privileges;
,更新权限 - 输入
quit
退出
- 输入
- 然后重新登录
- 在Mysql中建库建表,输入如下
- 然后在表中添加用户
(4).Web后端:编写PHP网页,连接数据库,进行用户认证(1分)
- 新建一个PHP测试文件。
- 用浏览器打开
localhost:8080/20145326test.php
,可以看见如下界面,测试成功
- 在/var/www/html文件夹下输入
vim login.html
,编写登录网页
- 在同样的目录下输入
vim login.php
,通过php实现对数据库的连接。
在firefox浏览器中输入
localhost:8080/login.html
,就可以访问自己的登陆页面啦。在登录页面中输入数据库中存有的用户名和密码并点击登录,登陆成功。
- 输入数据库中没有的就会认证失败。
(5).最简单的SQL注入,XSS攻击测试(1分)
SQL注入
许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站和访问该网站的用户都带来巨大危害。
构造SQL语句:在用户名输入框中输入
' or 1=1#
,密码随便乱输,这时候的合成后的SQL查询语句为select * from users where username='' or 1=1#' and password=md5('')
因为1=1永远都是成立的,即where后的条件总是为真,所以能够成功登录。
- 还可以通过SQL注入将用户名和密码保存在数据库中。
输入
';insert into users(userid,username,password,enabled) values(666,'aaa',password("aaa"),"TRUE");#
但是页面跳转后,居然是空白页。
百度了一下才知道,是php代码中的判断语句的问题,它不允许多条执行,我们可以使用
$result = $mysqli->multi_query($query_str)
实现多条SQL语句。现在再试试看。
居然失败了,为什么啊???
为了检验语句是否执行成功,我直接进入数据库中查找,显然注入是没有问题的。
- 后来仔细想想,应该是
$result->num_rows>0
这行代码,在我把query
改为multi_query
的时候出现了问题。 - 所以立马进行改进。Bingo~ 成功!
最简单的XSS攻击测试
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。
- 输入
<img src="5326.jpg" /></a>
先进行简单的测试。
- 点击登录就会出现图片5326.jpg的超链接。
(6).发帖和会话管理的实现
- 我们可以利用PHP实现会话管理,这部分实践可以详细参考ltc同学的博客与代码。
- 将代码依旧放在/var/www/html目录下,在浏览器中输入http://localhost:8080/5326logIn.php,进行登录:
- 登录成功后如图所示:
- 点击start a new post!进行发帖:
- 提交之后,又跳转到如下界面。在这里我们可以选择查看发过的帖子、继续发帖、返回或者退出登录:
- 我在这个时候点击了CHECK,查看之前发过的帖子,但是跳转页面后,什么内容都没有。
- 后来与高其同学进行讨论,最后得出原因。
- 这应该是权限问题吧,因为这个操作呢,是通过data.txt文件,从中读取之前发帖的记录的,但是在/var/www/html目录下根本没有找到这个文件。所以先新建该文件,然后再赋予可操作的最高权限。
- 命令为:touch data.txt和chmod 777 data.txt。
- 再次点击CHECK,显示了会话记录。
20145326蔡馨熤《网络对抗》—— Web基础的更多相关文章
- 20145326蔡馨熤《网络对抗》—— Web安全基础实践
20145326蔡馨熤<网络对抗>—— Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御. 原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程 ...
- 20145326蔡馨熤《网络对抗》——MSF基础应用
20145326蔡馨熤<网络对抗>——MSF基础应用 实验后回答问题 用自己的话解释什么是exploit,payload,encode. exploit:起运输的作用,将数据传输到对方主机 ...
- 网络对抗——web基础
网络对抗--web基础 实践内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 (4)Web ...
- 20145326蔡馨熠《网络对抗》shellcode注入&Return-to-libc攻击深入
20145326蔡馨熠<网络对抗>shellcode注入&Return-to-libc攻击深入 准备一段shellcode 首先我们应该知道,到底什么是shellcode.经过上网 ...
- 20145208 蔡野 《网络对抗》Exp9 web安全基础实践
20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...
- 20145208 蔡野 《网络对抗》Exp8 Web基础
20145208 蔡野 <网络对抗>Exp8 Web基础 本实践的具体要求有: (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POS ...
- 20145208 蔡野 《网络对抗》Exp5 MSF基础应用
20145208 蔡野 <网络对抗>Exp5 MSF基础应用 链接地址 主动攻击:利用ms08_067_netapi进行攻击 对浏览器攻击:MS10-002 对客户端攻击:adobe_to ...
- 20145208蔡野 《网络对抗》逆向及BOF基础实践
20145208蔡野 <网络对抗>逆向及BOF基础实践 逆向及Bof基础实践 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函 ...
- 20145208 蔡野 《网络对抗》免考项目 MSF学习
20145208 蔡野 <网络对抗>免考项目 MSF Exploit模块开发 题目:MSF Exploit模块开发 摘要 本免考项目的目标是通过对msf模块的设计语言--ruby和expl ...
随机推荐
- keras图像分类参考大神博客总结
利用keras预加载模型添加新的层来构建自己所需的模型: from keras.layers import GlobalAveragePooling2D,Dense from keras.applic ...
- KMP模板(bin)
KMP模板 主要是kuangbin的模板,之后加了一点我的习惯和理解. kmpN() 作用:构造next数组 参数:模式串,模式串长度 kmpC() 作用:返回模式串在主串中出现的次数(可重复) 参数 ...
- sqoop往远程hdfs写入数据时出现Permission denied 的问题
猜测出现该问题的原因是sqoop工具用的是执行sqoop工具所用的本地用户名. 如果远程hdfs用的用户是hdfs,那么我本地还需要建一个名为hdfs的用户? 其实不需要,只要为用户增加一个环境变量就 ...
- word中加入endnote
http://jingyan.baidu.com/article/f54ae2fc3926d91e92b849c2.html 1.如果安装完endnote后,word中没有出现 endnote菜单,则 ...
- [IDE] ECLIPSE取消自动更新
eclipse自动更新的取消方法: window --> preferences --> General --> Startup and Shutdown --> 在列表中找到 ...
- DX9 DirectX鼠标控制程序 代码
代码实例1: // @time: 2012.3.26 // @author: jadeshu // des: DirectX鼠标控制程序 #include <Windows.h> #inc ...
- Yii2 Restful api设计--App接口编程
Yii2框架写一套RESTful风格的API,对照魏曦教你学 一,入门 一.目录结构 实现一个简单地RESTful API只需用到三个文件.目录如下: frontend ├─ config │ └ m ...
- 如何重置Sitecore CMS中的管理员密码
在Sitecore项目上工作时,有时管理员凭据会丢失或损坏.在这些情况下,重新获得快速访问权限以便不中断开发非常重要. 对Core数据库运行以下查询,您将能够admin/b再次使用以下命令登录Site ...
- 20155228 2017-5-10 课堂测试:MySort
20155228 2017-5-10 课堂测试:MySort 题目和要求 模拟实现Linux下Sort-t:-k2的功能.参考Sort的实现.提交码云链接和代码运行截图. import java.ut ...
- STL容器之list
[1]list简介 实质上,list容器就是一个双向链表,可以高效地进行插入.删除操作. [2]list链表常用方法 (1)构造.赋值.清空.删除.插入.判空等 应用示例代码如下: #include ...