杂到不知道该取什么标题

毫无方向之CTF小白入门的艰难之路……

Posted by 许大仙 on September 26, 2017

理论扩充1

疑问索引:一块500G的硬盘可以放多少空文件夹?可以放多少个并列的。。又可以放多少个嵌套的呢?二者有木有区别?

了解文件存储情况

首先window系统中

  • 1.文件夹名、文件名,是存在硬盘分区的文件分配表里。
  • 2.文件分配表,是用来记录文件存储位置的。
  • 3.即使0字节的文件,也占用1簇的磁盘空间。(空文件夹也需要占用磁盘空间的)

如果你以512字节为一簇(这个在windows系统的格式化菜单里面能看到),那么一个文件是1字节,那它在磁盘中也占用1簇大小,即512字节。如果一个文件是515字节,那么它在磁盘中将占用2簇大小,即1024字节。(文件存储以整簇为单位,多一个字节就进第二个簇)

其次,linux系统中有些不同

在linux中则有“块block”(由八个连续的最小存储单元“扇区组成)”和inodes的概念。 inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。

  • block是数据区,存放文件数据;
  • 另一个是inode区(inode table,索引节点,用于储存文件的元信息),存放inode所包含的信息。

实际问题:在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。 后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。

查找原因:/data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。

详细的解读可以戳这里

文件存放的有限性

总之,不管你采用什么操作系统 一个硬盘的簇(块)是有限的,不可以创建无数个空文件,即使磁盘属性里还有可用空间,但是你已经不能再放文件了,因为磁盘属性里可用空间统计的是文件总占用字节和磁盘总字节数,它不会理会你磁盘有多少个簇(块)的。

不同系统可存储的空文件数量不同

这个数量根据所采用的文件系统的不同而不同,这里举几个例子:

  1. 传统的FAT32文件系统:一个分区最大文件数量为2.7亿,每个目录下包含的文件(包括目录和普通文件)最多为65534个。
  2. Windows的NTFS文件系统:一个分区最大文件数量为43亿,每个目录下包含的文件(包括目录和普通文件)最多也是43亿,也就是说嵌套不嵌套对这个限制没有影响。
  3. Mac的HFS+文件系统:一个分区最大文件数量为43亿,每个目录下包含的文件(包括目录和普通文件)数量限制没查到,应该也是43亿。

理论扩充2:E-mail Bomber

概念

电子邮件炸弹是最古老的匿名攻击之一,通过设置一台机器不断的大量的向同一地址发送电子邮件,攻击者能够耗尽接受者网络的宽带。由于这种攻击方式简单易用,也有很多发匿名邮件的工具,而且只要对方获悉你的电子邮件地址就可以进行攻击,所以这是大家最值得防范的一个攻击手段。

而所谓的电子邮件炸弹,其工作过程与炸弹也是一样的,只不过是用电子邮件来代替炸弹而已,具体指的是电子邮件的发送者,利用某些特殊的电子邮件软件,在很短时间内连续不断地将大容量的电子邮件邮寄给同一个收信人,而一般收信人的邮箱容量是有限的,在这些数以千计的大容量信件面前肯定是不堪重负,而最终“爆炸身亡”。

有些人往往会把电子邮件炸弹与邮件Spaming混淆,其实这两者实质不尽相同。Spaming指的是发件者在同一时间内将同一电子邮件寄出给千万个不同的用户(或寄到新闻组),主要是一些公司用来宣传其产品的广告方式,这种方式一般不会对收件人造成太大的伤害。

危害

电子邮件炸弹之所以可怕,是因为它可以大量消耗网络资源,常常导致网络塞车,使大量的用户不能正常地工作。通常,因特网服务商给一般的网络用户的信箱容量都是很有限的,最多是10MB左右的空间,而在这有限的空间中,你除了让它处理电子邮件之外,还得用它来存储一些下载下来的软件,或者是存储一些自己喜欢的网页内容。如果用户在短时间内收到上千上万封电子邮件,而每个电子邮件的容量也比较大,那么经过一轮邮件炸弹轰炸后的电子邮件的总容量很容易就把用户有限的阵地挤垮。如果是这样的话,用户的电子邮箱中将没有任何多余的空间接纳其他的邮件,那么其他人寄给用户的电子邮件将会被丢失或者被退回,这时用户的邮箱已经失去了作用;另外一方面,这些电子邮件炸弹所携带的大容量信息不断在网络上来回传输,很容易堵塞带宽并不富裕的传输信道;而且你的网络接入服务提供者需要不停地忙着处理你大量的电子邮件的来往交通,这样会加重服务器的工作强度,减缓了处理其他用户的电子邮件的速度,从而导致了整个过程的延迟。如果网络接入服务提供者承受不了这样的疲劳工作,网络随时也都会瘫痪,严重的可能会引发整个网络系统崩溃。

理论扩充3之POP协议

邮局协议(Post Office Protocol,简称POP)是TCP/IP协议族中的一员,由RFC 1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。最新版本为POP3,全名“Post Office Protocol - Version 3”,而提供了SSL加密的POP3协议被称为POP3S。

POP支持离线邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或MAC。一旦邮件发送到PC机或MAC上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。

在发送方(客户端)和接收方(服务器)间创建连接之后,接下来是一个合法的POP3会话。在多数计算机系统上,可以在发送的机器上使用telnet命令来创建连接。

比如: telnet www.example.com 110

它打开一个从发送的机器到主机www.example.com的POP3连接。

具体可参看维基百科之邮局协议