[SUCTF 2018]annonymous

[SUCTF 2018]annonymous
在这里插入图片描述
这题代码很少,就这几行
首先创建了一个匿名函数,会输出flag
接着openssl_random_pseudo_bytes(32)生成一个随机数,然后将其转成了十六进制,将其赋值给$hash
接着SUCTF_和hash拼接成一个新的函数名,函数会执行上面构造的匿名函数
所以,要想获得flag就只有两种办法,直接执行匿名函数,或者执行SUCTF_和hash拼接成的新函数

下面的func_name可以传一个函数名进去并执行该函数
在这里插入图片描述
这题最初想着直接传$MY进去看能不能执行,结果不可以,那就只能执行下面那个函数名拼接的函数了,但是这样的话我们首先得破解它所生成的随机数,搜了很久都没有找到办法,这个好像是不可破解的。

转回去找create_function函数的问题,发现一般都是利用它进行代码注入,但这里明显不行。

后来看了别的大佬的WP才知道
create_function()这个函数的漏洞,他create之后会自动生成一个函数名为%00lambda_[0-999],后面的数字会逐步递增
在这里插入图片描述
create_function是返回函数名称的,函数返回一个唯一的字符串函数名, 出现错误的话则返回FALSE。

这么说这个函数也只是动态的创建了一个函数,而这个函数是有函数名的,也就是说,其实这并不是匿名的。 只是创建了一个全局唯一的函数而已。
详细的可以看看这篇使用create_function()创建"匿名"函数

这道题中因为我们不知道前面有多少个匿名函数,所以得通过遍历数字来爆破,执行该函数
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值