掌控安全Web安全微专业笔记 (20)

image-20201026225609676

image-20201026225713931

二、客户端和服务端检测

客户端校验:一般是在网页上写一段Js脚本,用Js去检测,校验上传文件的后缀名,有白名单也有黑名单。
判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,可以通过抓包来判断,如果弹出不准上传,但是没有抓到数据包,那么就是前端验证

前端验证非常不可靠,传正常文件改数据包就可以绕过,甚至关闭JS都可以尝试绕过

黑白名单机制:
黑名单:不允许上传什么
白名单:只允许上传什么
白名单比黑名单更安全

服务端检测几个常见的手段:
检查Content-Type (内容类型)
检查后缀 (检查后缀是主流)
检查文件头

图片马

图片马可以绕过Content-Type (内容类型)和文件头检测

图片马的制作很简单,写一个一句话木马放在txt文件然后找一张你喜欢的图片(注意文件大小,越小越好)

然后打开cmd copy a.jpg/b + 1.txt 123.jpg (将a.jpg和1.txt 合并为123.jpg (注:这个是效果))

三、靶场大闯关

Pass-01:前端检测

文件类型,将一句话木马保存成1.jpg格式,选择1.jpg文件,用burp拦截数据包,讲文件类型改成php

image-20201025202731808

Pass-02:Content-Type方式绕过

此题为后端检测,上传1.php文件用burp拦截请求,将Content-Type改成image/jpeg

image-20201026235303732

image-20201026234936570

Pass-03:黑名单绕过

由于没有过滤不严谨,.php3,.php4,.php5,.phtml 都是会被解析为php的,可以直接上传php3文件

Pass-04:.htaccess文件绕过

.htaccess文件也被成为分布式配置文件,提供了针对目录改变配置的方法,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

先上传含一句话木马的1.jpg,在上传.htaccess文件使1.jpg文件按照php解析(新建1.txt 内容为AddType application/x-httpd-php .jpg ,用命令行将重命名ren 1.txt .htaccess)

image-20201027001711225

Pass-05:大小写绕过

$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");

WEB容器除非非常老的版本,不然都不区分大小写

将文件命名成1.PHp就可以上传

Pass-06:文件后缀(空)绕过

在文件名后面留一个空格,然后上传上去后空格会被自动的省略,但是看源码可知道,源码中黑名单中没有过滤空值,那么php和php ,当然是不一样的

将文件命名成"1.php " 就可以上传,windows的需要burp修改数据包

Pass-07: 文件后缀(点)绕过

windows有一个特性,会自动去掉后缀名最后的

将文件命名成1.php.就可以上传,windows的需要burp修改数据包

Pass-08: ::$DATA(Windows文件流绕过)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpdzz.html