20145224陈颢文 《网络攻防》Web基础

基础问题回答

什么是表单:

  • 表单是一个包含表单元素的区域。表单元素是允许用户在表单中输入信息的元素。表单在网页中主要负责数据采集功能。

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

  • 超文本标记语言:HTML;
  • 可扩展标记语言:XML;
  • 脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等。

WebServer支持哪些动态语言:

  • 比较常用的有ASP语言,PHP语言和JSP语言。

实验总结与体会

知识是用来提高自己能力的,不是单纯的用来应付考试,不能考了就忘,这样不好。想这次实验的内容就是上学期的课程内容,但我都忘得差不多了,好在还有点基础,学起来也快。

实践过程记录

Apache环境配置

  • 使用apachectl start指令开启apach服务;
  • 使用netstat -aptn指令查看apache端口号(一般为80或8080);

  • 在浏览器中输入localhost:端口号,若跳转至如下界面则apache启动成功:



    在页面中我们可以看到apache的工作目录为cd /var/www/html

编写简单网页

  • 在终端里进入到apache的工作目录下cd /var/www/html
  • 新建一个.html文件;【上学期的基础,在这就不展示代码了】
  • 打开浏览器访问localhost:80/文件名.html,成功跳转到自己刚刚写好的网页:

javascript

  • 下面是一个用户名和密码不能为空的用例:
<script>
function nameText(){
var name= document.getElementByIdx_x ("username");
var divID= document.getElementByIdx_x ("divName");
divID.innerHTML="";
if(name.value==""){
divID.innerHTML="用户名不能为空";
return false;
}
}
function passText(){
var pass= document.getElementByIdx_x ("password");
var divIP= document.getElementByIdx_x ("divPass");
divIP.innerHTML="";
if(pass.value==""){
divIP.innerHTML="密码不能为空";
return false;
}
}
}
</script>

PHP

  • 新建一个PHP测试文件test.php,代码如下:
<?php
echo ($_GET["A"]); include($_GET["A"]); echo "php page test!<br>";
?>
  • 用浏览器打开localhost:80/test.pgp,可以看见如下界面,测试成功:

MySQL

  • 在终端输入/etc/init.d/mysql start启用MySQL;

  • 输入mysql -u root进去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(1,'用户id',password("用户密码"),"TRUE");

php+mysql网页编写

  • /var/www/html路径下编写登录网页login.html,代码如下:
<html>
<body>
<div id="login">
<title>login</title>
<h1>Welcome</h1>
<form name='form' class="form" method='get' action='login.php' >
<input type="text" required="required" placeholder="username" name='username'><br>
<input type="password" required="required" placeholder="password" name='password'><br>
<button class="but" type='submit'>Login</button>
</form>
</div>
</body>
</html>
  • 在同样的目录编写login.php,代码如下:
<?php
$uname=$_GET['username'];
$pwd=$_GET['password'];
echo $uname; $query_str="SELECT * FROM users WHERE username='{$uname}' and password=password('{$pwd}');";
$str="SELECT * FROM users WHERE username='{$uname}' and password=password('{$pwd}');"; $mysqli = new mysqli("127.0.0.1", "MySQL用户名", "MySQL密码", "刚刚建立的库表的表名");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
}
else echo "hehehe.<br>"; if ($result1= $mysqli->multi_query($query_str))
echo "badbadbad <br> ";
$mysqli->close(); $mysqli = new mysqli("127.0.0.1", "MySQL用户名", "MySQL密码", "刚刚建立的库表的表名");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
/* Select queries return a resultset */
if ($result = $mysqli->query($query_str)) {
if ($result->num_rows > 0 ){
echo "<br> Wellcome login Mr/Mrs:{$uname} webpage-jumping !!!!!<br> ";
header("Refresh:5;url=welcome.php");
} else {
echo "Wrong ID or Password, <br> login failed!!!! <br> " ;
}
/* free result set */
$result->close();
}
else
{ echo "EXM???";}
$mysqli->close();
?>
  • 在浏览器中输入localhost/login.html就可以访问自己的登陆页面啦:



SQL注入

  • SQL注入实际上就是利用已有的语法知识在页面中用来填写用户名密码的地方来写脚本,从而达到非法登陆等目的;
  • 在用户名输入框中输入' or 1=1#,可以强行登陆:

  • 通过SQL注入将用户名和密码保存在数据库中';insert into users(userid,username,password,enabled) values(666,'新的用户名',password("新用户的密码"),"TRUE");#
  • 然后就可以使用刚刚注入的新用户名密码登陆啦:

XSS攻击

  • XSS表示跨站脚本攻击,通过插入恶意脚本,实现对用户游览器的控制。

    具体来说假如用户提交的数据含有js代码,不做任何处理就保存到了数据库,读出来的时候这段js代码就变成了可执行的代码。一般用户提交的数据永远被认为是不安全的,在保存之前要做对应的处理。
  • 先将一张图片保存到/var/www/html目录下;
  • 在用户名处输入<img src="图片名" />haha</a>,点击登录就会出现图片5212.jpg的超链接:



    (我的图片加载失败了,很尴尬,但是从源代码上还是可以看出攻击成功的~)

《网络攻防》Web基础的更多相关文章

  1. Golang友团无闻Go语言Web基础视频教程

    教程内容:GO语言资料Golang友团无闻Go语言编程基础Golang友团无闻Go语言Web基础教程 Go语言Web基础教程列表:[Go Web基础]12Go Web 扩展学习.mp4[Go Web基 ...

  2. HT for Web基础动画介绍

    在上一篇<基于HT for Web矢量实现3D叶轮旋转>一文中,我略微提了下HT for Web基础动画的相关用法,但是讲得不深入,今天就来和大家分享下HT for Web基础动画的相关介 ...

  3. Web基础开发最核心要解决的问题

    Web基础开发要解决的问题,往往也就是那些框架出现的目的 - 要解决问题. 1. 便捷的Db操作: 2. 高效的表单处理: 3. 灵活的Url路由: 4. 合理的代码组织结构: 5. 架构延伸 缓存. ...

  4. web基础--html

    WebBasic 1.web应用体系 课程大纲 1.web基础:做网页     2.结构:         a.html             勾勒网页结构及内容         b.css     ...

  5. java web基础环境搭建

    java web基础环境包括:(1)servlet容器也即tomcat(2)jre即java程序运行环境 环境变量配置:分别下载jdk和tomcat安装包. jdk环境变量配置: 第一步:系统环境变量 ...

  6. Web基础知识和技术

    WEB是一个外延广泛的概念,不单单指网站,乌徒帮专注拥有WEB界面的网站开发,帮助初学者或已经进入开发的朋友们提供参考讨论平台,然而并不一定能将所有的WEB知识讲全讲透,只是能满足初涉者的建站需求,能 ...

  7. java web基础 --- URL重定向Filter

    java web基础 --- URL重定向Filter httpRequest.getRequestDispatcher("/helloWorld").forward(httpRe ...

  8. (0)写给Web初学者的教案-----Web基础

    0,Web基础 一.    What is the Web? Can It Eat? 很多同学可能都听说过一个名词叫做“Web”,这个词隐隐约约好像和我们上网相关.但是呢,又很难说的清楚.我们今天每位 ...

  9. web基础系列(五)---https是如何实现安全通信的

    https是如何实现安全通信的 如果有不正确的地方,还望指出! web基础系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 回顾 总结几个概念(具体描述可以看上一篇文章) 数字 ...

  10. web基础笔记整理(一)

    一.程序的分层 1.界面层: 某种类型的应用程序 a.DOS(控制台运行) b.桌面应用程序--独立安装,独立运行 c.web类型--现在流行的 单机版:电脑上要安装,程序升级之后,电脑上也要升级-- ...

随机推荐

  1. poj 3084(最小割)

    题目链接:http://poj.org/problem?id=3084 思路:题目的意思是不让入侵者进入保护的房间,至少需要锁几道门.网络流建模:设一个超级源点,源点与有入侵者的房间相连,边容量为in ...

  2. PHP和JS判断手机还是电脑访问

    当用户使用手机等移动终端访问网站时,我们可以通过程序检测用户终端类型,如果是手机用户,则引导用户访问适配手机屏幕的移动站点.本文将介绍分别使用PHP和JAVASCRIPT代码判断用户终端类型. PHP ...

  3. Django admin 的 9 个技巧

    Tip 1:Django admin 后台不限于用 Django 开发的网站 虽然 Django admin 管理界面可以非常友好的用在 Django 项目的其它部分,它同样可以很容易用于其它像传统的 ...

  4. 10招步骤保护IIS服务器安全

    问题 IIS(Internet Information Server)是黑客特别喜欢的目标.因此,对于管理IIS网页服务器的管理员来说,确保服务器安全是一件至关重要的事.IIS 4.0和IIS 5.0 ...

  5. C#操作AD及Exchange Server总结(二)

    上一节C#操作AD及Exchange Server总结(一)写了对AD的操作,新建AD用户后,通常都需要为此用户开启Exchange邮箱,接下来写如何远程操作Exchange. 三.对Exchange ...

  6. 解决----------“win10,不能打字了,已禁用IME”

    登录Windows 10系统桌面后,右键点击左下角的开始菜单图标,然后在弹出菜单中选择“计算机管理”菜单项在打开的“计算机管理”窗口中,找到左侧系统工具下的“任务计划程序”菜单项点击任务计划程序前面的 ...

  7. xmapp开启https

    在开发微信小程序的时候我们需要开启https本地测试,以下我们说明使用xmapp如何开启https访问 1. php中开启ssl 在php的配置文件中把openssl前面的注释去掉, 大概在配置文件的 ...

  8. Kubernetes初探:原理及实践应用

    总体概览 如下图所示是我初步阅读文档和源代码之后整理的总体概览,基本上可以从如下三个维度来认识Kubernetes. 操作对象 Kubernetes以RESTFul形式开放接口,用户可操作的REST对 ...

  9. phpstorm的设置

    1.编码:file encodings 2.怎么让每次新建的php文件取消开头的注释:file and code templates  ->php file 去掉那个一串代码就可以了

  10. Character Sets, Collation, Unicode :: utf8_unicode_ci vs utf8_general_ci

    w Hi, You can check and compare sort orders provided by these two collations here: http://www.collat ...