XSS

XSS

什么是XSS
XSS攻击通常指的是通过利用网页开发留下来的漏洞,通过巧妙的方法注入恶意代码到网页,使用户加载并执行攻击的网页程序。

XSS中文称跨站脚本攻击(Cross Site Scripting)缩写为CSS,但是这会与层叠样式表(Cascading Sheets,CSS)缩写混乱,所以 跨站脚本攻击叫XSS。

关于注入

注入攻击的本质 ,是把用户输入的数据当做代码执行
两个条件

第一 用户能够控制输入
第二 是将原本执行的代码,拼接用户输入的数据

XSS主要是拼接什么
SQL注入是拼接操作数据库的SQL词语。XSS拼接的是HTML代码,一般而言我们是可以拼接处合适的HTML代码去执行恶意的JS 语句 总结(XSS就是拼接恶意的HTML)

XSS能做什么 因为达到各种个样的效果需要比较复杂的代码,所以
XSS平台应运而生
盗取Cookie(用的最频繁的) xsspt.com(开放注册)
获取内网ip xss9.com(需要邀请码)
获取浏览器保存的明文密码
截取网页屏幕
网页上的键盘记录
什么是 cookie
cookeie是在HTTP写协议下 ,服务器或者脚本可以维护客户工作站上的一种方式
cookie是由web服务器保存用户浏览器(客户端)上的小文本文件,他可以包含用户的信息
cookie有临时的,有些持续的 临时的cookie只是在浏览器保存一段规定时间,一旦超过规定时间,COOKIE就会被系统清除
COOK最典型的利用的应用判定注册用户是否已经登录网站,用户可能睡得到提示
,是否在下一次进入这个网站保留用户信息以简化登录手续。

XSS常见的类型
反射性XSS (非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型XSS大多数是用来盗取用户的Cookie信息。)
存储型XSS(持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie)
存储型XSS:打入web页面的恶意HTML会被存储到应用服务器端,简而言之就是会被存储到数据库,等用户打开页面时,会继续执行恶意代码,能够持续攻击用户;
DOM型XSS (不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS。)
DOM XSS 漏洞是基于文档对象模型的一种漏洞
DOM是一套JS和其他语可调用的标准API(遍历/获取/修改)
根据XSS在DOM中输出的点不同,DOM,XSS既有可能是反射性,也可能是存储型的

它告诉浏览器他后面的东西都是片段,也就是不作为查询的一部分。浏览器不会把这个片段发送

服务器,因此服务端只是看到前面的内容

DOM详细 https://blog.csdn.net/qq_36119192/article/details/82933873

Document对象属性
cookie 设置或者返回当前文档有关的所有cookie
domain 返回当前文档的域名
lastModified 返回当前文档最后修改日期和时间
referrer 返回载入当前文档的文档URL。
title 返回当前文档的标题
URL 返回当前文档的URL
document.cookie 读取cookie

y

XSS真的执行恶意代码的实际上是JS语句 ,那么我们一般需要构建(这个是定义js的标签)
还是也有其他方法可执行
比如事件型执行js:<img src=“hai” οnerrοr=alert(‘123’) >//
例如 οnerrοr=alert(1) 在加载文档或图像时发生错误。
这个语句的意思就是说在加载文档或图像时候发生错误然后会执行alert(1)
常用的有 onerror,onload(成功加载执行) oninput(有输入框,输入的时候触发)
以下是攻击载荷 (所有标签的 > 都可以用 // 代替, 例如

弹出xss 弹出xss 弹出cookie 引用外部的xss

svg 标签

<svg οnlοad=“alert(1)”//
img 标签
<img scr=1 οnerrοr=alert(“xss”)>
弹出cookie
body 标签

style 标签

XSS可以插的地方
输入作为script标签内容
输入作为HTML注释内容
输入作为HTML 标签的属性名
输入作为 HTML标签的属性值
输入作为 HTML标签的名字
尽可能摘到一切用户可控并且能够输出在页面代码中的地方
比如
URL的每一个参数
URL本身
表单
搜索框
常见的场景
评论区 留言 个人信息 订单信息
站内信 网页即时通讯 私信 意见反馈
搜索框 当前目录 图片属性
————————————————————————————————————
例子

,用户作为注释内容,可以进行闭合绕过

用户违标签属性名,可以进行闭合绕过

存储型
1,小红有一个web站点,该站点允许用户发布信息/浏览已发布信息
2,小王检车到小红的站点存在存储型XSS
3.小王在小红的网站上发布一个带有恶意脚本的热点信息,这个信息存储在
小红的服务器的数据库,然后吸引其他人来阅读热点信息。
4,小红或者任何人来浏览了这信息之后,小王的恶意脚本就会执行
5,小王的恶意脚本执行后,小王就就可以对浏览器页面的用户发动XSS攻击
————————————————————————————————————
从以上可的知 存储型的XSS危害最大。因为他存储在服务器端,所以不需要我们和被攻击者有任何接触,只要被攻击者访问了该页面就会遭受攻击。而反射型和DOM型的XSS则需要我们去诱使用户点击我们构造的恶意的URL,需要我们和用户有直接或者间接的接触,比如利用社会工程学或者利用在其他网页挂马的方式。

、、
存储型XSS:打入web页面的恶意HTML会被存储到应用服务器端,简而言之就是会被存储到数据库,等用户打开页面时,会继续执行恶意代码,能够持续攻击用户;
、、、

因为XSS payload构建复杂,所以一般情况下我们都是使用XSS平台去获取cookie


工具使用 BeEF
介绍 BeEF 主要针对游览器(客户进行攻击)
应用普遍转移B/S架构,游览器成为唯一客户端程序
结合社会工程学方法对游览器进行攻击
攻击游览器用户
通过注入的JS脚本,利用游览器攻击其他网站
BeEF (Brower exploitation framework)

  • 生成,交付payload
    -ruby 语言编写
    -服务器端:管理hooked客户端
    -客户端:运行于客户游览器的js脚本(hooked)
    BeEF 攻击手段
    利用网站XSS漏洞实现攻击
    诱导客户端访问包含hook的伪造网站
    结合中间人攻击注入hook脚本

常见用户
键盘记录器
网络扫描
游览器信息收集
绑定shell
与Metasploit 集成
命令
安装
apt -get update
apt-get install beef-xss
启动
cd /usr/share/beef-xss
用户名 密码都是
beef

XSS防御
XSS防御的总体思路是:对用户的输入(和URL参数)进行过滤,对输出进行html编码。也就是对用户提交的所有内容进行过滤,对url中的参数进行过滤,过滤掉会导致脚本执行的相关内容;然后对动态输出到页面的内容进行html编码,使脚本无法在浏览器中执行。

对输入的内容进行过滤,可以分为黑名单过滤和白名单过滤。黑名单过滤虽然可以拦截大部分的XSS攻击,但是还是存在被绕过的风险。白名单过滤虽然可以基本杜绝XSS攻击,但是真实环境中一般是不能进行如此严格的白名单过滤的。

对输出进行html编码,就是通过函数,将用户的输入的数据进行html编码,使其不能作为脚本运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值