拓展&演示
工具
漏洞产生来源: 可由外部(不受信任)来控制的输入。
document.URLdocument.documentURIdocument.URLUnencoded (IE 5.5 or later Only)document.baseURIlocationlocation.hreflocation.searchlocation.hashlocation.pathnamedocument.cookiedocument.referrerwindow.namehistory.pushState()history.replaceState()localStoragesessionStorage
Sink:可能导致漏洞的潜在危险方法。
evalFunctionsetTimeoutsetIntervalsetImmediateexecScriptcrypto.generateCRMFRequestScriptElement.srcScriptElement.textScriptElement.textContentScriptElement.innerTextanyTag.onEventNamedocument.writedocument.writelnanyElement.innerHTMLRange.createContextualFragmentwindow.locationdocument.location
有效负载
不错的Polyglots,可以突破20多个上下文:
%0ajavascript:`/*\"/*--><svg οnlοad='/*`
标签&事件处理
-
105个JavaScript事件处理程序
-
FSCommand(嵌入的Flash对象内被执行时,攻击者可以使用这个) onAbort(当用户中止图像的加载) onActivate(当对象被设置为有源元件) onAfterPrint(用户打印或预览打印作业后,激活) onAfterUpdate(更新源对象中的数据之后激活数据对象) onBeforeActivate(在对象设置为活动元素之前触发) onBeforeCopy(攻击者在选择复制到剪贴板之前执行攻击字符串 - 攻击者可以使用execCommand执行此操作( “复制”)功能) onBeforeCut(攻击者在切换选择之前执行攻击字符串) onBeforeDeactivate(在当前对象更改activeElement之后立即触发) onBeforeEditFocus(在可编辑元素中包含的对象进入UI激活状态或可编辑容器对象之前触发是选择控制) onBeforePaste(用户需要被欺骗粘贴或使用execCommand(“粘贴”)功能强制进入它) onBeforePrint(用户需要被欺骗打印或攻击者可以使用print或execCommand(“打印”) )功能)。 onBeforeUnload(用户需要被欺骗关闭浏览器 - 攻击者无法卸载Windows,除非它是从父级生成的) onBeforeUpdate(在更新源对象中的数据之前激活数据对象) onBegin(onbegin事件在元素的时间轴开始时立即触发) onBlur(在加载另一个弹出窗口且窗口失去焦点的情况下) onBounce(当行为属性为将marquee对象设置为“alternate”并且选取框的内容到达窗口的一侧) onCellChange(在数据提供程序中数据更改时触发) onChange(select,text或TEXTAREA字段失去焦点并且其值已被修改) ) onClick(有人点击表格) onContextMenu(用户需要右键点击攻击区域) onControlSelect(当用户即将对对象进行控件选择时触发) onCopy(用户需要复制某些东西或者可以使用execCommand(“复制”)命令进行攻击) 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事件触发每个活动的元素,当online(包括body元素) onPopState(当用户导航会话历史时触发) onProgress(攻击者会将此作为flash影片加载) onPropertyChange(用户或攻击者需要更改元素属性) onReadyStateChange(用户或攻击者会需要更改元素属性) onRedo(用户在撤消事务历史记录中前进) onRepeat(事件每次重复时间线触发一次,不包括第一个完整周期) onReset(用户或攻击者重置表单) onResize(用户可以调整窗口大小;攻击者可以自动初始化类似:
-
将使用的标签
imgsvgbodyhtmlembedscriptobjectdetailsisindexiframeaudiovideo
非常棒的
HTML
Case: <tag>You searched for $input. </tag>
Attribute
Case: <tag attribute="$input">
">">
JavaScript
Case: <script> var new something = '$input'; </script>
'-alert()-''-alert()//''}alert(1);{ ''}%0Aalert(1);%0A{ '