暂无更多详细介绍。
近期有些网友想要了解CentOS与AliyunLinux有什么区别的相关情况,小编通过整理给您分析,根据自身经验分享如何选择最佳方案?有关知识。在开源操作系统的领域里,CentOS与AliyunLinux是...
你是否遇到过在终端输入命令时,系统提示“找不到指令”的尴尬?或是安装完软件后,每次运行都要输入冗长的路径?这些问题的核心往往在于环境变量的设置。今天我们就用“说人话”的方式,聊聊Linux环境变量的那些事儿——...
Windows防火墙是确保计算机安全的重要工具,但有时它可能会遇到无法打开或无法正常工作的问题。如果你也在为“Windows防火墙打不开”而烦恼,别担心,本文将详细解析可能的原因,并提供多种解决方案,帮助你快速...
近期有些网友想要了解如何查询他人身份证号码的相关情况,小编通过整理给您分析,根据自身经验分享合法途径与注意事项解析有关知识。在互联网时代,个人信息安全已成为公众关注的焦点,查询他人身份证号码”的需求,许多人因缺...
近期有些网友想要了解的相关情况,小编通过整理给您分享一下。在当今互联网时代,网络带宽的优化对于提升系统性能和用户体验至关重要。Linux作为广泛使用的操作系统,提供了多种工具和方法来优化网络带宽的使用。本文将深...
在现代web开发中,安全审计是一个不可或缺的环节。ChromeDevTools提供了强大的工具,帮助开发者快速识别和修复潜在的安全漏洞。本文将重点探讨如何利用ChromeDevTools进行安全审...
本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:微信号:TencentWeTest对于新接触web开发的同学来说,XSS注入是一件非常头疼的事情。就算是web开发多年的老手,也不敢保证自己写的...
functionxss_clean($data){//Fix&entity\n;$data=str_replace(array('&',''),array('&',''),$data);$d...
什么是XSS?php安全之XSSXSS,全称CrossSitescripting,即跨站脚本攻击,从某种意义上来讲也是一种注入攻击,具体指攻击者在页面中注入恶意的脚本代码,当受害者访...
这里主要是介绍下防止XSS的时机判断,让你明白XSS实质应该防止的位置什么是XSS攻击它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执...
怎样发现雅虎邮箱APP的存储型XSS漏洞本篇文章为大家展示了怎样发现雅虎邮箱APP的存储型XSS漏洞,内容简明扼要并且容易理解,绝对能使你眼前一亮...
如何通过XSS窃取localStorage中的JWT如何通过XSS窃取localStorage中的JWT,针对这个问题,这篇文章详细介绍了相对应的...
微软OutlookforAndroid移动应用的XSS漏洞示例分析微软OutlookforAndroid移动应用的XSS漏洞示例分析,相信...
转义JavaScript转义:
在JavaScript中输出一些用户信息,如:
将自己的JavaScript注入其中,但是服务器端应用程序会转义某些引号,您可以通过转义它们的转义字符来绕过这些引号。
当它被注入时,它将读取,最后将取消对双引号的转义,并导致跨站点脚本向量触发。
\";alert('XSS');//
如果对嵌入的数据应用了正确的JSON或Javascript转义,而不是HTML编码,则完成脚本块并启动。
结束标签tag:
关闭
INPUT image:
BODY image:
IMG Dynsrc:
IMG lowsrc:
List-style-image:
处理为项目符号列表嵌入图像的相当深奥的问题,这只适用于IE呈现引擎。不是一个特别有用的跨站点脚本。
VBscript in an image:
Livescript(仅限旧版本的Netscape):
SVG对象标记:
SVG object tag:
ECMAScript 6:
Set.constructor`alert\x28document.domain\x29```
BODY tag:
不需要使用“javascript:”或“
事件句柄:
FSCommand() (攻击者可以在嵌入式Flash对象中执行此操作)
onAbort() (当用户中止加载图像时)
onActivate() (当对象设置为活动元素时)
onAfterPrint() (在用户打印或预览打印作业后激活)
onAfterUpdate() (更新源对象中的数据后在数据对象上激活)
onBeforeActivate() (在对象设置为活动元素之前激发)
onBeforeCopy() (攻击者在将选定内容复制到剪贴板之前执行攻击字符串-攻击者可以使用execCommand(“Copy”)函数执行此操作)
onBeforeCut() (攻击者在剪切选定内容之前执行攻击字符串)
onBeforeDeactivate() (从当前对象更改activeElement后立即激发)
onBeforeEditFocus() (在可编辑元素中包含的对象进入UI激活状态之前,或在选中可编辑容器对象时激发)
onBeforePaste() (需要诱使用户粘贴或使用execCommand(“粘贴”)函数强制用户粘贴)
onBeforePrint() (需要诱使用户进行打印,否则攻击者可以使用print()或execCommand(“print”)函数).
onBeforeUnload() (需要诱使用户关闭浏览器-攻击者无法卸载windows,除非它是从父级派生的)
onBeforeUpdate() (在更新源对象中的数据之前在数据对象上激活)
onBegin() (onbegin事件在元素的时间线开始时立即激发)
onBlur() (如果加载了另一个弹出窗口and window looses focus)
onBounce() (当选取框对象的behavior属性设置为“alternate”并且选取框的内容到达窗口的一侧时激发)
onCellChange() (当数据提供程序中的数据更改时触发)
onChange() (“选择”、“文本”或“文本区域”字段失去focus,其值已被修改)
onClick() (有人点击表单)
onContextMenu() (用户需要鼠标右击攻击区域)
onControlSelect() (当用户要对对象进行控件选择时触发)
onCopy() (用户需要复制某些内容,或者可以使用execCommand(“copy”)命令利用它)
onCut() (用户需要复制某些内容,或者可以使用execCommand(“Cut”)命令利用它)
onDataAvailable() (用户需要更改元素中的数据,否则攻击者可以执行相同的功能)
onDataSetChanged() (当数据源对象公开的数据集更改时触发)
onDataSetComplete() (触发以指示数据源对象中的所有数据都可用)
onDblClick() (用户双击表单元素或链接)
onDeactivate() (当activeElement从当前对象更改为父文档中的另一个对象时激发)
onDrag() (要求用户拖动对象)
onDragEnd() (要求用户拖动对象)
onDragLeave() (要求用户将对象拖离有效位置)
onDragEnter() (要求用户将对象拖到有效位置)
onDragOver() (要求用户将对象拖到有效位置)
onDragDrop() (用户将对象(如文件)放到浏览器窗口中)
onDragStart() (在用户启动拖动操作时发生)
onDrop() (用户将对象(如文件)放到浏览器窗口中)
onEnd() (当时间线结束时,onEnd事件将触发)
onError() (加载文档或图像会导致错误)
onErrorUpdate() (当更新数据源对象中的关联数据时出错时,对数据绑定对象触发)
onFilterChange() (在视觉筛选器完成状态更改时触发)
onFinish() (当选取框完成循环时,攻击者可以创建攻击)
onFocus() (当窗口获得焦点时,攻击者执行攻击字符串)
onFocusIn() (当窗口获得焦点时,攻击者执行攻击字符串)
onFocusOut() (当窗口失去焦点时,攻击者执行攻击字符串)
onHashChange() (当文档当前地址的片段标识符部分更改时触发)
onHelp() (当用户在窗口处于焦点时点击F1时,攻击者执行攻击字符串)
onInput() (元素的文本内容通过用户界面更改)
onKeyDown() (用户按下键触发)
onKeyPress() (用户按下或按住键)
onKeyUp() (用户松开按键)
onLayoutComplete() (用户必须打印或打印预览)
onLoad() (攻击者在窗口加载后执行攻击字符串)
onLoseCapture() (可被releaseCapture()方法利用)
onMediaComplete() (当使用流媒体文件时,此事件可能在文件开始播放之前触发)
onMediaError() (用户在浏览器中打开包含媒体文件的页面,当出现问题时触发事件)
onMessage() (当文档收到消息时触发)
onMouseDown() (攻击者需要让用户单击图像)
onMouseEnter() (光标在对象或区域上移动)
onMouseLeave() (攻击者需要让用户将鼠标移到图像或表上,然后再次关闭)
onMouseMove() (攻击者需要让用户将鼠标移到图像或表上)
onMouseOut() (攻击者需要让用户将鼠标移到图像或表上,然后再次关闭)
onMouseOver() (光标在对象或区域上移动)
onMouseUp() (攻击者需要让用户单击图像)
onMouseWheel() (攻击者需要让用户使用鼠标滚轮)
onMove() (用户或攻击者会移动页面)
onMoveEnd() (用户或攻击者会移动页面)
onMoveStart() (用户或攻击者会移动页面)
onOffline() (如果浏览器在联机模式下工作并且开始脱机工作,则发生)
onOnline() (如果浏览器在脱机模式下工作并且开始联机工作,则发生)
onOutOfSync() (中断元素播放时间线定义的媒体的能力)
onPaste() (用户需要粘贴或攻击者可以使用execCommand(“粘贴”)函数)
onPause() (当时间线暂停时,onpause事件将对每个活动的元素(包括body元素)触发)
onPopState() (当用户导航会话历史记录时激发)
onProgress() (攻击者会将此用作正在加载的flash电影)
onPropertyChange() (用户或攻击者需要更改元素属性)
onReadyStateChange() (用户或攻击者需要更改元素属性)
onRedo() (用户在撤消事务历史记录中前进)
onRepeat() (事件在时间线的每次重复中触发一次,第一个完整周期除外)
onReset() (用户或攻击者重置窗体)
onResize() (用户将调整窗口大小;攻击者可以使用以下命令自动初始化:)
onResizeEnd() (用户将调整窗口大小;攻击者可以使用以下内容自动初始化: )
onResizeStart() (用户将调整窗口大小;攻击者可以使用以下命令自动初始化: )
onResume() (onresume事件对时间线恢复时变为活动的每个元素(包括body元素)触发)
onReverse() (如果元素的repeatCount大于1,则每次时间线开始向后播放时都会触发此事件)
onRowsEnter() (用户或攻击者需要更改数据源中的行)
onRowExit() (用户或攻击者需要更改数据源中的行)
onRowDelete() (用户或攻击者需要删除数据源中的行)
onRowInserted() (用户或攻击者需要在数据源中插入一行)
onScroll() (用户需要滚动,否则攻击者可以使用scrollBy()函数)
onSeek() (onreverse事件在时间线设置为沿除forward以外的任何方向播放时触发)
onSelect() (用户需要选择一些文本-攻击者可以使用以下命令自动初始化: window.document.execCommand("SelectAll");)
onSelectionChange() (用户需要选择一些文本-攻击者可以使用以下命令自动初始化: window.document.execCommand("SelectAll");)
onSelectStart() (用户需要选择一些文本-攻击者可以使用以下命令自动初始化: window.document.execCommand("SelectAll");)
onStart() (在每个选框循环的开始处激发)
onStop() (用户需要按下停止按钮或离开网页)
onStorage() (存储区域已更改)
onSyncRestored() (用户中断元素的播放时间线定义的媒体的能力)
onSubmit() (需要攻击者或用户提交表单)
onTimeError() (用户或攻击者将时间属性(如dur)设置为无效值)
onTrackChange() (用户或攻击者更改播放列表中的playlist)
onUndo() (用户在撤消事务历史记录中返回)
onUnload() (当用户单击任何链接或按下后退按钮时,攻击者会强制单击)
onURLFlip() (当由HTML+TIME(定时交互式多媒体扩展)媒体标记播放的高级流式格式(ASF)文件处理嵌入在ASF文件中的脚本命令时,会触发此事件)
seekSegmentTime() (这是一个在元素的段时间线上定位指定点并从该点开始播放的方法。该段由一个重复的时间线组成,包括使用AUTOREVERSE属性的反向播放。)
BGSOUND:
& JavaScript includes:
STYLE sheet:
远程样式表Remote style sheet:
使用像远程样式表这样简单的东西,您可以包括XSS,因为可以使用嵌入式表达式重新定义样式参数。)
这仅在IE和Netscape 8.1+的IE渲染引擎模式下有效。
注意:对于所有这些远程样式表示例,它们都使用body标记,因此除非页面上有向量本身以外的其他内容,否则无法工作。
因此,如果页面是空白页面,则需要向该页面添加一个字母使其工作
远程样式表Remote style sheet2:
工作原理与上述相同,但使用
这个向量的一个微小变化被用来攻击谷歌桌面。另外,如果在向量之后立即有HTML来关闭end标记,则可以将其删除。
如果在跨站点脚本攻击中不能有等号或斜线(在现实世界中至少出现过一次),则这非常有用.
远程样式表Remote style sheet3:
这只适用于Opera8.0(不再适用于9.x),但相当棘手。根据RFC2616设置,链接头不是HTTP1.1规范的一部分,但是一些浏览器仍然允许它(比如Firefox和Opera)。
这里的诀窍是,我设置了一个头(基本上与HTTP头中的Link:
而带有跨站点脚本向量的远程样式表正在运行JavaScript,这在FireFox中是不受支持的。
远程样式表Remote style sheet4:
这只适用于Gecko渲染引擎,并通过将XUL文件绑定到父页面来工作。我认为讽刺的是,Netscape认为Gecko更安全,因此对绝大多数网站来说都很脆弱。
带有用于XSS的分解JavaScript的STYLE标记STYLE tags with broken up JavaScript for XSS:
此XSS有时会将IE发送到无限循环的警报中。
STYLE attribute using a comment to break up expression使用注释拆分表达式的STYLE属性:
带表达式的IMG样式:
这实际上是上述XSS向量的混合,但它确实显示了分离样式标记的难度,就像上面所说的,这可以将IE发送到循环中。
exppression(alert("XSS"))'>
STYLE tag (Older versions of Netscape only):
STYLE tag using background-image:
STYLE tag using background:
具有STYLE属性的匿名HTMLAnonymous HTML with STYLE attribute:
IE6和Netscape 8.1 +在IE渲染引擎模式中并不真正关心你构建的HTML标签是否存在,只要它从一个打开的角度括号和一个字母开始.
Local htc file本地htc文件:
这与上面两个跨站点脚本向量略有不同,因为它使用的.htc文件必须与XSS向量位于同一服务器上。
示例文件的工作方式是:拉入JavaScript并将其作为style属性的一部分运行.
US-ASCII encoding:
它使用格式错误的ASCII编码,使用7位而不是8位。此XSS可以绕过许多内容过滤器,
但仅在主机使用US-ASCII编码传输或您自己设置编码时才起作用。
这对于web应用程序防火墙跨站点脚本规避比服务器端筛选器规避更有用。
Apache Tomcat是唯一已知的以US-ASCII编码传输的服务器。
¼script¾alert(¢XSS¢)¼/script¾
META:
meta-refresh的奇怪之处在于它没有在头中发送referer,因此它可以用于某些类型的攻击,在这些攻击中,您需要删除引用的url。
META using data:
指令URL方案。这很好,因为它也没有任何明显包含脚本或JavaScript指令的东西,因为它使用base64编码。
请参阅RFC2397了解更多详细信息,或在这里或这里编码您自己的。如果您只想对原始HTML或JavaScript进行编码,
也可以使用下面的XSS计算器,因为它具有Base64编码方法。
META with additional URL parameter:
如果目标网站试图查看URL开头是否包含“http://”。
IFRAME:
If iframes are allowed there are a lot of other XSS problems as well。
IFRAME Event based:
IFrames和大多数其他元素可以使用基于事件的mayhem,如下所示。。。
FRAME:
Frames have the same sorts of XSS problems as iframes
TABLE:
DIV: DIV background-image DIV background-image with unicoded XSS exploit: 这已经被稍微修改,以混淆url参数。 DIV background-image plus extra characters额外字符: 在IE和Netscape 8.1中的安全站点模式下,在开括号之后、JavaScript指令之前允许的任何错误字符。这些是十进制的,但是当然可以包括十六进制和添加填充。 可以使用以下任何字符:1-32、34、39、160、8192-8.13、12288、65279。 DIV expression: 这种方法的一个变体对现实世界中使用冒号和“表达式”之间的换行符的跨站点脚本过滤器是有效的. Downlevel-Hidden block: 仅适用于IE5.0及更高版本,Netscape 8.1适用于IE渲染引擎模式)。有些网站认为评论块中的任何内容都是安全的,因此不需要删除,这就允许我们使用跨站点脚本。 或者系统可以在某些东西周围添加注释标记,试图使其无害化。如我们所见,这可能不起作用. BASE tag: 在IE和Netscape 8.1中以安全模式工作。您需要//来注释掉下一个字符,这样就不会出现JavaScript错误,XSS标记将呈现。 此外,这依赖于网站使用动态放置的图像,如“images/image.jpg”,而不是完整路径。 如果路径包含一个前导正斜杠,如“/images/image.jpg”,则可以从该向量中删除一个斜杠(只要有两个斜杠开始注释,则此操作有效) OBJECT tag: 如果它们允许对象,您还可以注入病毒有效负载以感染用户等,与APPLET标记相同)。链接文件实际上是一个HTML文件,可以包含您的XSS. 使用嵌入标记可以嵌入包含xss的Flash电影: 单击此处进行演示。如果添加allowScriptAccess=“never”和allownetworking=“internal”属性,则可以降低此风险. EMBED SRC="http://ha.ckers.Using an EMBED tag you can embed a Flash movie that contains XSS. Click here for a demo. If you add the attributes allowScriptAccess="never" and allownetworking="internal" it can mitigate this risk (thank you to Jonathan Vanasco for the info).: org/xss.swf" alt="如何绕过XSS的防护"/> |