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

    你可能感兴趣的文章
    Openlayers中多图层遮挡时调整图层上下顺序
    查看>>
    Openlayers中将某个feature置于最上层
    查看>>
    Openlayers中点击地图获取坐标并输出
    查看>>
    Openlayers中设置定时绘制和清理直线图层
    查看>>
    Openlayers图文版实战,vue项目从0到1做基础配置
    查看>>
    Openlayers实战:modifystart、modifyend互动示例
    查看>>
    Openlayers实战:判断共享单车是否在电子围栏内
    查看>>
    Openlayers实战:加载Bing地图
    查看>>
    Openlayers实战:绘制图形,导出geojson文件
    查看>>
    Openlayers实战:绘制图形,导出KML文件
    查看>>
    Openlayers实战:绘制多边形,导出CSV文件
    查看>>
    Openlayers实战:绘制带箭头的线
    查看>>
    Openlayers实战:输入WKT数据,输出GML、Polyline、GeoJSON格式数据
    查看>>
    Openlayers实战:非4326,3857的投影
    查看>>
    Openlayers高级交互(10/20):绘制矩形,截取对应部分的地图并保存
    查看>>
    Openlayers高级交互(11/20):显示带箭头的线段轨迹,箭头居中
    查看>>
    Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
    查看>>
    Openlayers高级交互(15/20):显示海量多边形,10ms加载完成
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
    查看>>