仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 555|回复: 9
打印 上一主题 下一主题

[其他Linux] Linux设计Linux不为人知的平安毛病:不要将输入内容管道给你的shell仓酷云 ...

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:21:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
系统做了些什么,这需要时间去掌握,(背命令不是一件好的学习方法,相信我你一定会在你背完之前全部忘光),尽量掌握常用命令;
将wget或curl输入的内容管道给bash大概sh是一件十分愚昧的事,比方像上面如许:
1
wget-O-http://example.com/install.sh|sudosh

命令注释:wget的-O参数是指明输入文件名,一样平常前面接详细的文件名,这里接“-”暗示“writtentostdout”即写进到尺度输入而不保留在当地磁盘,然后将尺度输入里的内容作为输出传送给sudosh命令。
到处可见如许的例子。偶然候它们也告知你疏忽证书(看看Salt),这些操纵都是大名鼎鼎的。
我以为其大名鼎鼎(而不是在你呆板上运转恣意命令,基于用户代办署理来棍骗你)的次要缘故原由是其失利形式(failuremode)。
假如毗连半途封闭了会产生甚么?让我们来一同见证吧!
1
(echo-n"echo"Hello"";cat)|nc-l-p5555

命令注释:
(1)echo的-n参数指明不在输入开头增加“rn”举动,即不显式增加换行符(默许是增加的);
(2)cat命令只要碰到换行符才会停止,不然一向处于挂起形态,直到碰到换行符停止;
(3)nc命令是收集检测工具,详细用法请Google,这里-l指处于监听形式,-p5555暗示在5555号端口处监听。
这将给毗连端发送一条命令,可是并没有发送换行符,因而它会一向处于挂起形态。让我们毗连此客户端:
1
nclocalhost5555|sh

一入手下手,甚么也不会产生。很好!假如我们用kill-9命令强迫杀失落正在监听的netcat会产生甚么呢?sh命令会实行其缓冲区里的部分命令吗?
1
2
nclocalhost5555|sh
Hello

历程申明:
(1)怎样杀失落正在监听的netcat?
起首用ps-auf|grepnc命令找到“(echo-n"echo"Hello"";cat)|nc-l-p5555”该监服从令的历程pid,然后kill-9该pid便可杀失落。
(2)“Hello”是杀失落nc监听历程后毗连客户端方的输入了局,怎样输入的?
毗连半途封闭后,“(echo-n"echo"Hello"";cat)|nc-l-p5555”命令里的管道输出“(echo-n"echo"Hello"")”会被存进一时缓冲区内,此时毗连方“nclocalhost5555|sh”中的“nclocalhost5555”会吸收该缓冲区的内容,也就是此时毗连方的命令会酿成:
1
(echo-n"echo"Hello"")|sh

固然输入Hello了。
从下面能够看出,真的实行了,如果换作wget或curl命令又会怎样呢?
1
2
3
4
5
6
7
8
9
10
11
12
13
wget-O-http://localhost:5555|sh
--2013-10-3116:22:38--http://localhost:5555/
Resolvinglocalhost(localhost)...127.0.0.1
Connectingtolocalhost(localhost)|127.0.0.1|:5555...connected.
HTTPrequestsent,awaitingresponse...200Noheaders,assumingHTTP/0.9
Length:unspecified
Savingto:`STDOUT
[<=>]12--.-K/sin8.6s
2013-10-3116:22:47(1.40B/s)-writtentostdout[12]
Hello


系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho
老尸 该用户已被删除
沙发
发表于 2015-1-20 20:57:30 | 只看该作者
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
莫相离 该用户已被删除
板凳
发表于 2015-1-30 05:09:50 | 只看该作者
老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。
小妖女 该用户已被删除
地板
发表于 2015-1-30 21:09:54 | 只看该作者
应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-4 20:46:00 | 只看该作者
感谢老师和同学们在学习上对我的帮助。
爱飞 该用户已被删除
6#
发表于 2015-2-10 08:26:51 | 只看该作者
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-1 04:41:50 | 只看该作者
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
飘灵儿 该用户已被删除
8#
发表于 2015-3-10 12:44:11 | 只看该作者
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
不帅 该用户已被删除
9#
发表于 2015-3-13 09:19:06 | 只看该作者
用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
乐观 该用户已被删除
10#
发表于 2015-3-20 18:30:34 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-3-14 03:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表