portswigger靶场 XSS2

Lab7: Reflected XSS into attribute with angle brackets HTML-encoded

访问此靶场,存在检索功能,按照正常闭合标签思路,进行测试发现对内容进行了HTML实体化转换,发现双引号未进行处理,可尝试利用事件触发。

payload: 123" οnclick=alert(123) x=",成功触发alert,发现并未通过。

查看提示发现靶场需使用onmouseover事件,成功通过。

Lab8: Stored XSS into anchor href attribute with double quotes HTML-encoded

还是之前的留言功能,按照之前的思路,直接在内容、姓名处注入payload,邮箱和网站随意填写并提交。

审查元素发现内容和姓名提交的内容被HTML实体化转移,这里网站website直接拼入a标签的href属性。可利用javascript伪协议,payload为javascript:alert(123)

提交后点击姓名,成功触发alert

Lab9: Reflected XSS into a JavaScript string with angle brackets HTML encoded

老常客搜索框,直接搜索h1标签。发现对其进行HTML实体化,审查元素时发现代码中有段script脚本。并且会将搜索内容赋值给JS脚本中的searchTherms变量。

直接将搜索内容放入script代码块中,可直接进行利用,构思payload为:123';alert(123)//。搜索该payload后直接成功触发alert。

Lab10: DOM XSS in document.write sink using source location.search inside a select element

靶场为商品列表,点击某一商品,页面只存在检查库存功能。审查元素发现会从URL中获取storeId参数值,利用document.write将其未处理的写入网页中。此处可造成 DOM XSS

在原有URL上加上&storeId=123,直接输出在页面上

构造payload,123</option><script>alert(123)</script>,成功触发。

Lab11: DOM XSS in AngularJS expression with angle brackets and double quotes HTML-encoded

还是搜索功能,经尝试输入都被HTML实体化,看提示和原文引入了AngularJS,因不了解,直接抄答案。

官方给出的payload:{{$on.constructor('alert(1)')()}},遇事不明直接上AI。

经解读,{{}}在AngularJS为插值表达式,$on为监听事件方法或者为当前对象, constructor()为javascript对象的构造函数属性。此处的个人理解为当前对象加载构造的时候便会触发alert。

在观察靶场提示和源代码,body标签中使用了ng-app指令,在AngularJS中,ng-app指令表示该标签内容的所有内容都会进行编译和执行。

结合payload及ng-app指令发现,可直接搜索payload,会自动插入到body中,payload就会被执行。

成功触发弹窗。审查元素时,看不了AngularJS表达式,查看源代码才能看到。

  • 28
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值