• [第二章 web进阶]XSS闯关-1


    定义:跨站脚本(Cross_Site Scripting,简称为XSS或跨站脚本或跨站脚本攻击)是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意用户将代码注入网页,其他用户浏览网页时就会受到影响。恶意用户利用XSS代码攻击成功后,可能得到包括但不限于更高的权限、会话和cookie等内容。

    分类:

    反射型:反射性XSS又称为非持久性XSS,主要通过电子邮件等方式将包含XSS代码的恶意链接发送给目标用户,诱导用户点击。

    存储型性:存储型XSS又称为持久型XSS,主要是论坛、博客和留言板等地方,将恶意代码保留到服务端。

    DOM型:DOM全称Document Objeect Model,DOM型XSS其实是一种特殊的反射型XSS,它基于DOM文档对象模型的一种漏洞。

    1、第一关不存在什么过滤,直接输入弹窗payload:,结果如下:

    2、输入弹窗payload:,并没有弹窗,应该是被过滤了,查看下源代码信息,发现escape()函数:不会对数字、字母和* @ - _ + . / 进行编码,但其他所有的字符都会被转义序列替换,因此这里只能自己构造闭合,payload:';alert(1);',结果如下:

    3、这一关对'进行了转义,因此无法直接在原来的,后来发现payload:'';alert(1);'也可以,应该是只对输入的进行转义了第一个’,结果如下:

    4、直接查看源代码信息,发现可以传递一个jumpUrl参数,然后跳转到jumpUrl参数,代码信息如下:

     

    getQueryVariable函数就是获取参数,返回传递的参数值,例如:jumpUrl=1,则返回的就是1,因此我么构造payload:?jumpUrl=javascript:alert('1'),然后等待刷新,成功到达下一关,结果如下:

    5、直接查看源代码信息,如下:

    根据代码信息可知我们需要传递autosubmit参数,使参数可以正常进行,传递action参数进行跳转,因此构造payload:?autosubmit=1&action=javascript:alert('1'),结果如下:

    6、这一关和前面的不太一样,前面的基本都是形成闭合或简单的传递参数进行函数绕过,这里使用的是Angular 1.2-1.5之间版本(有说是1.4-1.5之间)沙箱逃漏洞,首先还是查看源代码信息,发现比前几关多了一个Angular信息,如下:

    那就测试下看是不是xss模板注入漏洞,payload:{{2*2}},返回结果为4,证明存在xss模板注入漏洞,结果如下:

    点击Angular连接查看是一堆代码,但是给出了版本号:

    在网上查找下此版本的漏洞利用方式,payload:{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}},结果如下:

    7、进入第7关直接获得flag值,结果如下:

     



    如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    pcb - 做钢网时, 最好带上Mark点
    图像分块及拼接(二)python代码
    indiegogo众筹代理经验分享
    生产计划体系完整解决方案(2) : 复杂大规模问题之 - 分区规划
    Vue3 动态设置 ref
    婴幼儿蛋白质过敏怎么回事
    golang grpc——header和trailer元数据传输
    代码随想录算法训练营第五十九天| 647. 回文子串 516.最长回文子序列
    day34 Set
    PostgreSQL文本搜索(七)——自定义配置
  • 原文地址:https://www.cnblogs.com/upfine/p/16657800.html