服务端白名单绕过
MIME类型检测绕过
Upload-labs(Pass-02)第二关通过服务端对数据包的MIME进行检查 通过burp修改Content-Type类型
将content-type修改为image/png
上传成功
%00截断绕过
%00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串 时,都是以\0(即0x00)作为字符串的结尾。操作系统在识别字符串时,当读取到\0字符时,就认为读 取到了一个字符串的结束符号。因此,我们可以通过修改数据包,插入\0(%00或者00)字符的方式, 达到字符串截断的目的。 在url中%00表示ASCll码中的0,而0作为特殊字符保留,表示字符结束。当url中出现%00时就认为读取 已结束,而忽略后面上传的文件或者图片,只上传截断前的文件。
举例:http://www.XXX.com/upload/aaa.php%00bbb.jpg 由于%00有截断功能,服务器在接收的时候,就直接对url编码(即%00)进行解码,然后再去接收文 件,这时候后面的bbb.jpg被截断掉,文件名就变成了aaa.php,所以最后服务器接收到的文件名是 aaa.php。
截断原理: 就是利用0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进 行截断,而后面的内容又可以帮助我们绕过检测。 00截断通常用来绕过web的白名单限制。Upload-labs(Pass-12)看代码可以得知是一个白名单,只允 许上传'jpg','png','gif'格式的文件。但是上传路径是可以控制的,可以使用%00进行截断。 截断条件: 1、php版本小于5.3.4 2、php.ini的magic_quotes_gpc为OFF状态
因为我的docker环境不满足实验条件,所以我在windows系统中搭建环境,选择php版本为5.2,打开php.ini 文件,设置 magic_quotes_gpc = OFF
在新环境中的Upload-labs(Pass-11)进行操作
进行文件上传: 修改PHP文件后缀为png save_path 后增加文件名 1.php%00
访问1.php成功文章来源地址https://www.toymoban.com/news/detail-502572.html
上述%00绕过方式为get型的
下面我们来演示以下post型
新环境中的Upload-labs(Pass-12)
抓包修改
但是这个地方有个点需要注意,就是post型不会对%00自动编码,所以需要我们手动编码文章来源:https://www.toymoban.com/news/detail-502572.html
访问1.php成功
到了这里,关于上传验证绕过——服务端白名单绕过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!