python教程判断一下一个 IP 在不在线?ping IP教程
发布时间:2023-08-16 21:54:31
假设今天老板给我们一个任务,让我们判断一下一个 IP 在不在线。我们随手用 python 写一个 ping IP 的代码:
import oshost = input('请输入要检测的 IP : ')result = os.popen('ping -c 1 -t 1 %s' % (host)).read()if 'ttl' in result: print('IP 在线')else: print('IP 不在线')
现在,你作为一名审核代码的人员,不考虑代码整体结构问题,不考虑为什么写这段代码的程序员用ping,用popen,你能看出什么问题吗?
如果看不出的话,想两个问题:
popen 的本质是什么?如果你不知道或者没有用过popen,试着不要去查,猜一下这个函数的作用。
在这段程序中,popen 要执行的命令是什么?
既然 popen 后面执行的语句中的 host 变量是由用户输入的,那恶意用户是不是可以输入一个localhost && whoami 呢?这样 popen 执行的代码就变成了 ping -c 1 -t 1 localhost && whoami。注意,就算上述例子中没有将运行结果直接打印出来,但没打印出来并不代表代码没有运行。例如如果我直接输入 host 为 localhost && whoami的话,输出结果还是 IP 存在, 但这并不代表 whoami 命令没有运行,我们依旧可以建立一个 Reverse Shell。为了验证结果,我们在代码里面让 result 被打印出来。
这一项技巧叫做 命令注入(Command Injection),普通的程序员如果不是遇到了这类问题,应该是不会接触到这项技巧的,看见上面的漏洞代码也会觉得没什么问题,最多觉得有点不顺眼,但能第一时间反应出有安全漏洞的是占少数的。
这项技巧听起来好像很简单,比逆向,提权那些简单很多,但这项技巧是富有创造性的,下限很低,上限很高。
比如我们现在知道了存在上面这个问题,那么在输入阶段把一些关键字过滤一下总可以了吧。在这个问题中,我们想让用户输入的是一个 IP ,那就直接过滤掉空格吧,正常 IP 里面总不可能有空格吧。
再把 &, ;, -,||,| 也过滤掉吧,万无一失。
import os host = input('请输入要检测的 IP : ') forbidden = ['&', ';', '-', ' ', '||', '|'] for i in forbidden: if i in host: print('Catch you') exit() result = os.popen('ping -c 1 -t 1 %s' % (host)).read() if 'ttl' in result: print('IP 在线') else: print('IP 不在线')
真的万无一失吗?
我们在 /tmp 目录下新建一个 exp.sh, 在里面输入我们想执行的命令,在这个例子中我们输入 whoami。然后 chmod +x exp.sh 赋予执行权限,再通过 $(./exp.sh) 就可以绕过黑名单过滤了。
这是一个非常简单的例子,但却可以说明黑客比程序员高在什么地方。我认为高在对漏洞的敏感程度和创造力上。提高漏洞的敏感程度需要花大量的时间在 CVE ,黑客论坛等地方,而提高创造力则完全只能靠天赋和运气了。
也许你会觉得对于上面这个例子,你有很多种办法可以避免。首先我承认这个例子是我临时想的,很不好,但也请注意我的这个例子非常简单且不成熟。在现实的红蓝战场上,以 SQL 注入为例,都那么多年了,能完全避免的了吗?记得今年年初暗网暴露的 Collection 数据库集合,1000g 的各种被注入的数据库,涉及全球各种论坛,甚至包括某些银行,某些人口统计局,某些政府机构。代码思路是有限的,创造力是无限的。


猜你喜欢
- excel怎么加页眉页脚?在整个excel表格中添加页眉页脚,可以让文件的区域分隔显得更清晰,而且对后续的添加内容也有帮助,那要怎么进行设置
- 大家在使用excel的时候经常会遇见这样的经理,就是我们在编辑一个很长时间不用的excel表格时,经常会将含有公式的单元格删除和覆盖,最后弄
- 用WPS演示强大的触发器功能可能实现幻灯片相关对象的随机显示,这一点不容置疑。其实,利用触发器,再配合自定义动画的相关功能,那么不仅可以实现
- Word文档中的艺术字体美观大方,字体样式种类也比较多,很多人在美化文档的时候都会选择为文档标题或内容设置艺术字体,今天我们一起来学习在Wo
- WPS中Excel怎么安装使用宏插件?wps中使用excel表格的时候,发现没有宏功能,该怎么办呢?下面我们就来看看给wps安装宏插件的教程
- 最近有Win11系统用户发现自己每次重启电脑后,桌面就全部还原了,导致很多东西都找不到,非常影响工作。那这个问题该如何解决呢?下面就和小编一
- 我们在使用微软系统的时候难免会遇到本地网络没有连接的情况,哪怕是升级到Win11系统也不例外,但遇到这种情况的时候有不知道要如何去解决,那么
- 我们在使用WPS文字编辑文稿的时候,可能经常要用到分栏,那么怎样在WPS文字中实现分栏的效果呢?下面就让小编告诉你在wps文字中怎样实现分栏
- “家人共享”是什么?“家人共享”可让最多六位家庭成员轻松共享 iTunes、Apple Books 和 App Store 购买项目、App
- Win10系统可以说是最常用的系统之一,在使用Win10系统的过程中总会遇到一些的问题,例如有的小伙伴就碰到了蓝牙图标不见的情况,那么碰到这
- 如何修复Mac上蓝牙连接问题?一起来看看在 Mac 上修复蓝牙连接问题的提示和技巧吧。1.软件更新、重启、取消配对您可能已经尝试过这些步骤,
- 在工作中,我们经常遇到需要从一个excel表格,查看另一个excel表格中的内容,虽然并排的方法能够解决些问题,但没有从根本上改变整个窗口过
- 微软刚刚推送了Windows 10 Build 14946快速版系统,在带来史上最强手势支持和更人性化的Wi-Fi设置之外,还修复了不少已知
- 这篇文章主要为大家详细介绍了win7 64位系统关闭窗口半透明玻璃效果的方法,感兴趣的小伙伴们可以参考一下对于正在使用win7系统的用户来说
- Win11系统怎么快速关闭所有广告推荐?最近有用户询问这个问题,Win11系统中,多了很多的个性化推荐内容,有些用户不喜欢,想要关闭,那么怎
- 用WPS演示制作的幻灯片,其优点是开放性好、简单易学和功能齐全;幻灯片里面不可避免的会有很多文本框,用于插入文字说明。有时候在设计中需要把文
- 万能网卡驱动是比较好用的一个软件,这里为大家提供海量的驱动应用,实时更新,但是有很多的小伙伴下载了不知道怎么使用,下面就让小编来告诉大家万能
- NGP游戏平台是网易游戏倩女幽魂的PC端登入器,里面蕴含着多种游戏辅助工具,可以帮助玩家轻松解决各种游戏难题。有用户发现在系统设置当中有个默
- 我们知道很多原因引起的黑屏故障,但一定很少听说因为显卡驱动导致黑屏的发生。近日,有用户说安装完显卡驱动后,win8系统就黑屏了。这是怎么回事
- 要说“搜狗浏览器”中最让人不满的地方,相信不少网友都会投该浏览器页面最下面的“搜狗搜索热搜”一票,毕竟其中经常出现一些用户曾经搜索过的或相关