博客
关于我
PHP反序列化之SEESSION反序列化(二):切入学习点:jarvis OJ PHPINFO
阅读量:381 次
发布时间:2019-03-05

本文共 690 字,大约阅读时间需要 2 分钟。

PHP反序列化之SESSION反序列化:切入学习点:jarvisoj的phpinfo

分析一波

这一题属于没有接收$_SESSION变量赋值的类型。在PHP中,有一个upload_process机制会自动在$_SESSION中创建一个键值对,这个值刚好是我们用户可以控制的那部分。

开始入手

随便get一个phpinfo参数,先看看phpinfo有什么信息。可以看到默认的session引擎时php_serialize,但是题目使用的引擎时php。也就是说,我们放入的时候是用的php方法,取出来的时候用的php_serialize方法。

1. 上传一个网页,POST那个同名的参数

这里可以参考一下我测试的样例,理解一下各个函数的作用是什么。然后,使用Burp操作改包,修改filename,这里为什么是修改filename我也不清楚,等回头再看看。

2. Burp操作改包

发包,就看到了。这里有几点要注意的地方:

  • 语句后面的分号不要忘写了
  • Burp中把反序列化里面的双引号转义一下,避免产生歧义
  • 找到文件后,再找到目录就可以看到flag了。找目录的方法也有二

    一:用语句查询的方法来找

    可以看到当前执行的脚本文件的目录。然后就也是刚刚那个操作,就出来了。

    二:用file_get_contents函数将文件内容写入一个字符串中,然后打印出来

    phpinfo里面的全局变量的信息多的惊人

    上面那个是当前执行的脚本文件的目录。然后就也是刚刚那个操作,就出来了。

    好啦,终于写完了

    参考:https://www.cnblogs.com/zzjdbk/p/12995217.html

    你可能感兴趣的文章
    Pythonargparse中的多个参数
    查看>>
    Python关于 *args 和 **kwargs 参数的详解(全)
    查看>>
    Pythonfrozenset散列算法/实现
    查看>>
    PythonGTK+3:通过单击列对树视图进行排序
    查看>>
    pythonnumpy生成二进制流_python/numpy生成的二进制文件,由C读取
    查看>>
    pythonsign函数_对python函数签名的方法详解 用python怎么写一个自签名证书
    查看>>
    PythonStudy
    查看>>
    Pythons__IMPORT__未按预期工作
    查看>>
    Pythont通过request以及BeautifulSoup爬取几千条情话
    查看>>
    pythonweb django的学习
    查看>>
    pythonweb网站开发基础django安装
    查看>>
    pythonweb网站开发基础创建django项目
    查看>>
    pythonweb网站开发基础添加应用
    查看>>
    Python_015 多线程
    查看>>
    python_73_pickle序列化(接72)
    查看>>
    python_code_418
    查看>>
    python_day10 协程 GEVENT
    查看>>
    python_day1作业
    查看>>
    Python接口自动化测试必备基础之http协议详解!
    查看>>
    python_IDE开发环境使用_建立Python源文件---python工作笔记011
    查看>>