天融信笔试
请列举常见的上传漏洞(至少写出十种) ,并简要说明其利用方法。
IIS解析漏洞有两种:
1.当建立*.asa、*.asp格式的文件夹时,其目录下的任意文件都将被IIS当作asp文件来解析。
2.当文件为*.asp;1.jpg时,IIS6.0同样会以ASP脚本来执行。 Apache解析漏洞test.php.x1.x2.x3;
3.在Apache1.x和Apache2.x中1.php.rar会被当作php文件执行。 上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀 本地上传绕过:
4.前台脚本检测扩展名—绕过 当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台脚本检测扩展名。
5.Content-Type检测文件类型—绕过 当浏览器在上传文件到服务器的时候,服务器对说上传文件的Content-Type类型进行检测,如果是白名单允许的,则可以正常上传,否则上传失败。
6.文件系统00截断—绕过 在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束。利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。
7.服务器端扩展名检测黑名单—绕过 当浏览器将文件提交到服务器端的时候,服务器端会根据设定的黑白名单对浏览器提交上来的文件扩展名进行检测,如果上传的文件扩展名不符合黑白名单的限制,则不予上传,否则上传成功。
8.JS检测上传文件—绕过 上传文件时,对方使用Java语句语法检测上传文件的合法性问题。
9.重写解析规则—绕过 上传覆盖.htaccess文件,重写解析规则,将上传的带有脚本马的图片以脚本方式解析。
10.后缀名大小写绕过 用于只将小写的脚本后缀名(如php)过滤掉的场合; 例如:将Burpsuite截获的数据包中的文件名【evil.php】改为【evil.Php】
11.双写后缀名绕过 用于只将文件后缀名,例如"php"字符串过滤的场合; 例如:上传时将Burpsuite截获的数据包中文件名【evil.php】改为【evil.pphphp】,那么过滤了第一个"php"字符串"后,开头的'p'和结尾的'hp'就组合又形成了【php】。
12. 特殊后缀名绕过 用于检测文件合法性的脚本有问题的场合; 例如:将Burpsuite截获的数据包中【evil.php】名字改为【evil.php6】,或加个空格改为【evil.php】等。