灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:7959回复:0

XSS绕过技术

楼主#
更多 发布于:2014-12-21 15:59
Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常是可以被看作漏洞的。它允许攻击者绕过安全机 制,通过尝试各种不同的方法插入恶意代码,攻击者可以得到敏感页面的权限,会话,cookies,或者其 他的东西,XSS 分为三类
 
 
XSS 分类:
非持久性,持久性和基于 Dom(此类可以是持久的,也可以是不持久的)
 
 
非持久性:非持久性 XSS 也被称为反射性 XSS,是目前最普遍的类型,当攻击者提供了一些代码的时候, 服务器端马上就会返回页面的执行结果。举个例子,就比如某个网页上的搜索引擎,如果攻击者搜索的字 符串包含了一些 html 标签,通常来说,搜索的结果就会以该形式显示出来,或者,至少,搜索的字符串 会包含在页面里。而这个我们是可以修改的,如果任何搜索的字符串都没有被 html 编码,XSS 漏洞就产 生了。
 
 
持久性 XSS:也叫做存储型 XSS,或是二次漏洞,他能够导致更加有效的攻击。当攻击者提交到 web 应用 程序里的数据会永久性的存储到服务器的时候会产生这类漏洞,(比如数据库,文件系统,其他位置),之 后,如果没有经过 HTML 编码,那么每一个访问该页面的用户都会被攻击,典型的例子就是在线留言板, 它允许用户提交数据。
 
 
基于 DOM 的 XSS:也叫做本地跨站,基于 html/xml 上叫做文档对象模型(DOM)的标准对象模型,这类 漏洞,问题出现在页面的客户端脚本上,比如,如果一个 javascript 脚本处理 url 请求参数,然后使用这 个参数值来显示给用户页面,没有经过任何编码,那么 XSS 漏洞产生,和非持久的类似,攻击者可以用恶 意代码填充这个参数,然后覆写的页面诱骗用户点击,然后就会被浏览器解析成 html,包含了恶意的脚本 代码。
 
发现 XSS 漏洞
 
 
最常用的 XSS 漏洞测试代码::
 
<script>alert("XSS")</script>
 
 
当这个代码被注入到输入框或是 url 参数的时候,会成功也可能会失败,如果失败了。也不意味着网站就 是安全的。需要继续渗透。
转义字符串
 
第一步是查看当前的页面源代码,看看是不是包含了我们的这个测试的字符串,如果你发现了。你就会发 现很有意思。要细心。看到了把。是在一个输入(INput)标签里。
 
<INPUT type="text" value='<SCRIPT>alert("XSS")</SCRIPT>'>
 
 
在这个例子,我们可以修改我们的输入来包含两个字符,来让代码跳出那对外围的单引号,
 
'><SCRIPT>alert("XSS")</SCRIPT>
 
 
现在我们的代码执行了。因为我们闭合了前面的 html 标签,就触发了 XSS,但是,你可能会发现,页面 上会显示一个多出来的单引号,为什么,因为后面的那个原来的单引号没有匹配,我们继续修改我们的代 码。
 
'><SCRIPT>alert("XSS")</SCRIPT><xss
a='
 
 
所有的输入就会变成这样:
 
<INPUT type="text" value=''><SCRIPT>alert("XSS")</SCRIPT><xss a=''>
 
 
Ok 了。Javascript 代码就注入了。<xss a=”>这个没什么意义,你可以自己改,但是符合 html 的标准, 页面不会出错。
 
绕过单引号过滤继续!
 
同样的例子,但是我们假设管理员在我们的单引号之前放置了一个“”,?砂踩??惺焙蛩??胖?耙不岱胖茫? 本文来源:灯火互联网

喜欢0 评分0
游客

返回顶部