20155305《网络对抗》Web基础
20155305《网络对抗》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
,新建一个qiaolei001.html
文件,编写一个含有表单能实现输入用户名、密码实现登录的html。
打开浏览器访问localhost:80/qiaolei001.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` (
`userid` INT NOT NULL COMMENT '',
`username` VARCHAR(45) NULL COMMENT '',
`password` VARCHAR(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
,输入如下
<?php
echo ($_GET["A"]);
include($_GET["A"]);
echo "php page 5305!<br>";
?>
2.用浏览器打开localhost:80/test.php,可以看见如下界面,测试成功
PHP+MySQL实现登录网页编写
打开之前的登录页面设置编写的文件夹/var/www/html
,输入vim login.php
(因为我之前编写html代码已经设置了跳转页面login.php),通过PHP实现对数据库的连接
看到了一个学长很美的登录页面模板,于是就用了新的登录html,输入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(66,'22',password("20155305"),"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
目录下事先保存一个图片文件222222.jpg
,然后在登录网页的用户名窗口中输入<img src="222222.jpg" />20155305</a>
- 这时候我的虚拟机出现了意外,图片没有显示,点击view image提示forbidden禁止访问权限不够
- 我百度了好久,先进行了apache2的权限更改,在
/etc/apache2/apache2.conf
里把denied
更改为granted
,然而没有用,也就是说不是apache权限的问题导致我无法访问该文件夹下的图片
- 后来我就猜测可能是我电脑本身的权限不能让我访问这个文件夹下的图片,先尝试了一种提高权限的方法没有用
- 再尝试一种提权方式,
chmod 777
授予任何人读,写,运行的权限,终于功夫不负有心人,图片顺利显示了
实验总结与体会
前期很多之前刘念老师的课程有很多涉猎,所以做起来感觉不是特别卡顿,一开始也是自己敲网页html代码,虽然确实low但毕竟都是自己敲出来的html,自己敲出来的JavaScript,运行出来的时候还是很开心的,后来看到一个学长代码里有更加美观的html,于是就进行了学习和更改,PHP部分其实挺难的,毕竟注入攻击需要更改代码里的很多内容,因为可以借鉴学长的很多代码这就节省了很多的时间,并且也学到了很多。最后遇到了一个竟然是世纪难题一样的东西,其实是我一开始把他想复杂了,直接就想到了apache2的权限,对apache的配置文件apache2.conf
一顿更改,也一直在关了apache再重启apache去尝试
快要放弃了准备了这张截图表示自己实在解决不了这个问题,忙活了一下午,最后才灵光一闪,想到了电脑本身的权限问题,终于是解决了这可能其实根本就不难的问题,不轻言放弃才是真道理。实验磕磕绊绊很正常,但是在解决这些问题的过程中我们不仅学到了知识还明白了许多人生的道理。仅以下图作为本博客结尾
20155305《网络对抗》Web基础的更多相关文章
- 网络对抗——web基础
网络对抗--web基础 实践内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 (4)Web ...
- 20145306 张文锦 网络攻防 web基础
20145306 网络攻防 web基础 实验内容 WebServer:掌握Apache启停配置修改(如监听端口)前端编程:熟悉HTML+JavaScript.了解表单的概念编写不同的HTML网页,放入 ...
- 20145334赵文豪网络对抗Web安全基础实践
1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...
- 20155305《网络对抗》Web安全基础实践
20155305<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...
- 20155307实验八 《网络对抗》 Web基础
20155307实验八 <网络对抗> Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用 ...
- 20155311《网络对抗》Web基础
20155311<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...
- 20155324《网络对抗技术》web安全基础实践
20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在 ...
- 20155324王鸣宇 《网络对抗技术》Web基础
20155324王鸣宇 <网络对抗技术>Web基础 实践要求 ①Web前端HTML: 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HT ...
- 2017-2018-2 20155228 《网络对抗技术》 实验九:Web安全基础
2017-2018-2 20155228 <网络对抗技术> 实验九:Web安全基础 1. 实践内容 1.1 标理解常用网络攻击技术的基本原理 1.2 在Webgoat实验环境下实践相关实验 ...
随机推荐
- Expo大作战(五)--expo中app.json 文件的配置信息
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- [Ubuntu] 解决 ubuntu 升级时 /boot 空间不足
经常升级Linux内核,导致更新时警告/boot分区空间不足.这是以为多次升级内核后,导致内核版本太多,清理一下没用的内核文件就行了. 原文地址请保留http://www.cnblogs.com/ro ...
- Oracle EBS OPM convert dtl reservation
--convert_dtl_reservation --created by jenrry DECLARE l_reservation_rec mtl_reservations%ROWTYPE; l_ ...
- Oracle EBS OM 发放订单
DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...
- WebBrowser实现:自动填充网页上的用户名和密码并点击登录按钮
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { ...
- Difference between HashMap and Hashtable | HashMap Vs Hashtable
Both the HashMap and Hashtable implement the interface java.util.Map but there are some slight diffe ...
- Qt在控件未显示时如何获取正确的控件尺寸
因为打算全屏显示一个对话框,而对话框内有几个QLabel的尺寸要在确定QLabel可用的最大尺寸后,再根据内容调整一次,所以在对话框构造函数内就想确定QLabel的最大尺寸,但因为QWidget::u ...
- fedora安装视频播放器
添加RPMFusion仓库后才能安装VLC.Mplayer,其他库中没有 直接 sudo dnf install vlc sudo dnf install mplayer
- 2.2Python基础语法(二)之运算符
返回总目录 目录: 1.Python运算符的分类 2.算数运算符 3.复合运算符 4.比较运算符 5.逻辑运算符 (一)Python运算符的分类: (二)算数运算符: 注意下面三种算数符号: 1.** ...
- 用JS制作《飞机大作战》游戏_第4讲(创建敌方飞机、敌方飞机发射子弹、玩家子弹击中敌方小飞机,小飞机死亡)-陈远波
一.创建敌方飞机 1.思考创建思路: 创建敌方飞机思路与创建玩家飞机思路一样: (1)思考敌方飞机具备什么属性: 敌方飞机的图片.坐标.飞行速度.状态(是否被击中) 设置小飞机被击中时消失时间.飞机可 ...