博客
关于我
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

    你可能感兴趣的文章
    QT点击"X"按钮,调用closeEvent()函数来实现调用特定事件(附:粗略介绍QT的信号与槽的使用方法)...
    查看>>
    QT样式表——url路径
    查看>>
    QT数据库(三):QSqlQuery使用
    查看>>
    QT教程5:消息框
    查看>>
    SpringBoot中集成阿里开源缓存访问框架JetCache实现声明式实例和方法缓存
    查看>>
    pom.xml中提示web.xml is missing and <failonmissingw>...
    查看>>
    Pomelo开发中Web客户端开发API简介
    查看>>
    QT教程2:QT5的体系构架
    查看>>
    PON架构(全光网络)
    查看>>
    PoolingHttpClientConnectionManager原理剖析
    查看>>
    QT教程1:ubuntu18.04安装QT5
    查看>>
    POP-一个点击带有放大还原的动画效果
    查看>>
    POP3 协议在计算机网络中的优缺点
    查看>>
    qt批量操作同类型控件
    查看>>
    Portaudio笔记-WASAPI
    查看>>
    position:fixed失效情况
    查看>>
    Qt开发笔记:QGLWidget、QOpenGLWidget详解及区别
    查看>>
    Position属性四个值:static、fixed、absolute和relative的区别和用法
    查看>>
    POSIX thread编程中关于临界区内条件变量的分析
    查看>>
    POSIX与程序可移植性
    查看>>