| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> 跨站脚本攻击 -> 正文阅读 |
|
[PHP知识库]跨站脚本攻击 |
????????跨站脚本攻击(XSS)可以使攻击者向网页中注入恶意代码,导致用户浏览器在加载网页、渲染HTML文档时就会执行攻击者的恶意代码。 常见XSS漏洞分类·、反射型XSS
客户端输入的值没有经过任何过滤就输出,所以攻击者可以添加
网页会弹框,内容为1。 2、存储型XSS存储型XSS会存储在服务器端。 主要应用有留言板、在线聊天室、邮件服务等 提交留言?input=<script>alert(1)</script>后,用户访问页面就会弹窗 3、DOM型XSS与反射型XSS和存储型XSS相比,DOM型XSS的XSS代码不需要服务端解析响应的直接参与。 常用Document对象属性
document.write('<script>alert(1)</script>') 4、输出在HTML属性中一般需要闭合相应的HTML属性后注入新属性,或者闭合标签后直接注入新标签
" οnclick="alert(1) "><script>alert(1)</script> 5、输出在CSS代码中
#000; background-image: url('javascript:alert(1)') n闭合前面的color属性,注入background-image属性 6、输出在JavaScript中
'+alert(1)+' 闭合前面的单引号和后面的单引号 防护与绕过1、特定标签过滤过滤危险标签(script、iframe等)
这段代码被用户点击时也会执行XSS 如果输出点在HTML或JavaScript中,只需要简单的闭合、拼接属性或JavaScript代码而不需要引入任何新标签就可以执行XSS代码 2、事件过滤HTML标签的事件属性会被过滤,需要遍历可利用的事件属性检测是否有遗漏 一些标签属性本身不属于事件属性,但可以执行JavaScript代码,比如JavaScript伪协议
3、敏感关键字过滤
window['al'+'ert'](1) btoa("alert")会将字符串编码为Base64返回YWxlcnQ=,atob会解码 所以可以使用 window[atob["YWx"+"lcnQ="]](1)
XSS漏洞中常用的编码方式 HTML进制编码:十进制、十六进制 CSS进制编码:兼容HTML中的进制表现形式,十进制、十六进制 JavaScript进制编码:八进制、十六进制、Unicode编码、ASCII URL编码:%61 JSFuck编码
location.*、window.name等不会被浏览器提交至服务器,所以不会被过滤 也可以利用location对象结合字符串编码绕过基于关键字的过滤
document.cookie无法使用 可以使用with关键字设置变量的作用域 with(document)alert(cookie)
window.οnerrοr=alert; throw 1;
标签属性之间可以使用换行符 0x09、0x10、0x12、0x13、0x0a等可以替代空格 标签名称和第一个属性之间也可以使用“/”代替空格
svg内部的标签和语句遵循的规则是直接继承自xml而不是HTML 因此svg内部的script标签中可以允许存在一部分进制或编码后的字符 <svg><script>alert(1)</script></svg> 4、字符集编码绕过宽字节 5、长度限制window.name、location.*可以将代码放置在别处来减少输入点代码量 <ifram src="XXX?input=%3Cinput%20οnfοcus=$(window.name)%3E" name="<img src='x' οnerrοr=alert(1)>"></ifram> 注释 某些环境中可以使XSS分成多段用注释连接在一起 stage 1:<script>/* stage 2:*/alert(1)/* stage 3:*/</script> 危害与利用XSS漏洞能实现的功能:
|
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 4:29:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |