XSS注入漏洞又称为“跨站脚本(CrossSiteScripting)”,为了不与级联样式表(CSS)混淆,所以跨站脚本的攻击简称为XSS。XSS注入攻击的原理其实和SQL注入攻击的原理非常相似。攻击者在网页中插入恶意脚本代码。当正常用户浏览页面时,会执行嵌入的恶意Script代码,从而实现恶意攻击。正常用户目的。XSS分类跨站脚本注入漏洞是WEB服务器读取用户可控数据,未进行安全处理,直接输出到HTML页面造成的。用户可控数据包括url、参数、HTTP头字段(cookie、referer、HOST等)、HTTP请求文本等。(1)反射型XSS:攻击者在HTML页面中输入可控数据(一般为url),所以输入的数据不存储,只能在单个请求中生效。(2)存储型XSS:攻击者将可控数据输入到HTML页面(通常为POST形式:评论、留言板、登录框等),因此输入的数据会存储在数据库中。由于数据是存储的,所以可以不断的被读取出来,攻击次数比反射型XSS多。(3)DOM-XSS:攻击者可控的数据通过JavaScript和DOM技术输出到HTML,实际上是一种特殊类型的反射型XSS,是一种基于DOM文档对象模型的漏洞。XSS危害(1)流量劫持,利用木马修改浏览器不断弹出新窗口,强制用户访问指定网站,为指定网站增加流量(2)获取用户cookie信息,窃取账号(普通用户、管理员账号)(3)篡改、删除页面信息(钓鱼操作)(4)配合CSRF攻击进行进一步攻击,控制受害者电脑访问其他网站JavaScript代码JavaScript代码是一种客户端脚本语言,是其中的一部分用于向HTML网页添加动态功能。为什么要谈论JavaScript代码?XSS注入攻击中使用的Script代码就是它的标签之一,下面简单介绍一下我们可以使用的语法和标签。方法;通常用于将网页内容输出到文档。方法;弹出一个窗口。方法;用于跳转到网页。方法;通常用于获取网页的cookie。XSS漏洞利用接下来,在了解了XSS注入攻击的原理和被利用代码后,可以尝试验证网站是否存在XSS注入漏洞案例一:使用XSS+CSRF增加网站管理员有的地方没有修改密码时验证或确认两次,存在CSRF漏洞。使用XSS脚本来利用此CSRF漏洞。通过注册新用户或暴力破解登录网站后台。权限不是admin,是用来审核网站的。背景结构。将脚本代码发送给留言板上的管理员。管理员查看留言板后,服务器会跳转到界面执行指令代码部分为xmlhttp.open(打开管理后台添加管理员的url)xmlhttp.send(然后传入value参数,并增加passwd和name的值)复制代码\管理员界面显示效果如下,添加的消息内容存入数据库,当管理员权限时攻击生效查看留言板尝试使用新的管理用户帐号和密码(su/12345)登录后台,如下图为成功添加suadministrator案例二:CMS管理后台仿冒钓鱼网站通过开发者工具查看源码,发现name="username",说明以双引号为标签关闭,这上面有一个"忘记密码"模块页。输入“><”后出现弹窗,提示存在XSS注入漏洞。XSS注入攻击原理:网页用户名post表单源码参数为name="username",我们需要构造一个闭合标签"><",这样代码才能实现。点击忘记密码模块进入wjmm.php,我们将构造一个XSS注入攻击,让普通用户在访问该页面时跳转到我们伪造的忘记密码页面,并修改管理员联系方式。首先我们需要自己编译一个wjmm.php网页,放到我们的服务器上。代码如下。在管理系统登录界面输入123"/>
