------已搬运-------PHP反序列化之SEESSION反序列化(二):切入学习点:jarvis OJ PHPINFO

本文详细讲述了如何通过PHP的upload_process机制在反序列化过程中利用文件上传实现代码执行漏洞,涉及phpinfo分析、session引擎转换和payload构造。

伙伴们有什么疑问, 或者我写的有什么纰漏可以和我说呀,评论或者私信都是可以的。相互交流。学的更快!!!

第一次写博客,,慌得很,先看源码压压惊吧 ( ̄_ ̄|||)
在这里插入图片描述

分析一波:

是一道反序列化的题,然后从ini_set能够看出来是包含session的类型,但是又不同于最最基础的那种session反序列化的题目。(这个先这样,,等我做做那种题目之后再来修改一下。。。)
这个题没有接收SESSION变量,那么就属于这个类型

没有$_SESSION变量赋值的题题

在PHP中有一个upload_process机制,会自动在$_SESSION中创建一个键值对,这个值刚好是我们用户可以控制的那部分,可以看下官方的描述
在这里插入图片描述讲真的,我没看明白。但是我找到了他的名字,学工程的嘛,会用就行(找台阶)

在这里插入图片描述当我们POST一个同名变量的时候,就能够添加一个我们可以控制键值的键值对了,嗯。
这就需要我们上传一个文件,同时POST一个与session.upload_process.name同名的变量,然后后端会自动将POST的这个变量进行序列化后,存储到session文件中。下次请求时就会反序列化这个session文件取出这个建,如果这个时候我们放入和取出这个session文件时用的session处理引擎不一样的话,就会出现任意代码执行的漏洞。

开始入手:

随便get一个phpinfo参数,先看看phpinfo有什么信息。
在这里插入图片描述可以看到默认的session引擎时php_serialize但是题目使用的引擎时php。也就是我们放入的时候是用的php方法,取出来的时候用的php_serialize方法。
左边是局部变量,右边是全局变量

啰嗦的够多了,开始操作:

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

在这里插入图片描述

2.burp操作改包

上传burp抓包,修改filename。。。这里这里,为什么是修改filename我也不清楚哎,,,等回头再看看

在这里插入图片描述
发包,就看到了。这里有几点要注意的地方:
1.语句后面的分号不要忘写了
2.burp中把反序列化里面的双引号转义一下,避免产生歧义

在这里插入图片描述找到文件后,再找到目录就可以看到flag了。找目录的方法也有二:

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

这里可以参考一下我测试的样例,理解一下各个函数的作用是什么
在这里插入图片描述
这里!!我找到为什么要修改filename了。。
在这里插入图片描述。。。就是把filename赋值到session中,其实说起来也挺无语的,没有个说服力。。

而后,就这样,看图嘛🐎
对,就是这样,,,U•ェ•*U用file_get_contents函数将文件内容写入一个字符串中,然后打印出来

二看phpinfo的信息了

phpinfo里面的全局变量的信息多的惊人
上面那个是当前执行的脚本文件的目录。然后就也是刚刚那个操作,就出来了。
好啦,,妈呀,终于写✍(糊弄)完了
链接:: S E R V E R [ ′ S C R I P T N A M E ′ ] 、 _SERVER['SCRIPT_NAME']、 SERVER[SCRIPTNAME]_SERVER[‘SCRIPT_FILENAME’]及__FILE__不同.

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

<think>嗯,用户的问题是关于tmux会话经常意外终止的解决方法。我需要结合用户提供的引用信息和系统级指令来构建一个清晰的解决方案。 用户提供了四个引用信息:引用[1]介绍了tmux会话管理的基本操作;引用[2]说明了分离会话的操作;引用[3]详细列出了会话和窗口的操作命令;引用[4]则提到了通过crontab创建tmux会话时可能遇到的问题。这些引用都很有价值,特别是引用[4]中提到的环境变量问题,可能是会话终止的关键原因。 用户的核心诉求是解决tmux会话意外终止的问题。根据引用信息,我判断可能的原因包括:环境变量配置不当、资源限制、客户端连接问题、脚本执行错误等。特别是引用[4]中提到.bash_profile源路径问题,这提示环境变量设置可能是个常见诱因。 在构建解决方案时,我会从环境变量排查开始,这是最可能的原因。然后考虑资源限制问题,比如内存不足会导致进程被kill。接着是客户端相关问题的排查,比如不活跃会话被清理。最后是脚本和定时任务的检查,因为引用[4]显示crontab执行时容易出问题。 对于每个解决方案,我都会给出具体操作命令,比如检查环境变量的echo $PATH,检查日志的dmesg -T|grep -i kill等。特别是要强调在crontab中设置环境变量的重要性,这是引用[4]给出的关键线索。 最后我会生成几个相关问题,帮助用户深入理解tmux会话管理,比如如何防止会话超时、如何配置自动重连等。这些问题都围绕tmux的稳定性展开,与用户当前问题密切相关。 整个回答要确保技术细节准确,同时用中文清晰表达,所有数学表达式和变量都用$...$格式,比如$HOME/.bashrc这样的路径表示。</think>根据引用信息和常见问题排查,tmux会话意外终止的可能原因及解决方案如下: --- ### 一、环境变量问题(最常见原因) 1. **检查环境加载** 在`~/.tmux.conf`中显式加载环境变量: ```bash set-option -g default-shell /bin/bash # 指定Shell set-option -g default-command "exec /bin/bash --login" # 加载登录环境 ``` 2. **在创建会话时指定环境** ```bash tmux new-session -s mysession -c $HOME "source ~/.bashrc; your_command" ``` --- ### 、资源限制导致终止 1. **检查系统日志** ```bash dmesg -T | grep -i "oom\|kill" # 查看内存溢出记录 journalctl -b -p err # 检查系统级错误日志 ``` 2. **调整资源限制** 在`~/.bashrc`中添加: ```bash ulimit -c unlimited # 开启coredump ulimit -s 8192 # 增加栈大小 ``` --- ### 三、客户端/网络问题 1. **防止会话超时** 在`~/.tmux.conf`中配置: ```bash set -g focus-events on # 启用焦事件检测 set -g status-interval 60 # 状态栏刷新间隔(秒) set -g remain-on-exit on # 窗口退出后保留(需tmux 3.2+) ``` 2. **自动重连机制** 使用脚本监控会话: ```bash #!/bin/bash while true; do tmux has-session -t mysession 2>/dev/null || tmux new-session -d -s mysession "your_command" sleep 60 done ``` --- ### 四、脚本/定时任务问题 1. **Crontab中显式加载环境** 在crontab任务开头声明: ```bash SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin * * * * * source $HOME/.bashrc; tmux new-session -d -s task "your_command" ``` 2. **避免会话冲突** 创建前检查会话是否存在: ```bash tmux kill-session -t mysession 2>/dev/null; tmux new-session -d -s mysession ``` --- ### 五、深度排查方法 1. **启用tmux日志** ```bash tmux -vvv new-session > tmux.log 2>&1 # 创建带详细日志的会话 ``` 2. **检查信号中断** 在脚本开头捕获信号: ```bash trap 'echo "EXIT on signal: $?" >> /tmp/tmux_debug.log' EXIT ``` > **关键建议**:优先检查$HOME/.bashrc、$HOME/.profile中的环境变量设置,特别是PATH和LD_LIBRARY_PATH。引用[4]表明环境加载失败是crontab创建会话失败的常见原因[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值