博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20145302张薇 《网络对抗技术》 web基础
阅读量:5213 次
发布时间:2019-06-14

本文共 3331 字,大约阅读时间需要 11 分钟。

20145302张薇 《网络对抗》 web基础

实验问题回答

1.什么是表单

  • 表单在网页中主要负责数据采集功能:一般网页上需要用户输入、选择的地方都会用到表单
  • 表单标签:即,用于确定表单所控制的范围
  • 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等
  • 表单按钮:包括提交按钮、复位按钮和一般按钮
  • 因为表单可以从用户那里获取信息,所以DOM可以连接表单来使用获取的信息

2.浏览器可以解析运行什么语言

  • 超文本标记语言:HTML
  • 可扩展标记语言:XML
  • 脚本语言:JavaScript、Python等

3.WebServer支持哪些动态语言

  • JSP脚本语言、php语言、ASP脚本语言、java语言等

实验总结与体会

  • 写前端一遍遍改代码,最终出来页面,虽然是很简单的代码,但是还是有满足感的
  • 就是一直盯着电脑看,眼睛快要失明

实践过程记录

kali的IP:192.168.239.131

1.Web前端HTML

1.环境配置

  • 检查80端口有没有被占用:netstat -aptn | grep 80
  • 杀死占用的进程:kill 1086
  • 打开apache2:service apache2 start
  • 检测apache有没有正常工作
  • 因为IP变了,所以又做了一遍SET,捕获用户名与口令

    884662-20170507171102929-990648205.jpg

  • 在kali的浏览器里输入:localhost:80也可以确认apache有没有正常运行

    884662-20170507171125304-57728412.png

2.编写网页

  • 访问Apache工作目录:cd /var/www/html
  • 新建html文件并编辑:test.html
  • 编写一个登陆界面,肯定会用到表单的
  • 保存后在浏览器访问:localhost:80/test.html

    884662-20170507171151804-1181519283.jpg
    884662-20170507171217726-1350299959.png

  • 此时输入用户名密码登陆后页面跳转到我们设置的action:logok.html页面,因为这个页面还没有被创建,所以出错:

    884662-20170507171242773-921483047.png

  • 而且在链接地址那里我们没有捕捉到输入的用户名与密码,很明显我使用的是POST方法

3.php测试

  • 编写一个用于test.html动作跳转的页面:test.php(html的action也更变为test.php)
    884662-20170507171255882-245435480.png

2.Web前端javascipt

  • DOM就是文档对象模型,网上好多人说可以把这个看作一个节点
  • 我认为使用DOM是用来实现网页与服务器的动态交互的

1.投票

  • 使用javascipt编写一波用于投票的网页

    884662-20170507171315632-209612310.jpg

  • 该功能是:投票页面选择了几个选项都可以在下方显示出来,网页效果如下:

    884662-20170507171322726-123126154.png

  • 投票成功了:

    884662-20170507171835726-1439319161.png

2.验证用户名与密码

  • 用户名长度不能小于4个字符与密码不能为空:

3.Web后端MySQL基础

1.mysql数据库基础使用

  • 开启sql服务:/etc/init.d/mysql start
  • 使用root身份登陆:mysql -u root –p
  • 输入密码,默认为p@ssw0rd,随后进入mysql

    884662-20170507171845007-46868843.jpg

  • 使用:show databases;可以查看数据库里库表的基本信息

    884662-20170507171903586-1015616146.jpg

2.修改密码

- use mysql;                   选择mysql数据库- select user, password, host from user;     查看mysql库中的user表,表中存储着用户名、密码与权限- UPDATE user SET password=PASSWORD("5302") WHERE user='root';               更换密码为5302- 输入flush privileges;     更新权限- quit                     退出

884662-20170507171913429-108149416.jpg

  • 再次登陆输入新密码,成功登陆

3.Mysql中建库建表

- CREATE SCHEMA `5302_log`;                 建名为5302_log的库- CREATE TABLE `5302_log`.`users` (         表名为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 '');

884662-20170507171930976-1033248800.jpg

4.添加用户

  • use 5302_log
  • 添加用户名与密码均为5302的用户:insert into users(userid,username,password,enabled) values(1,'5302',password("5302"),"TRUE");
    884662-20170507171951101-1499915498.jpg

4.Web后端数据库身份认证

1.登陆基础编写

  • 在/var/www/html文件夹下编写5302_login.html登陆界面
  • 并编写跳转界面5302_login.php
  • 登陆成功界面:

    884662-20170507181704039-625373144.png

  • 登陆失败界面:

    884662-20170507181714414-540143604.png

2.界面美化

  • 刚刚那个php界面太简陋了,可以对php代码进行修改
  • 登陆成功中加入一行header("Refresh:2;url=5302_logok.html");就可以在2秒后跳转到5302_logok.html界面

    884662-20170507181755164-1278097905.png

  • 登陆失败中加入一行header("Refresh:2;url=5302_logno.html");就可以在2秒后跳转到5302_logno.html界面

    884662-20170507181808164-805384711.png

5.简单SQL注入

1.永真式

  • 在用户名输入框中输入' or 1=1#,密码随便输入,就可以登陆成功
    884662-20170507181818070-1712191617.png

2.sql语句注入

  • 在用户名输入框中输入:';insert into users(userid,username,password,enabled) values(666,'53attack',password("02ok"),"TRUE");#,将用户名为53attack、密码为02ok的用户注入users表中

    884662-20170507181830601-239755903.png

  • 但是跳转到了一个空白界面

    884662-20170507181955726-1972523061.png

  • 一直登陆不成功是因为if ($result = $mysqli->query($query_str))这条语句不允许多条执行,即php防范SQL攻击的措施,改为if ($result = $mysqli->multiy_query($query_str))即可
  • 我们在库表中查询一下,注入成功没有:

    884662-20170507182018695-1671539632.png

  • 出现了53attack这个用户,下面登陆成功:

    884662-20170507182028992-807447412.png
    884662-20170507182038336-1077172028.png

6.XSS攻击测试

1.DOM—based XSS

  • 在用户名输入框中输入:<img src="5302.jpg" />once</a>后登陆
  • 登陆失败,但是会显示那个图片:
    884662-20170507182112351-812274976.png
  • 一直是这个图片破损界面,我试了8万张图,改了八万遍代码,终于成功了,眼睛都快瞎了
    884662-20170507191102664-1803044777.png
  • by the way,我输入的是:<img src="eUtpwVaG.jpeg" />20145302</a>
  • 我还试了给图片链接的做法,但是也是无法正常显示出图片……但是貌似图片这个大家都是一次成功啊,为何我这里这么艰难,好奇怪啊,是图片格式的问题?还是大小问题?
  • 再尝试一波短一点的动态影像:
  • 成功了 > <
    884662-20170507200952476-713042257.jpg
    884662-20170507201010836-513576329.jpg

2.弹窗

  • 在用户名输入框中输入:<Script Language="JavaScript"> alert("20145302感到害怕"); </Script>后点击登陆,出现弹框:

    884662-20170507195833554-1292750070.png

  • 当然随后是登陆失败的界面

6.2网页编写尝试

  • 上面注入的图片显示不了,图片来源是我从网上下载到主机,再从主机复制到kali,而注入成功的图片是以前我直接用kali截的图,尝试编写带有图片的网页:

    884662-20170507231806789-331399174.png

  • 也是根本就不显示图片啊!而且直接把jpg改为jpeg是没用的
  • 试着直接在kali把图片下载下来:

    884662-20170507231817257-390732132.png

  • 哇,成功显示了,是图片源格式的问题吗?

7.会话管理

1.保存登录信息

  • 只要用户登陆成功过,进入登陆页面都会显示已登陆
    884662-20170508001118086-737995297.png
    884662-20170508001126679-1203905094.png

2.发帖

  • 帖子写在data.txt中,也可以读取
    884662-20170508001136507-991116397.png
    884662-20170508001147961-415560291.png
    884662-20170508001201148-539084124.png
    884662-20170508001211289-1182203357.png

转载于:https://www.cnblogs.com/5302v/p/6818145.html

你可能感兴趣的文章
刻意练习,逃离舒适区:怎么样成为一个高手
查看>>
limits.conf文件修改注意事项,限制文件描述符数和进程数
查看>>
WS调用的时候报错
查看>>
linux 命令大全
查看>>
命令模式
查看>>
897.Increasing Order Search Tree
查看>>
HTMLDiary
查看>>
2.JVM的参数配置
查看>>
iOS下获取用户当前位置的信息
查看>>
Ubuntu中安装(升级)GraphicsMagick
查看>>
防火墙
查看>>
css3动画animation
查看>>
eclipse安装wtp
查看>>
(转)C#中属性PropertyInfo的使用,Dictionary转为Model实例
查看>>
2017NOIP游记
查看>>
学习yii2.0框架阅读代码(二)
查看>>
Windows Apache2.4 配置https/SSL
查看>>
PHP常用魔术方法(__call魔术方法:)
查看>>
vue 工作学习总结
查看>>
REST总结
查看>>