[GYCTF2020]Ez_Express-原型链污染学习

[GYCTF2020]Ez_Express-原型链污染学习

最近学习下nodejs相关的题目,所以做了这道题

进入题目界面长这样
在这里插入图片描述
简单的试了下功能,也就是一个登录注册按钮,登陆后如下所示
在这里插入图片描述
要求需要ADMIN登录,这是一个不能注册的账户,而且我们又不知道密码

没法进行下去的时候试一试扫描目录,结果还真扫出了源代码
在这里插入图片描述
通过审代码我们发现,注册的时候调用了safeKeyword函数,这个函数使我们注册时不能用admin,但是又需要题目要求用ADMIN登录才行
在这里插入图片描述
这里我是正好看了做上一道js题目时收藏的trick
在这里插入图片描述
这就很舒服了,这里也用到了toUppercase,而且ADMIN中的I可以由特殊字符变来,那就注册个admın
在这里插入图片描述
随便输入了一些东西没啥回显,接下来还是接着审代码吧
在这里插入图片描述
这里看到一个clone函数,里面又调用了merge
在这里插入图片描述
emem还是上面那篇小trick里提到的
在这里插入图片描述
显而易见,这里要用到原型污染链

到这里不知道怎么往下做了,看了下赵总的WP,才发现,用到的还是上面用到的trick文章中的东西
在这里插入图片描述
题目这里正好也用到ejs渲染outputFunctionName,漏洞分析的文章是这么说明该漏洞的,还给了RCE代码
在这里插入图片描述
简而言之也就是说,只要我们利用污染连污染了outputFunctionName,那么后面模板渲染的时候他就会执行我们污染时写进去的代码

那我们先正常抓个包
在这里插入图片描述
然后用下上面文章的RCE代码,按照原型污染链的方法,写成json形式,改下Content-Type即可
在这里插入图片描述
把这个包发出去后刷新页面即可得到一个文件,文件里记录着flag

在这里插入图片描述
最后还得推荐下P神的文章学习原型链污染

参考文章:
https://www.cnblogs.com/20175211lyz/p/12659738.html
https://evi0s.com/2019/08/30/expresslodashejs-%e4%bb%8e%e5%8e%9f%e5%9e%8b%e9%93%be%e6%b1%a1%e6%9f%93%e5%88%b0rce/
https://www.leavesongs.com/PENETRATION/javascript-prototype-pollution-attack.html#0x05-code-breaking-2018-thejs
https://www.zhaoj.in/read-6462.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值