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 -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
压缩包查看器,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服务器进行操作的权限。