BUUCTF XSS闯关1

1、审题发现是xss(跨站脚本攻击)类型题目:

(1)第一关:无任何过滤:

执行:script>alert("xss")</script>

这段代码是一个简单的JavaScript脚本,其中包含一个alert函数调用,用于显示一个弹出框,内容为"xss"。这种代码通常被称为跨站脚本(XSS)攻击载荷。

当这段代码被嵌入到网页中,并且网页被用户访问时,浏览器会执行其中的JavaScript代码。在这种情况下,会弹出一个包含"xss"的警告框,可能会误导用户或利用用户的信任执行恶意操作。

(2)第二关:存在过滤,使用了js所编写的一个过滤,username被escape加密

执行:1';alert(1);'1   

使用';结束前面的语句,后面加上函数alert(1);使用'1闭合后面的单引号,当然也可以使用"//"将其注释,最终  username = alert(1);,执行了alert函数。

(3)第三关:存在过滤,输入1';alert(1);'1 ,发现  '  字符被转义。

所以执行:1'';alert(1);'1,则 ’ 转义为 \ 后另一个 ' 也可以完成闭合。

(4)第四关:页面一直在跳转,伪链接问题。

执行:jumpUrl=javascript:alert(1)

javascript:alert(1),浏览器会把javascript后面的内容当做代码执行,直接在当前页面执行。代码中接收jumpUrl作为跳转url。

(5)第五关:getQueryVariable()函数绕过

所以执行:autosubmit=1&action=JavaScript:alert(1);//

JavaScript后面的代码会直接执行。所以action=1,绕过getQueryVariable()函数。对于 // 可有可无

(6)第六关:(xss模板注入)沙箱逃逸

测试{{8*9}}发现是xss模板注入的题目,具体为Angular JS客户端模板注入。

执行:{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}

沙箱逃逸
这个方法,就是确认了存在xss模板注入以后,我们对Angular(版本号v1.4.0-v1.4.9)沙箱逃逸

这段代码是一个利用AngularJS漏洞进行的攻击载荷。具体分析如下:

{{'a'.constructor.prototype.charAt=[].join;:这部分代码试图修改JavaScript中String对象的原型,将其charAt方法替换为数组的join方法。这是为了绕过AngularJS的防御机制,使得后续的代码能够成功执行。

$eval('x=1} } };alert(1)//');:这是AngularJS中的一个内置函数eval的调用。eval函数接受一个字符串参数,并将其作为AngularJS表达式进行求值。在这里,字符串参数包含恶意代码 x=1} } };alert(1)//'。这段代码试图关闭现有的AngularJS表达式,然后触发一个JavaScript alert弹窗,以实现攻击目的。

}}:这是为了结束AngularJS表达式。
 

(7)得到flag:

  • 19
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值