• 20155311《网络对抗》Web基础


    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和计算机的各种信息,正所谓知己知彼,百战不殆,只有了解对手才能”对症下药“。另外也让我们清晰的感受到网络信息时代无隐私,我们随便连个网,自己的位置、信息都会暴露,当然科学技术本无善恶好坏,就看我们如何对其进行规范和使用

  • 相关阅读:
    AM335x kernel 4.4.12 i2c eeprom AT24c02驱动移植
    AM335x tscadc platform driver 相关代码跟踪
    Linux kernel make 常用选项介绍
    Linux kernel 文件夹说明
    shell 脚本之获取命令输出字符串以及函数参数传递
    Treeview控件如何获得子节点的所有父节点的名称
    浅谈Delphi高效使用TreeView
    Delphi下Treeview控件基于节点编号的访问
    delphi中TTreeView的使用方法
    学习 TTreeView [2]
  • 原文地址:https://www.cnblogs.com/gaoziyun11/p/9047994.html
Copyright © 2020-2023  润新知