next学习规划

0-前言

经过面试学到了如下需要深入学习的技术和扩展的方面,简单记录如下:

1-frida的使用(动态 dump dex) –⑤

​ 2>ida动态调试 –⑥

2-oss存储桶漏洞相关利用

3-SpringBlade微服务框架

4-反序列化框架的学习(未手动找到过这种漏洞,被动扫描出一次,特征:参数为object)

5-双向认证(mTLS) –①

下一步学习目标汇总:

①部分逆向(java和so层的反反调试精进,js逆向的进一步深入学习)

②主机渗透(开放服务的利用)

③横向移动与权限加固(红队)

④二次反序列化链、java的分析(漏洞分析的学习)

⑤app、路由器等设备的漏洞排查(双向认证、TLCP的解密)

1-frida的去壳/使用

前言

开发环境下的app一般属于无需去壳的,生产环境的app大多加固混淆以及反调试,UAT环境应该是用来保护证书的

所以要学习去壳从而可以删除里面的反调试之类的代码,然后重打包App,进而可以用objection进行排查类找到hook点

加固应该主要是防止重打包和逆向分析,简单的抓包,java层,so层的绕过反调试等操作,倒也不用花那么多时间特意去脱壳

跳转到frida的学习以下有关1的信息暂仅记录开始状态

学习文章:

实用FRIDA进阶:内存漫游、hook anywhere、抓包-安全KER - 安全资讯平台

Android脱壳之整体脱壳原理与实践这里所说的壳都是指dex加壳,不涉及到so的加壳。 涉及到的代码分析基于AOSP - 掘金

地狱笑话IDA 是尸检||Frida 是活体解剖

Frida 动态 dump dex

1
2
3
4
#应对的壳如下:
Java 壳
延迟加载 dex
商业壳 / 自研壳

Hook dex 加载函数,把内存里的 dex dump 出来

待续

内存加载壳

特征:

1
2
3
4
/data/app/ 下找不到 dex
DexClassLoader 的路径是假的
dex 在内存 buffer 里
dex\n035\0

待续

Application 切换壳

待记录

备注

去壳后需要
重打包 APK、 校验 dex 完整性、再 Hook

2-oss存储桶

对象存储(OSS)攻防案例 - FreeBuf网络安全行业门户

【云安全】阿里云 OSS对象存储攻防 | 长亭百川云

①-Object 遍历②-Bucket 桶爆破③-特定的 Bucket 策略配置④任意文件上传与覆盖⑤Bucket 接管⑥Bucket 可修改

AccessKey/SecretKey (AK/SK)泄露

前端js泄露,或者后端接口envonfig.ini等配置文件未授权访问

re取自记一次AccessKey值泄露的挖掘和分析 - FreeBuf网络安全行业门户

1
(?i)((access_key|access_token|admin_pass|admin_user|algolia_admin_key|algolia_api_key|alias_pass|alicloud_access_key|amazon_secret_access_key|amazonaws|ansible_vault_password|aos_key|api_key|api_key_secret|api_key_sid|api_secret|api.googlemaps AIza|apidocs|apikey|apiSecret|app_debug|app_id|app_key|app_log_level|app_secret|appkey|appkeysecret|application_key|appsecret|appspot|auth_token|authorizationToken|authsecret|aws_access|aws_access_key_id|aws_bucket|aws_key|aws_secret|aws_secret_key|aws_token|AWSSecretKey|b2_app_key|bashrc password|bintray_apikey|bintray_gpg_password|bintray_key|bintraykey|bluemix_api_key|bluemix_pass|browserstack_access_key|bucket_password|bucketeer_aws_access_key_id|bucketeer_aws_secret_access_key|built_branch_deploy_key|bx_password|cache_driver|cache_s3_secret_key|cattle_access_key|cattle_secret_key|certificate_password|ci_deploy_password|client_secret|client_zpk_secret_key|clojars_password|cloud_api_key|cloud_watch_aws_access_key|cloudant_password|cloudflare_api_key|cloudflare_auth_key|cloudinary_api_secret|cloudinary_name|codecov_token|config|conn.login|connectionstring|consumer_key|consumer_secret|credentials|cypress_record_key|database_password|database_schema_test|datadog_api_key|datadog_app_key|db_password|db_server|db_username|dbpasswd|dbpassword|dbuser|deploy_password|digitalocean_ssh_key_body|digitalocean_ssh_key_ids|docker_hub_password|docker_key|docker_pass|docker_passwd|docker_password|dockerhub_password|dockerhubpassword|dot-files|dotfiles|droplet_travis_password|dynamoaccesskeyid|dynamosecretaccesskey|elastica_host|elastica_port|elasticsearch_password|encryption_key|encryption_password|env.heroku_api_key|env.sonatype_password|eureka.awssecretkey)[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9a-zA-Z\-_=]{8,64})['\"]

访问失败回显特定值

回显 AccessDenied

​ (403 Forbidden)– 名称有效

​ 尝试使用aliyun的cli获取policy —特定的Bucket策略配置(例如:ua=xxx可以访问)

回显 NoSuchBucket

​ –(404 Not Found)

​ ** InvalidBucketName**:表示存储桶的名称不符合规范,属于无效的存储桶名称。

​ **NoSuchBucket**:表示没有这个存储桶。

​ –存储桶接管 (Bucket Takeover),注册同名 Bucket,从而向原应用注入恶意文件

​ –Bucket 名称爆破 如果没有禁用“公共读”权限,猜中文件名,就能直接下载文件

回显 ListBucket 结果

 (200 OK)--无参数认证则为未授权读

回显 access denied by bucket policy

​ —-Bucket 策略配置可写 (PUT方法上传)

工具

ossutil 等官方工具

待续

3-SpringBlade微服务框架

学习文章:

SpringBlade源码

浅识springblade框架漏洞 - FreeBuf网络安全行业门户

fofa指纹:icon_hash="1047841028"(长得像MC的mod铁剑)

OWTOP漏洞,值得注意的是:默认jwt密钥

4-反序列化框架的学习

学习文章:
常见的Web漏洞——反序列化漏洞 - FreeBuf网络安全行业门户

【2025】最新反序列化漏洞汇总,从零基础到精通,收藏这篇就够了!_反序列化漏洞有哪些-CSDN博客

常见反序列化框架

PHP反序列化漏洞

PHP中通常使用serialize函数进行序列化,使用unserialize函数进行反序列化

PHP反序列化总结(POP链)-先知社区

Java反序列化漏洞

Java中通常使用Java.io.ObjectOutputStream类中的writeObject方法进行序列化,Java反序列化漏洞从入门到深入-先知社区

ASP.NET反序列化

.NET框架包含多个序列化类,BinaryFormatterJavaScriptSerializerXmlSerializerDataContractSerializer

Python反序列化

Python提供的pickle模块可以序列化对象,反序列化漏洞出现在 __reduce__()魔法函数上

Node.js 反序列化

node-serialize 在反序列化时使用了 eval(),直接执行传入的数据

5-双向认证

[原创] Frida解决证书绑定问题-Android安全-看雪安全社区|专业技术交流与安全研究论坛

Frida自吐证书密码 - FreeBuf网络安全行业门户

双向证书效验绕过

**网.apk就是标准的双向认证,即便是做了uat认证,电脑也无法访问,只有流量走一遍app才能访问对应的网址接口

yakit可以做国密网址的测试,双向认证的话要找到对应的客户端证书

工具

gmsslgmcurlyakitr0capturepython

r0capture导出的客户端证书默认路径在/sdcard/Download/xx.p12, 密码默认是r0ysue

常见命令

1
2
3
4
5
6
7
openssl pkcs12 -in test.p12 -clcerts -nokeys -out 1.crt -legacy

openssl pkcs12 -in test.p12 -nocerts -nodes -out 1.key -legacy

gmssl tlcp_client -host 127.0.0.1 -cert 1.crt -key 1.key -pass 'MyP@ssw0rd!'

gmcurl --gmssl -v --cacert ca.crt --cert 1.crt --key 1.key:你的密码 --cert2 1.crt --key2 1.key:你的密码 https://[目标URL]

其他;

可以多去面试看看在别人眼里的自己

但无论如何,那仅仅是别人眼中的自己