【网路安全---杂乱且简单的记录1】


前言

本文记录了我做题的一些记录。内容比较杂,包含了面试遇到的问题,ctf题目等等。


一、Http1 和Http1.1的区别是什么?

(1)缓存处理:在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略,例如Entity tag,If-Unmodified-Since,If-Match,If-None-Match等更多可供选择的缓存头来控制缓存策略
(2)带宽优化及网络连接的使用:HTTP1.0中,存在一些浪费带宽的现象,例如:客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),方便了开发者自由的选择以便于充分利用带宽和连接
(3)错误通知的管理:在HTTP1.1中新增24个状态响应码,如409(Conflict)表示请求的资源与资源当前状态冲突;410(Gone)表示服务器上的某个资源被永久性的删除
(4)Host 头处理:在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)
(5)长连接:HTTP 1.1支持持久连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,弥补了HTTP1.0每次请求都要创建连接的缺点


二、Linux 下查看进程使用的命令

PS命令是Linux系统下查看系统进程的命令.如:ps -ef
Top命令 - 实时显示Linux下的进程情况 : top
Pstree命令 -》 -a 显示完整命令及参数 -c 重复进程分别显示 -c 显示进程ID、PID -n 按 PID排列进程
Pgrep命令 -》 -l 显示进程名和进程PID -o 进程起始ID -n 进程终止ID


三、Linux修改文件所属用户及所属组命令

chown user1:group1 test.txt -->将文件test.txt的所属用户修改为user1,所属组修改为group1


四、中间件常见漏洞

IIS常见漏洞

1)6.x版本–》默认会将*.asp;.jpg 此种格式的文件名,当成Asp解析 2)6.X版本–>默认会将*.asp/目录下的所有文件当成Asp解析。
3)6.X版本–》llS6.x除了会将扩展名为.asp的文件解析为asp之外,还默认会将扩展名为.asa,.cdx,.cer解析为asp.
4)7.X版本–》在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件.
5)HTTP.SYS远程代码执行漏洞MS15-034 --》 漏洞描述:1.读取内存 2.dos攻击
验证存在漏洞:

curl -v [IP] -H "Host:irrelevant" -H "Range:bytes=0-18446744073709551615"

其实只要发送的请求包包含Range:bytes=0-18446744073709551615就可以看到是否存在整数溢出漏洞。
如果返回包中返回了状态码416 并且Requested Range Not Satisfiable表示存在漏洞。
攻击利用:采用Metasploit(MSF)进行攻击

整数溢出类漏洞原理

如同上面的MS15-034漏洞,整数溢出类漏洞类似:比如最大值为a,最小值为0 。在最大值和最小值之间如果发生以下计算:
a+1=0或者 0-1=a。
此时就称为发生了整数溢出。比如bugku里面的Easy_int题目:Easy_int题目链接中有这么一段代码

  puts("Input your int:");
  __isoc99_scanf("%d", &NUM);
  if ( NUM < 0 )
  {
    NUM = -NUM;
    if ( NUM < 0 )
      vuln();
    puts("No No No!");
  }
  return 0;
}

在里面可以看到需要我们输入一个数字并且程序会对数字取绝对值,但是我们需要到vuln()函数,这个情况如果我们输入一个超过int数值的值的话,就可以绕过程序的判定。比如输入2147483648在通过if(NUM<0) 的判断时会被判定为负数,在通过NUM = -NUM,变成-2147483648转而在通过第二个判定时被判定为正数。

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值