热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2Web安全——浅谈XSS漏洞绕过之XSS挑战通关

目录1.绕过input标签2.input框onclick事件绕过3.白名单绕过4.href属性绕过5.双写法绕过6.html实体编码7.注释符号绕过上一篇通过一个小案

目录

1. 绕过input标签

2. input框onclick事件绕过

3. 白名单绕过

4. href属性绕过

5. 双写法绕过

6. html实体编码

7. 注释符号绕过



 

上一篇通过一个小案例了解了XSS漏洞的基本原理,危害程度以及漏洞产生的原因,本篇将通过一个示例来了解XSS漏洞的利用思路和绕过方法。

 


1. 绕过input标签

直接在搜索框中插入js代码,后台完全把我们输入的代码用引号括起来当做字符串处理了,在绕过过程中需要把引号闭合掉,插入js代码绕过input框,最终构造的代码如下:

">"

前面的双引号和尖括号是为了把之前的">符号闭合掉,从而使插入的js代码绕过input框。

 

测试结果:

js代码最终成功绕过input框

 

 


2. input框onclick事件绕过

后台对输入的



欢迎来到level3
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "

没有找到和".htmlspecialchars($str)."相关的结果.

"."


str变量存储的就是输入的XSS代码,但tmlspecialchars函数将XSS代码中的特殊符号(<,",>)给过滤了。这里有一个坑要注意:其实input框中的value是单引号进行闭合的。

 

 

那么可以利用input框的onclick点击事件来进行绕过,同时对单引号进行闭合,构造XSS代码如下:

&#39; Onclick=alert(123) &#39;

由于后台把



欢迎来到level6
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str2=str_replace("$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
echo "

没有找到和".htmlspecialchars($str)."相关的结果.

".&#39;



后台源代码中定义了一堆过滤的规则,由于PHP对于大小写不敏感,我们可以把href标签使用大小写的方式进行绕过。

 

现在改变一下思路,用大小写的方法改写href属性:

a">

 


5. 双写法绕过

在level7中的地址搜索栏插入JS代码:"> a,后台把代码进行了替换:

a">

 

分析level7部分关键代码:




欢迎来到level7
ini_set("display_errors", 0);
$str =strtolower( $_GET["keyword"]);
$str2=str_replace("script","",$str);
$str3=str_replace("on","",$str2);
$str4=str_replace("src","",$str3);
$str5=str_replace("data","",$str4);
$str6=str_replace("href","",$str5);
echo "

没有找到和".htmlspecialchars($str)."相关的结果.

".&#39;




level7中过滤还是用的str_replace函数,在构造payload的时候只需要对script和href标签使用双写法绕过即可。

 

构造XSS代码如下:

"> a

 

 


6. html实体编码

 

对于之前的绕过方法,在level8中都无法使用成功了:

后台对于之前所有的绕过方法都无法使用了,现在我们需要换一种思路,使用html编码的方式,也就是在JS代码中加入html编码,例如对于Javascript关键字,我们可以把字母c替换成html编码&#67; 最终构造的payload是这样的:

javas&#67;ript:alert()

 

 

注意:是把JS代码插入input框中(如果放在URL地址栏中,系统会对html编码做特殊处理,导致插入的JS代码无法执行),但是后台在处理代码实际上是这样的:


友情链接

 

点击添加友情链接后,然后点击友情链接就会看到alert弹窗:

 

 


7. 注释符号绕过

 

直接插入JS代码Javascript alert();的话,后台页面将会对代码进行过滤:


友情链接

如果我们在JS代码后面跟上url链接的话,后台虽然不会过滤,但是这并不符合JS语法,并且对于Javascript用下划线进行了过滤:

 

 

我们可以通过JS语法中的注释符号和html实体编码方式把后面的url链接都给注释掉:


友情链接

后台执行结果:

成功绕过后台的过滤。

 


推荐阅读
  • 跨站的艺术XSS Fuzzing 的技巧
    作者|张祖优(Fooying)腾讯云云鼎实验室对于XSS的漏洞挖掘过程,其实就是一个使用Payload不断测试和调整再测试的过程,这个过程我们把它叫做F ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 渗透测试基础bypass绕过阻挡我们的WAF(下)
    渗透测试基础-bypass ... [详细]
  • 2月4日每日安全热点节日期间某企远程办公遭XRed攻击 ... [详细]
  • JVM(三)虚拟机栈 多合一总述
    虚拟机栈概述虚拟机栈出现背景:由于跨平台性的设计,Java的指令都是根据栈来设计的。不同CPU架构不同,所以不能设计为基于寄存器的跨平台的优点:指令集小,编译器容易实现,缺点是性能 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
author-avatar
__乀余海燕v
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有