BUUCTF Web [GXYCTF2019]Ping Ping Ping

本文阅读 4 分钟
首页 代码,Java 正文

<font color="orange">「作者主页」:</font>士别三日wyx
  此文章已录入专栏<font color="greeg">《网络攻防》</font>,持续更新热门靶场的通关教程
<font color="red">「未知攻,焉知收」</font>,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之九十九的同期选手。

进入连接后是一个「ping」的功能,参数 ip 传递的内容会被当做 ip 地址进行网络连通性测试。 img

        这一关是「命令执行」漏洞,推荐使用「反引号」配合「分号」执行命令查看文件内容

1)多命令执行

根据页面的文本提示,我们尝试传递「参数」 ip,后端会通过命令执行函数去ping参数的内容,可以确定是一个命令执行漏洞,我们使用分号;执行多条命令看一下当前路径下有哪些文件。

img 很明显 flag 就在 falg.php 这个文件里面,但「查看」这个文件的过程并不会很顺利

img

2)绕过空格

提示我们过滤掉了「空格」,这很简单,我们使用 $IFS$9 绕过空格

img

3)绕过flag

成功绕过空格,但 「flag」又被过滤了。上面我们执行ls命令的时候查询出了 flag.php、index.php 这两个文件名,能不能将这个执行结果拿来用一下呢?答案是肯定的,我们可以使用「反引号」,构造的payload如下

?ip=1;cat$IFS$9`ls`

特殊格式 $IFS$9用来绕过空格,执行语句应该是下面这样

?ip=1;cat `ls`

反引号的「优先级」很高,会先执行反引号中的命令,而后在将执行的「结果」结果配合其他命令执行,也就是说,执行的语句时下面这样

?ip=1;cat flag.php index.php

命令执行后会查看这两个文件的内容,从文件的内容中就可以拿到 flag

1)查看当前目录

使用分号;「执行多条语句」,在 url 地址栏中输入以下payload,查看当前目录下的文件

?ip=1;ls

当前目录下有两个文件:flag.php、index.php

img

2)查看文件内容

使用 $IFS$9绕过空格,配合「反引号」的高优先级特性查看 flag.php 文件,payload如下

?ip=1;cat$IFS$9`ls`

文件内容如下

img

3)flag 在注释中

注释中的内容不会直接显示在页面中,右键查看「网页源代码」,获取 flag img

喜欢一个东西首先要先学会<font color="red">「尊重」</font>,虽然网络安全的圈子不乏各种灰产,以及高调宣传自己是黑客的脚本小子,但不可否认,这个圈子仍有不少人保持着<font color="orange">「举世皆浊我独清,众人皆醉我独醒」</font>的心态,努力磨砺技术,提升自身修养,让互联网变得更加安全

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/wangyuxiang946/article/details/121017131
-- 展开阅读全文 --
Redis底层数据结构--跳跃表
« 上一篇 04-28
BUUCTF Web [强网杯 2019]随便注
下一篇 » 06-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复