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.conf(Apache2已经支持多站点,因此你的站点配置文件可能在/etc/apache2/conf.d/目录下)。
.htaccess与httpd.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碰撞
这两个值a和b值不同但是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 | 127.0.0.1: |
ssit官方漏洞利用
1 | {% for c in [].__class__.__base__.__subclasses__() %} |
Linux能打开文件的命令
cat由第一行开始显示内容,并将所有内容输出tac从最后一行倒序显示内容,并将所有内容输出more根据窗口大小,一页一页的显示文件内容less和more相似,但其优点可以往前翻页,并且进行可以搜索字符(使用q或者ctrl+z退出,j下一行,k上一行)head只显示头几行tail只显示最后几行nl类似于cat -n,显示时输出行号tailf类似于tail -fsed使用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.txtcurl使用file:///xxx/xxx.txt可读取文件bzmore查看bzip2压缩过的文本文件的内容bzless是增强.bz2压缩包查看器,bzless比bzmore命令功能更强大
两个==和三个===的区别
==两边值类型不同的时候,要先进行类型转换,再比较。所以在
==双等号的比较中以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服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
管道符
系统支持的管道符如下(Linux和windows一样):
;:执行完前面的语句再执行后面的语句。|:显示后面语句的执行结果。||:当前面的语句执行出错时,执行后面的语句。&:两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。&&:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。
禁用了
;,|,&可以使用换行符的url编码(%0a)来绕过(相当于直接执行下一题命令)。禁用空格(
%20)可以使用制表符(tab)的url编码%09来绕过。禁用了
/可以先用cd进入文件。
Exp、PoC、Webshell和payload的区分
PoC(全称: Proof of Concept): 一般是我们对于漏洞的判断,即目标系统是否存在漏洞。
Exp(全称: Exploit,漏洞利用程序): 对已知或已发现的漏洞进行利用。
payload(意为“攻击载荷”): 攻击载荷是我们期望目标系统在被渗透攻击之后去执行的代码。
Webshell就是一个脚本,是以asp、php、jsp或者cgi等网页文件形式存在的,可以对web服务器进行操作的权限。