HTML注入的思路讲解

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 23:47 点击:

 

 

 

转载来自:r00ts.info

HTML injection的背景: 
  1 现在的XSS就是跨站脚本攻击一般都是在有服务器交互的情况下在客户端产生的一些问题,那么在没有服务器交互的情况下呢?
  2 另外就是很多人都认为html文件是绝对安全的,那么真的是这样么?
  什么是HTML injection:
  有交互才会产生漏洞,无论交互是怎么进行的,HTML文件并不是像大家想的那样没有任何交互,在HTML文件里还是会用到一些javascript来完成自己需要的一些动态效果,这样其实交互的地方还是有的,譬如地址栏的参数也就是location,用户所做的点击触发的事件,以及一些动态的DOM交互都会影响到javascript的执行导致漏洞的产生。
  为什么要做HTML injection:
  在Windows本地存在大量的HTML文件,如果这些HTML文件可以被injection的话,那么就可以利用本地的HTML文件在本地域内执行javascript,权限是非常高的。
  如何寻找HTML injection:
  寻找交互的地方:交互的地方就是上面说的地址栏等可能可以交互的地方,最常用的就是地址栏了,也就是javascript里的location,所以在HTML文件里寻找location.可能找到你需要的东西。
  寻找危险的操作:HTML里危险的操作包括document.write,eval,对innerHTML这些属性的操作等等都可能会造成jnjection,当然也包括一些其他的可能导致执行脚本的操作。
  实际的一个例子:
  如果你安装了iis,那么很容易在c:\windows\Help\iisHelp\common\下面找到类似于下面的代码:
  以下是引用片段:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<html dir=ltr> 
<head> 
<style> 
a:link      {font:9pt/11pt 宋体; color:FF0000} 
a:visited    {font:9pt/11pt 宋体; color:#4e4e4e} 
</style> 
<META NAME="ROBOTS" CONTENT="NOINDEX"> 
<title>无法显示网页</title> 
<META HTTP-EQUIV="Content-Type" Content="text-html; charset=gb2312"> 
</head> 
<script> 
function Homepage(){ 
<!-- 
// in real bits, urls get returned to our script like this: 
// res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm 
//For testing use DocURL = "res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm" 
  DocURL=document.URL; 
  //this is where the http or https will be, as found by searching for :// but skipping the res:// 
  protocolIndex=DocURL.indexOf("://",4); 
  //this finds the ending slash for the domain server 
  serverIndex=DocURL.indexOf("/",protocolIndex + 3); 
  //for the href, we need a valid URL to the domain. We search for the # symbol to find the begining 
  //of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker. 
  //urlresult=DocURL.substring(protocolIndex - 4,serverIndex); 
  BeginURL=DocURL.indexOf("#",1) + 1; 
  urlresult=DocURL.substring(BeginURL,serverIndex); 
//for display, we need to skip after http://, and go to the next slash 
  displayresult=DocURL.substring(protocolIndex + 3 ,serverIndex); 
  insertElementAnchor(urlresult, displayresult); 

function HtmlEncode(text) 

return text.replace(/&/g, '&').replace(/'/g, '"').replace(/</g, '<').replace(/>/g, '>'); 

function TagAttrib(name, value) 

return ' '+name+'="'+HtmlEncode(value)+'"'; 

f

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • WordPress添加百度喜欢按钮小技巧
    • Wordpress 博客如何实现自定义Gravatar头像
    • 网站设计分析:建立良好的视觉层级
    • 网站设计分析:“中国式设计”的三个方向
    • 案例分析:奥巴马筹款网站的制作过程
    • 创建不平衡的平衡:在网页设计中使用不对称设计
    • 7大主流B2C首页导航栏设计对比分析
    • Wordpress页面模板制作方法及使用
    • css控制文字前的小图标
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1