部分转载他人
一、web基础知识
1.1.1web介绍
world wide web 万维网
web1.0 个人网站、门户站点 静态页面
web2.0 微博、博客交互式页面
随之而来有一些安全问题:
用户通过浏览器访问网站,浏览器对服务器请求资源
web工作流程:
浏览器工作流程:
- web是什么?
- web发展分为哪几个阶段?
- web安全问题的发展形式?
- web的工作流程?
- 浏览器是如何工作的?
1.1.2web通信
URL统一资源定位符
http 超文本传输协议,web通信使用的协议,web基础
http请求方式:
get请求不会返回数据体
post
- http referer 如用百度搜索点击到页面和直接输入url点击连接到页面(告知服务器该请求的来源,浏览器自动加上,防止盗链,csrf漏洞)
- url是什么?
- 描述一下url的格式?
- cookie和set-cookie(服务器要求浏览器设置cookie,比如用用户名、密码登陆后服务器就给浏览器颁发cookie)
- referer作用?
- 状态码301/302(跳转状态码)和location(跳转的地址)
1.2.1HTML
语法,html dom
js动态效果,css图片
html不区分大小写
dom 文档对象模型 将文档转换为树形结构 更直观地了解页面元素,通过js可以对页面进行任意操作
- html包含哪两部分 ?head,body
- html dom结构?
1.2.2javascript
dom 连接web和编程语言 js+dom访问和操作html文档的标准方法
bom 连接浏览器和编程语言
1.2.3web服务器环境
http://phpstudy.net/phpstudy/phpStudy.zip
下载安装windows下的集成环境,这里用Apache
Apache服务
URL:协议、服务器名称、路径、文件
通过记事本打开:C:\Windows\System32\drivers\etc\hosts
添加 test.123.com(192.168.58.1)
web服务器环境搭建,通过上面的文件夹可以自定义服务器域名
在搜索栏通过手动输入就可以打开
网站根目录,将html存放在 test.123.com 下,就可以访问到了
1.2.4后端开发基础--SQL
SQL概述:
建立数据库:
SQL对大小写不敏感
数据表介绍:
打开mysql命令行 其他选项菜单--mysql工具--mysql命令行
密码默认为root
create database websecurity;(创建一个名为websecuity的数据库)
show databases;(显示已有的数据库)
use websecurity; (使用数据库时就要切换到此处)
create table teacher(
-> id int(4) not null primary key auto_increment,
-> name char(20) not null,
-> sex char(10) not null,
-> addr char(20) not null
-> ); (创建一个名为teacher的标签)
show tables;
select * from teacher; (查询表中的数据)
INSERT INTO teacher(name,sex,addr) VALUES("Lee","male","beijing"); (插入数据,id为自增的,不用我们添加)
UPDATE TEACHER SET name = 'Amily' WHERE id = 1; (更新数据,将id为1的那行name值更改)
DELETE FROM teacher WHERE name='Amily';(删除其中一行)
对数据进行筛选:
select 你要的信息 from 数据表(或多个)where 满足的条件(条件判断)
select * from teacher where addr='beijing' and sex='male';
select name teacher where addr='beijing' and sex='male';
'*'代表所有符合数据
第二行语句显示出来的就只是name的那一行
where也可用于update或delete中
对数据进行排序:
select * from teacher order by name;(对name列进行排序 ASC(升)/DESC(降)默认升序排列)
select * from teacher order by 2; 结果同上,2表示对第二列进行操作
将两个表中的数据合并:
select 你想要的信息 from 数据表1 union select 你要的信息 from 数据表2
select name from teacher union select name from student
若有两个相同项,只显示一个
想要全部显示,用union all
注释:
单行:#... (...表示注释的内容)
--(此处一个空格)...
多行 :/*...*/
常见的内置函数
database();
current_user;
load_file() 文件要再次加反斜杠,因为会忽略了转义
version()
into+outfile 写入文件
1.2.5php
超文本预处理器
用php导出、导入数据库
导出:打开mysql命令行,查看数据表是否存在
打开cmd
>D:\phpStudy\MySQL\bin\mysqldump.exe -u root -p websecurity >C:\Users\nihao\Desktop\websecurity.sql
Enter password: ****
D:\phpStudy\MySQL\bin\mysqldump.exe 直接找到文件拖拽过来即可(mysqldump为导出)
-u root 用户名
-p 密码 输入后会显示出来,所以先放着,后面会提示要输入密码
数据库名称
>存储位置 如果没有,会新建;有的话,也可以直接拖拽
导入:
drop database websecurity; (之前导出的事例中已经把websecurity导出,此处为了实验,就先删掉)
source C:\Users\nihao\Desktop\websecurity.sql
此时在文件中手动添加了以下画红线的部分
要是没有在sql文件中加入上两行,就要在mysql命令行中先输入上两行,再用source导入
1.3.1web基础知识
web前端开发语言大致介绍
web后端开发语言大致介绍
web开发语言设计大盘点
在浏览器输入url后的web流程
二、web安全基础
常见的安全问题
钓鱼
发送伪造链接邮件,骗取受害者
通过伪造网址让我们跳转到别人设置的页面,此页面可能会让我们输入自己的个人信息
- 诱惑性标题
- 仿冒真实网站
- 骗取用户账号
- 骗取用户资料
篡改
关键字
- hacked by
搜索引擎语法
- Intitle:Keyword 标题中含有关键词的网页
- Intext:Keyword 正文中含有关键词的网页
- Site:domain 在某个域名和子域名下的网页
暗链
攻破网站后植入第三方
入侵后添加链接,隐藏在网页的链接
放入暗链主要是提高在搜索引擎的排名,别人在搜索关键字时,这些暗链的网站可以排到前面
webshell
大马
小马:一句话木马
webshell主要是后门,控制的流量和正常的流量混合在一起,不易被发现
常见的web漏洞
2.1.2XSS跨站脚本
通过插入恶意脚本盗取用户信息、钓鱼、制造蠕虫等
分类:
- 存储型xss,存储在服务器中
- 反射型xss,从url中触发xss脚本
- DOM型xss,通过前端JavaScript将脚本写到dom中触发,通过后端写到响应页面中,渲染时才会触发,在url的hash中
所以直接查看源码查找的是后端源码,通过搜索xss无法定位
通过f12查看当前页面源码,查找xss可以看到通过JavaScript调用的语句,发现是通过hash调用,
通过本页面右击查看源码,查找hash,发现后端触发xss语句
2.1.2CSRF跨站请求伪造
概念:
利用用户已登陆的身份,在用户毫不知情的情况下,以用户的名义完成非法操作
通过view-source查看url,发现用户构造了转账的form表单,通过form表单提交会有明显的网页跳转情况
通过iframe嵌入,用户看到的是外层页面,感受不到嵌入网页的跳转情况,才能使用户不知情的情况下完成操作
2.2.3点击劫持
1.前置知识:
相信大家都见过俄罗斯套娃,一层嵌套一层,在打开之前,内部是不可见的。网站也可以实现类似的操作
iframe标签可以创建包含另一个文档的内联框架
在浏览器中打开,即可打开到src中的网页
实例:
对网页进行透明度设置为0,则网页不可见。若在网页上可放上“点击我”的图片,当我们点击时就会触发隐藏在图片之下的网页按钮
点击劫持:通过覆盖不可见的框架误导受害者点击而造成的攻击行为
特点:
- 隐蔽性高
- 骗取用户操作
- UI-覆盖攻击
- 利用iframe或其它标签的属性
实例:(这是视频中实例代码的,但是我不知道哪里错,等我知道了再回来改,欢迎指正)
Doctype html>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<head>
<title> 点击劫持title>
<style>
html,body,iframe(
display:block;
height:100%;
width:100%;
margin:0;
padding:0;
border:none;
)/*被隐藏网页的设置*/
iframe(
opacity:0;
filter:alpha(opacity=30);/*IE*/
-moz-opacity:0.5;/*noz+fflush*/
opacity:0.5;/*支持css的浏览器*/
position:absolute;
z-index:2;
)/*调整网页可见度*/
/*设置多个opacity,提高不同网页的兼容性*/
button(
position:absolute;
top:-5px;
left:875px;
z-index:1;/*图片与视觉的距离*/
width:72px;
height:26px;
)
style>
head>
<body>
<button><img src="C:\Users\nihao\Desktop\222.jpg">button>
<iframe src="https://www.baidu.com/>