XSS(一) 不鸽的话可能会有(二)

xss

非持久型xss攻击:非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。

持久型xss攻击:持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。

反射型存储型DOM型

常用测试代码:

onmouseover="alert(xss);"

<script>alert(xss);</script>

<a href="javascript:alert(xss);">xss</a>

<img onerror="alert(xss);" src=>

主要原理:闭合标签,构造恶意代码

输入用户可构造,比如搜索框,评论留言区,注册名字,联系方式等,同时页面里经常会有hidden属性的input,这时直接burp抓包改就可以了,隐藏属性不好点击,可用以下代码 不同浏览器实现的快捷键方式不同,并且可能和其它快捷方式冲突

accesskey="X" onclick="alert(xss)"

DOM XSS是在浏览器的解析中改变页面DOM树,且恶意代码并不在返回页面源码中回显

页面跳转通过JS跳转,使用location.href、location.replace()、location.assign(),可以通过javascript伪协议执行JS脚本

DOM XSS输入点

Location 当前网页的URL地址
window.name 当前网页 tab 的名字,它被不同的网站赋值,也就是说这个网页为window.name 赋值后再跳转到其它网站,window.name 的值依然不变
document.title 是当前网页的标题,可以在搜索框输入控制它的内容
document.referer 表示来路,表示从哪个网页URL访问过来的
postMessage 是HTML5 的一种跨域机制,但很多时候开发者没有正确的做来源检测,会导致 DOM XSS 的发生
location 它触发 JS 通常是以跳转到 JS URI 的方式执行
eval 是JS 内置的动态JS执行器
innerHTML 能为一个网页元素赋值
document.write 可以输出一个页面流
Function 能通过函数生成一个函数,可以传入动态JS代码
setTimeout 会延时执行JS代码
setInterval 表示循环执行 JS 代码
xss编码绕过

有时网站对输入字符进行了过滤,此时可以通过编码来进行绕过
原理:URL 请求时会对百分号等 URL 的编码方式进行转码;浏览器接收到页面数据后,会对 HTML 实体编码进行转码;执行 JS 时会对 JSUnicode 等 JS 支持的方式进行转码。

url编码 %+16进制数字 https://www.w3school.com.cn/tags/html_ref_urlencode.html

url base64编码 data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk7PC9zY3JpcHQ+

html编码  '&' + '约定名称' + ';' 的形式,其实还有 '&#' + '十进制数字' + ';' 和 '&#x' + '十六进制数字' + ';'   十进制和十六进制后面的;可以省略

JS Unicode 编码
规则是 '\u' + '四位十六进制数字'
jsfuck https://www.bugku.com/tools/jsfuck/
在script标签钟插入一个空格或者是tab
<script >alert(1)</script>
<script    >alert(1)</script>

也可以对tab,换行,回车进行编码来绕过
<script&#9>alert(1)</script>
<script&#10>alert(1)</script>
<script&#13>alert(1)</script>

对标签进行大小写
<ScRipT>alert(1)</sCriPt>

插入null字节,在xss payload的任何地方插入null字节,有时候可以绕过filter
<%00script>alert(1)</script>
<script>al%00ert(1)</script>

对于ie版本小于10的 html属性支持反引号` 可用其来闭合双引号,从而绕过htmlspecialchars()

参考来源:https://www.jianshu.com/p/13f0b9a15e46

原文地址:https://www.cnblogs.com/GH-D/p/11613986.html

时间: 2024-08-02 12:44:20

XSS(一) 不鸽的话可能会有(二)的相关文章

XSS的原理分析与解剖(二)

0×01 前言:  上节(http://www.freebuf.com/articles/web/40520.html)已经说明了xss的原理及不同环境的构造方法.本期来说说XSS的分类及挖掘方法. 当第一期出来的时候,反馈很好,但还是有很多人提出疑问,我这里就解答下. 问1:如果我输入PHP语句会不会执行. 答1:不会,因为XSS是面对前台的(用户可见部分),而PHP则是后台处理(用户不可见部分),如果可以执行PHP语句的话,那不叫XSS,叫"任意代码执行". 问2:XSS和CSRF

第二百六十五节,xss脚本攻击介绍

xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常是可以被看作漏洞的.它允许攻击者绕过安全机 制,通过尝试各种不同的方法插入恶意代码,攻击者可以得到敏感页面的权限,会话,cookies,或者其 他的东西,XSS 分为三类 XSS 分类: 非持久性,持久性和基于 Dom(此类可以是持久的,也可以是不持久的) 非持久性: 非持久性 XSS 也被称为反射

Web应用进行XSS漏洞测试

转自:http://www.uml.org.cn/Test/201407161.asp 对 WEB 应用进行 XSS 漏洞测试,不能仅仅局限于在 WEB 页面输入 XSS 攻击字段,然后提交.绕过 JavaScript 的检测,输入 XSS 脚本,通常被测试人员忽略.下图为 XSS 恶意输入绕过 JavaScript 检测的攻击路径. 常见的 XSS 输入 XSS 输入通常包含 JavaScript 脚本,如弹出恶意警告框:<script>alert("XSS");<

使用 PHP 构建的 Web 应用如何避免 XSS 攻击

本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态内容进行编码.以及在服务器端对输入进行检测两方面介绍如何避免恶意的 XSS 攻击. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击 Web 2.0 的发展为网络用户的互动提供了更多机会.用户通过在论坛发表评论,或是在博客发表留言都可能有意或无意输入一些破坏性的内容,从而造成网页不能正常显示

xss理解跟防范

一.XSS分类 XSS分为反射性跟存储型 二.XSS的防范措施 1.编码 2.过滤 3.校正

&quot; XSS易容术---bypass之编码混淆篇+辅助脚本编写&quot;

一.前言本文原创作者:vk,本文属i春秋原创奖励计划,未经许可禁止转载!很多人对于XSS的了解不深.一提起来就是:"哦,弹窗的"."哦,偷cookie的."骚年,你根本不知道什么是力量.虽然我也不知道,哈哈.好了,不瞎扯了,进入今天的主题:XSS易容术---bypass之编码混淆 二.正文1.总括很多时候,我们的一些关键字被过滤.直接闭合前面payload,插入测试语句<script>alert(/xss/)</script>,是弹不出窗的.

dioxin 二氧(杂)芑/二恶英

维基百科 https://zh.wikipedia.org/wiki/%E4%BA%8C%E5%99%81%E8%8B%B1 二噁英(1,4-dioxin),即1,4-二氧杂环己二烯,为一种单环有机化合物,是一种在工业上无实际用途的副产物.二噁英与其衍生化合物的毒性各有不同,另外此类化合物因具脂溶性(liposolubility)之故,会积聚在动物脂肪组织及植物的某些部位. 二噁英的化学结构与属于多氯二苯并二噁英(polychlorinated dibenzodioxins,-,PCDDs)类化

二维码生成及读取方法

二维码的制作主要是引用第三方的程序集ThoughtWorks.QRCode.dll,调用QRCodeEncoder的Encode方法得到一个Bitmap图:相反,解析二维码就是用的Decode方法. 如下示例生成二维码的方法: /// <summary> /// 生成不带logo的二维码图片 /// </summary> /// <param name="data">要生成二维码的字符串</param> /// <returns&g

前端安全之XSS和csrf攻击

1.Csrf攻击概念: csrf攻击(Cross-site request forgery):跨站请求伪造; 2.Csrf攻击原理: 用户是网站A的注册用户,且登录进去,于是网站A就给用户下发cookie. 从上图可以看出,要完成一次CSRF攻击,受害者必须满足两个必要的条件: (1)登录受信任网站A,并在本地生成Cookie.(如果用户没有登录网站A,那么网站B在诱导的时候,请求网站A的api接口时,会提示你登录) (2)在不登出A的情况下,访问危险网站B(其实是利用了网站A的漏洞). 我们在