zoukankan      html  css  js  c++  java
  • 20155331《网路对抗》Exp8 WEB基础实践

    20155331《网路对抗》Exp8 WEB基础实践

    基础问题回答

    什么是表单

    表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签,这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。表单域,包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。表单按钮,包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作

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

    浏览器可以解析运行HTML、XML,javascript等脚本语言,对于JS脚本,会调用JS脚本引擎来处理

    WebServer支持哪些动态语言

    比较常用的有ASP语言,PHP语言和JSP语言,比如JavaScript、JSP、PHP等。

    实验体会

    这次的实验感觉比以前的都要困难的多,特别是我自己的编程能力也不是特别的好,代码变成了一个很大的问题。不过,虽然说实验过程比较的辛苦,但结果而言还是比较满意的,辛苦很长时间做出来了预期的效果,还是很有成就感的。

    实验过程

    1.Web前端HTML

    输入命令sudo apt-get install apache2进行安装

    输入命令apachectl start启动apahce

    打开失败

    于是查看了端口占用的情况,并且杀死了端口,然后再次尝试打开。

    打开成功。

    浏览器中输入localhost:80,可以看见我们的Apache是在正常工作的。

    使用cd /var/www/html进入Apache目录下,新建一个简单的含有表单的html文件

    在浏览器打开:

    2.Web前端:javascipt

    在原有5331.html基础上,可以添加一段JavaScript代码,以完成对用户是否填写邮箱和密码的判断。l如下:

    3.MySQL基础

    输入/etc/init.d/mysql start开启MySQL服务:

    输入mysql -u root -p使用root权限进入,

    用show databases;查看基本信息:

    现在来修改密码

    输入以下命令修改密码

    use mysql;

    select user, password, host from user;

    UPDATE user SET password=PASSWORD("20155331") WHERE user='root';

    flush privileges;

    quit

    然后重新登录mysql

    创建数据库和新表:

    create database dzdd;

    use dzdd;

    使用create table dzddtable;建立数据表;使用show tables;查看存在的数据表:
    create table dzddtable (userid VARCHAR(100),username VARCHAR(45),password VARCHAR(256),enabled VARCHAR(5))

    在表中添加内容:
    insert into dzddtable values('dzdd','5331');

    有了数据表就往里面写数据,再查一下看存进去了没有。

    Web后端:PHP网页

    PHP是一种通用开源脚本语言。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

    新建一个PHP测试文件vi /var/www/html/dzdd.php测试文件

    从浏览器中直接打开localhost:80/dzdd.php,

    可以看见测试成功

    PHP+MySQL实现登录网页编写

    在/var/www/html文件夹下输入vim dzdd.html,编写登录网页

    将之前编的登录网页的5331.html代码中form的action属性由#改成dzdd.php,即登录后跳转到HGY.php,再在浏览器中输入localhost:80/5331.html访问自己的登录页面

    SQL注入

    在用户名输入框中输入' or 1=1#,密码输什么都会成功登陆,原因是这时候的合成后的SQL查询语句为select * from users where username='' or 1=1#' and password=md5(''),#相当于注释符,会把后面的内容都注释掉,而1=1是永真式,所以这个条件肯定恒成立,所以能够成功登陆:

    先在PHP中改语句if ($result = $mysqli->query($query_str))为if ($result = $mysqli->multi_query($query_str)),然后在用户名框中输入';insert into users valu('7','15331','20155331',"TRUE");#在数据库中可以直接插入一个伪造的用户名,密码,下次就可以用伪造的用户名密码登录网站了(登录前将if ($result = $mysqli->query($query_str))语句改回来)。

  • 相关阅读:
    Tomcat vs Jetty vs Undertow性能对比
    实例对象( instance)、类对象(class)、元类对象(meta-class)的内部结构分析
    isa和superclass
    iOS-weak关键字使用场景
    iOS-weak和assign区别,copy和strong的区别和应用
    iOS-class修饰符的解释及用法
    iOS-atomic修饰符原理剖析讲解 (你将会了解到什么是优先级翻转、自旋锁、互斥锁)
    @property修饰符种类
    @property、@synthesize 、@dynamic的应用
    【原创】Kafka Consumer多线程消费
  • 原文地址:https://www.cnblogs.com/dd1174751354/p/9074675.html
Copyright © 2011-2022 走看看