代码审计day9

 · 2020-3-25  ·次阅读


文件上传绕过

服务端:

1.黑白名单过滤

2.修改MIME类型

3.截断上传攻击

4..htaccess文件攻击

5.目录验证

目录穿越

目录穿越(Directory Traversal)攻击是黑客能够在Web应用程序所在的根目录以外的文件夹上,任意地存取被限制的文件夹、执行命令或查找数据。目录穿越攻击,也有人称为Path Traversal攻击。

绕过

进行URL编码

进行16位Unicode编码

进行双倍URL编码

进行超长UTF-8 Unicode编码

文件包含

文件包含漏洞的产生原因是在通过引入文件时,引用的文件名用户可控,由于传入的文件名没有经过合理的校验,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。当被包含的文件在服务器本地时,就形成的本地文件包含漏洞,被包涵的文件在第三方服务是,就形成了远程文件包含漏洞。

模块加载、cache调用,传入的参数拼接包含路径

include()
使用此函数,只有代码执行到此函数时才将文件包含进来,发生错误时只警告并继续执行。

inclue_once0
功能和前者一样,区别在于当重复调用同- -文件时,程序只调用一次。

require()
使用此函数,只要程序执行,立即调用此函数包含文件,发生错误时,会输出错误信息并
立即终止程序。

require_once()
功能和前者一样,区别在于当重复调用同一文件时,程序只调用一次。

远程包含利用方式

QQ截图20200325223345

任意文件读取及删除

文件读取

QQ截图20200325224125

文件删除

unlike()