1.1 XSS 跨站脚本攻击介绍
跨站脚本攻击英文全称为(Cross site Script)缩写为 CSS,但是为了和层叠样式表(Cascading Style Sheet)CSS 区分开来,所以在安全领域跨站脚本攻击叫做 XSS(官方解释)

XSS 攻击简介
XSS 攻击通常指黑客通过往 Web 页面中插入恶意 Script 代码,当用户访问网页时恶意代码在用户的浏览器中被执行,从而劫持用户浏览器窃取用户信息。
1.2 XSS 跨站脚本攻击分类
XSS 脚本分为下面三类
第一种类型:反射型 XSS
反射型 XSS 又称之为非持久型 XSS,黑客需要通过诱使用户点击包含 XSS 攻击代码的恶意链接,然后用户浏览器执行恶意代码触发 XSS 漏洞。
第二种类型:存储型 XSS
存储型 XSS 会把用户输入的数据存储在服务器端,这种 XSS 可以持久化,而且更加稳定。
比如黑客写了一篇包含 XSS 恶意代码的博客文章,那么访问该博客的所有用户他们的浏览器中都会执行黑客构造的 XSS 恶意代码,通常这种攻击代码会以文本或数据库的方式保存在服务器端,所以称之为存储型 XSS。
第三种类型:DOM 型 XSS(不常用)
DOM 概述:HTML DOM 定义了访问和操作 HTML 文档的标准方法。
DOM 将 HTML 文档表达为树结构。
DOM 型 XSS 并不根据数据是否保存在服务器端来进行划分,从效果来看它属于反射性 XSS,但是因为形成原因比较特殊所以被单独作为一个分类,通过修改 DOM 节点形成的 XSS 攻击被称之为 DOM 型 XSS。
1.3 Cookie 概述
(1、Cookie 概述:
Cookie 是一些数据,存储于你电脑上的文本文件中。
当web服务器向浏览器发送web页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie的作用就是用于解决“如何记录客户端的用户信息":
(1)、当用户访问web页面时,他的名字可以记录在cookie 中。
(2)、在用户下一-次访问该页面时,可以在cookie 中读取用户访问记录里
Cookie以键值对形式存储,如下所示:
username= Jack20
当浏览器从服务器.上请求web页面时,属 于该页面的cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。
(2、使用JavaScript 创建Cookie
JavaScript可以使用document.cookie属性来创建、读取、及删除cookie。
例1: JavaScript中,创建cookie 如下所示:
document.cookie= "username=Jack20";
例2:你还可以为cookie 添加一个过期时间(以UTC或GMT时间)默认情况下,cookie 在浏览器关闭时删除:
document.cookie= "username=Jack20; expires=Wed, 26 July 2028 12:00:00 GMT";
(3、使用JavaScript读取Cookie
在JavaScript中,可以使用以下代码来读取cookie: 4
var x = document.cookie;
注: document.cookie将以字符串的方式返回所有的cookie,类型格式: cookie1 =value;cookie2 =value; cookie3= value;
(4、使用JavaScript 修改Cookie
在JavaScript 中,修改cookie类似于创建cookie, 如下所示:
document.cookie= "username= Jack; expires=Wed, 26 July 2028 12:00:00 GMT;path=/";
旧的cookie 将被覆盖。
(5、Cookie字符串
document.cookie属性看起来像一个普通的文本字符串,其实它不是。
(6、JavaScript Cookie 实例
实验描述:在以下实例中,我们将创建 cookie 来存储访问者名称。
首先,访问者访问 web 页面, 他将被要求填写自己的名字。该名字会存储在 cookie 中。访问者下一次访问页面时,他会看到一个欢迎的消息。
在 kali 打开终端(这里在虚拟机里装了Kali2020.2),先启动 apache 服务,然后新建 一个html 页面

写入如下代码:
第一次访问,服务器里没有任何Cookie数据,提示输入名字,输入Jack20,然后点击确定,然后再次刷新页面
刷新后,自动登录并提示 欢迎 Jack20 再次访问。这是服务器里多了一条Cookie数据
原理分析:第一次访问的时候,检查 cookie 中是否有存储用户名,如果没有提示输入名字,如果有提示“欢迎 xxxx 再次访问”,如果 cookie 中没有存储用户名,输入名字点击确定后,名字将会被存储在 cookie 中,再次刷新页面的时候,将会从 cookie 中读取到名字,并在页面中弹出提示框显示“欢迎 xxxx 再次访问”。
(7、Cookie的安全问题
所以,平时我们去访问一些来路不明的网站,在填写信息时一定要看清楚,防止重要信息泄露
以上内容仅供学习研究使用,请勿用于非法用途。
1.1 XSS 跨站脚本攻击介绍
跨站脚本攻击英文全称为(Cross site Script)缩写为 CSS,但是为了和层叠样式表(Cascading Style Sheet)CSS 区分开来,所以在安全领域跨站脚本攻击叫做 XSS(官方解释)
XSS 攻击简介
XSS 攻击通常指黑客通过往 Web 页面中插入恶意 Script 代码,当用户访问网页时恶意代码在用户的浏览器中被执行,从而劫持用户浏览器窃取用户信息。
1.2 XSS 跨站脚本攻击分类
XSS 脚本分为下面三类
第一种类型:反射型 XSS
反射型 XSS 又称之为非持久型 XSS,黑客需要通过诱使用户点击包含 XSS 攻击代码的恶意链接,然后用户浏览器执行恶意代码触发 XSS 漏洞。
第二种类型:存储型 XSS
存储型 XSS 会把用户输入的数据存储在服务器端,这种 XSS 可以持久化,而且更加稳定。
比如黑客写了一篇包含 XSS 恶意代码的博客文章,那么访问该博客的所有用户他们的浏览器中都会执行黑客构造的 XSS 恶意代码,通常这种攻击代码会以文本或数据库的方式保存在服务器端,所以称之为存储型 XSS。
第三种类型:DOM 型 XSS(不常用)
DOM 概述:HTML DOM 定义了访问和操作 HTML 文档的标准方法。
DOM 将 HTML 文档表达为树结构。
DOM 型 XSS 并不根据数据是否保存在服务器端来进行划分,从效果来看它属于反射性 XSS,但是因为形成原因比较特殊所以被单独作为一个分类,通过修改 DOM 节点形成的 XSS 攻击被称之为 DOM 型 XSS。
1.3 Cookie 概述
(1、Cookie 概述:
Cookie 是一些数据,存储于你电脑上的文本文件中。
当web服务器向浏览器发送web页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie的作用就是用于解决“如何记录客户端的用户信息":
(1)、当用户访问web页面时,他的名字可以记录在cookie 中。
(2)、在用户下一-次访问该页面时,可以在cookie 中读取用户访问记录里
Cookie以键值对形式存储,如下所示:
username= Jack20
当浏览器从服务器.上请求web页面时,属 于该页面的cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。
(2、使用JavaScript 创建Cookie
JavaScript可以使用document.cookie属性来创建、读取、及删除cookie。
例1: JavaScript中,创建cookie 如下所示:
document.cookie= "username=Jack20";
例2:你还可以为cookie 添加一个过期时间(以UTC或GMT时间)默认情况下,cookie 在浏览器关闭时删除:
document.cookie= "username=Jack20; expires=Wed, 26 July 2028 12:00:00 GMT";
(3、使用JavaScript读取Cookie
在JavaScript中,可以使用以下代码来读取cookie: 4
var x = document.cookie;
注: document.cookie将以字符串的方式返回所有的cookie,类型格式: cookie1 =value;cookie2 =value; cookie3= value;
(4、使用JavaScript 修改Cookie
在JavaScript 中,修改cookie类似于创建cookie, 如下所示:
document.cookie= "username= Jack; expires=Wed, 26 July 2028 12:00:00 GMT;path=/";
旧的cookie 将被覆盖。
(5、Cookie字符串
document.cookie属性看起来像一个普通的文本字符串,其实它不是。
(6、JavaScript Cookie 实例
实验描述:在以下实例中,我们将创建 cookie 来存储访问者名称。
首先,访问者访问 web 页面, 他将被要求填写自己的名字。该名字会存储在 cookie 中。访问者下一次访问页面时,他会看到一个欢迎的消息。
在 kali 打开终端(这里在虚拟机里装了Kali2020.2),先启动 apache 服务,然后新建 一个html 页面
写入如下代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>js_cookie 实例</title> </head> <head> <script> function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toGMTString(); document.cookie = cname + "=" + cvalue + "; " + expires; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function checkCookie() { var user = getCookie("username"); if (user != "") { alert("欢迎 " + user + " 再次访问"); } else { user = prompt("请输入你的名字:", ""); if (user != "" && user != null) { setCookie("username", user, 30); } } } </script> </head> <body onload="checkCookie()"></body> </html>第一次访问,服务器里没有任何Cookie数据,提示输入名字,输入Jack20,然后点击确定,然后再次刷新页面
刷新后,自动登录并提示 欢迎 Jack20 再次访问。这是服务器里多了一条Cookie数据
原理分析:第一次访问的时候,检查 cookie 中是否有存储用户名,如果没有提示输入名字,如果有提示“欢迎 xxxx 再次访问”,如果 cookie 中没有存储用户名,输入名字点击确定后,名字将会被存储在 cookie 中,再次刷新页面的时候,将会从 cookie 中读取到名字,并在页面中弹出提示框显示“欢迎 xxxx 再次访问”。
(7、Cookie的安全问题
1.Cookie欺骗
2.Flash的代码隐患
所以,平时我们去访问一些来路不明的网站,在填写信息时一定要看清楚,防止重要信息泄露
以上内容仅供学习研究使用,请勿用于非法用途。