[ת]Java WebÓ¦ÓõÄPolicy°²È«ÅäÖÃÖµµÃÉî˼
ÐÅÏ¢À´Ô´£ºÐ°¶ñ°Ë½øÖÆÐÅÏ¢°²È«ÍŶӣ¨www.eviloctal.com£©
Author:kj021320
×ªÔØÇë×¢Ãû³ö´¦¡£
JavaÓ¦ÓóÌÐò»·¾³µÄ°²È«²ßÂÔ£¬Ïêϸ˵Ã÷Á˶ÔÓÚ²»Í¬µÄ´úÂëËùÓµÓеIJ»Í¬×ÊÔ´µÄÐí¿É£¬ËüÓÉÒ»¸öPolicy¶ÔÏóÀ´±í´ï¡£
ΪÁËÈÃapplet£¨»òÕßÔËÐÐÔÚSecurityManagerϵÄÒ»¸öÓ¦ÓóÌÐò£©Äܹ»Ö´ÐÐÊܱ£»¤µÄÐÐΪ£¬ÀýÈç¶ÁдÎļþ£¬applet£¨»òJavaÓ¦ÓóÌÐò£©±ØÐë»ñµÃÄÇÏî²Ù×÷µÄÐí¿É,°²È«²ßÂÔÎļþ¾ÍÊÇÓÃÀ´ÊµÏÖÕâЩÐí¿É¡£
Policy¶ÔÏó¿ÉÄÜÓжà¸öʵÌ壬ËäÈ»ÈκÎʱºòÖ»ÄÜÓÐÒ»¸öÆð×÷Óá£
µ±Ç°°²×°µÄPolicy¶ÔÏó£¬ÔÚ³ÌÐòÖпÉÒÔͨ¹ýµ÷Óà getPolicy·½·¨µÃµ½£¬Ò²¿ÉÒÔͨ¹ýµ÷ÓÃsetPolicy·½·¨¸Ä±ä¡£Policy¶ÔÏóÆÀ¹ÀÕû¸ö²ßÂÔ£¬·µ»ØÒ»¸öÊʵ±µÄPermissions¶ÔÏó£¬Ïêϸ˵Ã÷ÄÇЩ´úÂë¿ÉÒÔ·ÃÎÊÄÇЩ×ÊÔ´¡£
¿É¼û ͨ¹ýÅäÖÃpolicyÀ´´ïµ½¿ØÖÆSecurityManager£¬ÔÚApplet RMIÉÏÃæÒѾ¼ûµ½ºÜ´óµÄ³ÉЧ¡£
µ«ºÜ¶àÏÖÔÚWEBÈÝÆ÷ÈçTOMCAT RESINµÈµÈ¶¼Í¨¹ýÖ¸µ¼Óû§ÅäÖÃpolicyÀ´¹ÜÀí×Ô¼ºJAVAÍøÕ¾µÄ°²È«¡£
¶ÔÓÚ³õ¼¶hacker ¿ÉÄÜ»á´ïµ½Ò»¶¨³ÉЧ£¬µ«ÊÇÎÒ¸öÈ˳ֱ£ÁôÒâ¼û¡£
Ê×Ïȼòµ¥¿´¿´JAVA WEBÈÝÆ÷webappsµÄ¹ÜÀí²ßÂÔ¡£
ÿ¸öapp¶¼ÊÇÕ¼ÓøÃÈÝÆ÷ͬһ½ø³Ì£¬¶ø²»Í¬ÓÚ¸÷×Եİü¹ÜÀí£¬ÇëÇó¿ØÖƶ¼ÊDzÉÓà MultiThread + ClassLoader µÄ.
ËùÒÔдserlvet/filter publicµÄÊôÐÔÐèҪעÒâ²¢·¢£¬¶ø¸÷¸öwebapp¶¼Óи÷×ÔµÄlibµÈµÈ¡£
ÖÁÓÚÕâÑùµÄ¶ÔÓÚ°²È«À´Ëµ»á¼«Æä¶ñÐÄ...
ÎÊÌâ1: A webapp µ÷ÓÃÁË system.exit µ¼ÖÂWEBÈÝÆ÷¹ÒÁË¡£
ÎÊÌâ2: A webapp ÒòΪ´úÂëÖÊÁ¿ÎÊÌâÄÚ´æÐ¹Â¶£¬µ¼ÖÂB webapp·ÃÎʲ»ÁË¡£
ÎÊÌâ3: webapp µ÷Óà runtime.exec Ö´ÐÐϵͳÃüÁî¹¥»÷²Ù×÷ϵͳ¡£
¶øÕë¶ÔÒÔÉÏÕâЩÎÊÌ⣬ÎÒ¹À¼ÆsunÓ¦¸Ã±È½ÏÞÏÞεÄÁË£¬ÈÝÆ÷ÌṩÉÌÃǶ¼Ö»ÄܲÉÓÃÁËjava×Ô´øµÄ²Ù×÷·½·¨¡£¾ÍÊÇÅäÖÃpolicy
ÈçºÎÅäÖÃѽ£¿
TOMCAT¿ÉÒÔ¿´¿´ http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html
RESIN ¿ÉÒÔËÑË÷ <<ResinÐéÄâÖ÷»úµÄjava°²È«É³ÏäÉèÖÃ>>
»ù±¾ÉϾÍÊÇÏÞÖÆÓû§²Ù×÷ java.io java.net java.awt java.runtime java.util ...
µ«ÊǺÜÒź¶¸æËßÄ㣬ÕâЩ¶¼ÊÇ¿ÉÒÔbypassµÄ£¡ÎªÊ²Ã´£¿ÒòΪJAVAÀïÃæÉ³ÏäÏÞÖÆ¶¼ÊÇÔÚjava class²ã¿ØÖƵÄ
¶ø ²ÉÓà reflect ¿ÉÒÔÈÆ¹ýÕâЩ½ø¶ø²Ù×÷JNIµÈµÈ...ÈçºÎ²Ù×÷¿ÉÒÔ¿´Õâpaper
http://blog.csdn.net/kj021320/archive/2007/10/10/1819205.aspx
ÄÇÈç¹û°ÑreflectҲͬÑùÏÞÖÆÁËÄØ£¿¸úappletÒ»ÑùÑϸñ£¡ OK ÏÖÔÚÎÒÃÇÀ´¿´¿´Êµ¼ÊÇé¿ö
Ê×ÏÈwebapp ³£ÓõĿò¼Ü spring ibatis hiber
Ïà¹ØÎĵµ£º
/*
* @(#)MemoryMonitor.java 1.3 05/11/17
*
* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are ......
Ê×ÏÈÃ÷È·ÏÂÀà¼ÓÔØµÄ¶¨Ò壬Àà¼ÓÔØÊµ¼ÊÉϾÍÊǽ«java classÎļþ¼ÓÔØµ½java ÐéÄâ»úÖУ¬¸ù¾ÝJVM¹æ·¶µÄ¶¨Ò壬һ°ã·ÖΪ2ÖÖÀàÐ͵ÄÀà¼ÓÔØ£¬Ò»ÖÖÊÇÆô¶¯Àà¼ÓÔØÆ÷£¬ÁíÍâÒ»ÖÖÊÇÓû§×Ô¶¨ÒåÀà¼ÓÔØÆ÷¡£
Ò» Æô¶¯Àà¼ÓÔØÆ÷¡£
Æô¶¯Àà¼ÓÔØÆ÷Ò²ÓÐÒÔÏÂÈýÖÖ£ºBootstrap ClassLoader¡¢AppClassLoaderºÍExtClassLoader,ÕâÈýÖÖclassloaderÔÚjavaÐéÄâ» ......
public class Bean1 {
private String strValue;
private int intValue;
private List listValue;
private Set setValue;
private String[] arrayValue;
private Map mapValue;
public String getStrValue() {
return strValue;
}
public void setStrValue(String strValue) {
t ......
¶þ·Ö²éÕÒ·¨ºÍÏßÐÔ²éÕÒ·¨
¶þ·Ö²éÕÒ·¨ÊÇÒ»ÖÖ±ÈÆÕͨÏßÐÔ²éÕÒ¿ìµÃ¶àµÄ²éÕÒËã·¨£¬µ«Ö»ÊÊÓÃÓÚÓÐÐò¼¯ºÏµ±ÖС£ÄÃÉýÐòÅÅÐòºóµÄÕûÐÍÊý×éÀ´Ëµ£¬¶þ·Ö·¨¾ßÌåµÄʵÏÖÔÀíÊÇ£ºÏȰѴý²éÕÒÊýaÓëÊý×éÖмäµÄÄǸöÊýx¶Ô±È£¬Èç¹ûÏàµÈ£¬Ö±½Ó·µ»ØxµÄË÷Òý£»Èç¹ûa´óÓÚx£¬ÔòÅųýµôÊý×éµÄÇ°ÃæÒ»°ë£¨°üÀ¨x£©£¬½Ó×ÅÄÃaÓëÊ£ÏÂÒ»°ëÊý×éÖмäµÄÄǸöÊýx¶Ô±È£¬Èç ......
package com.gis.biz;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.http. ......