Hackme ping

Hackme ping

打开链接得到源码
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Ping</title>
</head>
<body>
    <form action="." method="GET">
        IP: <input type="text" name="ip"> <input type="submit" value="Ping">
    </form>
    <pre><?php
        $blacklist = [
            'flag', 'cat', 'nc', 'sh', 'cp', 'touch', 'mv', 'rm', 'ps', 'top', 'sleep', 'sed',
            'apt', 'yum', 'curl', 'wget', 'perl', 'python', 'zip', 'tar', 'php', 'ruby', 'kill',
            'passwd', 'shadow', 'root',
            'z',
            'dir', 'dd', 'df', 'du', 'free', 'tempfile', 'touch', 'tee', 'sha', 'x64', 'g',
            'xargs', 'PATH',
            '$0', 'proc',
            '/', '&', '|', '>', '<', ';', '"', '\'', '\\', "\n"
        ];

        set_time_limit(2);

        function ping($ip) {
            global $blacklist;

            if(strlen($ip) > 15) {
                return 'IP toooooo longgggggggggg';
            } else {
                foreach($blacklist as $keyword) {
                    if(strstr($ip, $keyword)) {
                        return "{$keyword} not allowed";
                    }
                }
                $ret = [];
                exec("ping -c 1 \"{$ip}\" 2>&1", $ret);
                return implode("\n", array_slice($ret, 0, 10));
            }
        }

        if(!empty($_GET['ip']))
            echo htmlentities(ping($_GET['ip']));
        else
            highlight_file(__FILE__);
    ?></pre>
</body>
</html>

看到有黑名单,过滤了很多东西 ,但是没有过滤反引号,可以使用?ip=ls

【Linux】: 反引号 “ 的用法
反引号主要用来引用一些函数、命令输出等,执行时系统会尝试将反引号中的内容当作一个命令执行 , 如果在一条命令中出现了反引号,系统会首先执行反引号内的命令
在这里插入图片描述
得到结果
在这里插入图片描述
但是过滤了cat,无法读取文件。这里可以用sort或者tac。过滤了flag,php等关键字,可以用通配符?来匹配。

在这里插入图片描述
在这里插入图片描述
最后得到flag

在这里插入图片描述
sort:
以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。
tac:
tac 是 cat 的反写,功能与 cat 命令刚好相反,cat 是顺序输出文件每一行到屏幕上,tac 是反序输出文件每一行到屏幕上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当我们使用ping命令时,如果对方收到我们发送的数据包并返回给我们一个响应,那么我们就可以说ping通了。但是,即使我们无法ping通对方,也不一定代表网络不通。这是因为ping命令基于ICMP协议,而ICMP协议可以被禁止。如果对方禁止了ICMP协议,即使我们发送了ping请求,对方也不会回应,导致我们显示无法ping通,但实际上我们仍然可以与对方建立连接。\[1\] 当我们在进行项目开发时,经常需要请求后台服务器获取数据。但有时候我们无法获取到数据的原因可能有两种情况。一种是我们的请求方式有问题,即客户端的问题。另一种是后台服务器有问题,其中一种可能是IP地址不正确或者网络连接不通。我们可以使用ping命令来测试是否能够ping通对方的IP地址,如果无法ping通,绝大多数情况是以上两种情况导致的。但也有可能是路由器或者电脑防火墙设置了防ping功能。\[2\] 另外,即使我们无法ping通对方,也不能完全排除对方存在的可能性。有时候对方确实存在,但设置了ICMP数据包过滤,比如防火墙设置。我们可以使用ping -a命令来探测对方,如果能够得到对方的NETBIOS名称,那么说明对方是存在的,并且有防火墙设置。如果无法得到对方的NETBIOS名称,多半是对方不存在、关机或者不在同一网段内。\[3\] #### 引用[.reference_title] - *1* *3* [ping不通 telnet通](https://blog.csdn.net/u011149152/article/details/123693551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MAC ping IP 地址(ping通/ping不通)](https://blog.csdn.net/weixin_28703507/article/details/119318896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值