【干货总结】浅谈src漏洞挖掘中容易出洞的几种姿势
【干货总结】浅谈src漏洞挖掘中容易出洞的几种姿势
Z2O安全攻防 2024-10-28 20:58
0x1 前言
浅谈
这篇文章主要是想跟师傅们聊下企业src包括平常的渗透测试和众测等项目中的一个拿分点,特别是如何让新手在挖掘企业src的过程中可以挖到漏洞呢,难点的或者好挖的漏洞都被大佬给交走了,那么小白挖src的方向在哪呢,还有冷门的漏洞挖掘方式怎么样,是不是可以挖掘到漏洞呢。
这篇文章也是和我那几个厉害的师傅那交流来的,然后主要是针对src小白在跟别的特别厉害的师傅一起搞漏洞挖掘或者众测的时候,比如我们小白可以有适合自己的一些”冷门漏洞”挖掘一套流程,然后去走相对简单的,可能这样的漏洞对于企业src来说危害不高,大多是个中危、低危,但是对于刚入手的小白来说还是可以去尝试下的!
0x2 漏洞一:SPF邮件伪造漏洞
一、SPF邮件伪造漏洞简介
SPF 记录是一种域名服务(DNS)记录,用于标识哪些邮件服务器可以代表您的域名发送电子邮件。
SPF 记录的目的是为了防止垃圾邮件发送者在您的域名上,使用伪造的发件人地址发送邮件。
原理:未设置spf导致的邮件任意伪造,可以用来钓鱼社工,本身就是高危
若您未对您的域名添加 SPF 解析记录,则黑客可以仿冒以该域名为后缀的邮箱,来发送垃圾邮件。
二、漏洞危害
可以用未进行安全配置的网站域名,发送邮件。
比如:www.baidu.com有这个漏洞,你就可以伪造[email protected]给受害人发邮件进行钓鱼。
src收的少,但是重测和渗透测试项目可以交。
●
注意:
如果没有
v=spf1
或者
没spf
就存在邮件伪造漏洞。
●-all 不能伪造,~all可以伪造
三、测试漏洞
我们直接拿baidu.com的域名来给大家演示下,用kali的nslookup 工具测试下
可以看到下面的回显,存在spf记录,是-all参数,说明不能任意伪造。
┌──
(
root
–
kali
)
–
[~] └─#
nslookup
–
type
=
txtbaidu
.
com
还可以使用dig -t命令来测试
┌──
(
root
–
kali
)
–
[~] └─#
dig
–
ttxtbaidu
.
com
四、SPF解析不当导致绕过
把下面的spf配置记录复制下来
测试地址如下:
SPF Query Tool
:https://www.kitterman.com/spf/validate.html
这里显示spf解析配置正确
下面拿一个存在spf解析错误的案例来演示下:
SPF记录报错,在这条SPF记录中,存在多个IP段,但只有开头的一段ip用了ipv4,这就导致了语法错误。因为这个错误,将导致整个SPF记录完全失效,因为SPF无效,邮件接收方的SPF检测功能也就失效了。
五、swaks测试
使用kali自带工具swaks 测试
swaks –body “helloword” –header “Subject:testT” -t 自己的邮箱 -f [email protected] body为内容 Subject为标题 -t为目标邮箱 -f为伪造的发送方,这里我们伪造加了cn字眼,这里伪造改不明显字眼等都会进垃圾箱
我们先申请一个临时邮箱:
http://24mail.chacuo.net/书签:
临时邮箱、十分钟邮箱(10分钟)、临时邮、临时Email、快速注册Email、24Mail–查错网
然后我们使用kali自带的swaks 工具进行测试,结果如下
┌──
(
root-kali
)
–
[
~
]
└─
swaks –body “【2024年8月1日】 检测到您教务系统长时间未修改密码,请及时修改密码确保账户安全 手机管家@163.com
【该邮件自动监测请勿回复】
” –header “
Subject:vivo”
-t
[email protected]
-f
[email protected]
看到这里,我们要是对标题和内容进行改进,那么我们是不是就可以尝试钓一波鱼了呢?
六、浅谈
综上,当我们在查看一个域名的SPF记录时,它其实不只是一条解析记录,更是一种邮件安全的策略,SPF记录配置不严或SPF解析错误,就容易导致大量本该被拦截的邮件直接被放进来,而绕过的策略就隐藏在这条SPF记录里面。
0x3 漏洞二:sourcemap文件泄露漏洞
一、漏洞原理
在日常测试时,经常会遇到以
js.map
为后缀的文件 这是jQuery中的一个新功能,支持Source Map 非常多
Webpack
打包的站点都会存在js.map文件 通过
sourcemap
可还原前端代码找到API,间接性获取
未授权访问漏洞
什么是Source map?
简单说,Source map就是一个信息文件,里面储存着位置信息。转换后的代码的每一个位置,所对应的转换前的位置。 有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码,这无疑给开发者带来了很大方便。
二、shuji工具还原前端代码
使用nmp安装
npm install –global shuji
shuji
命令执行
shuji app.js.map -o desfile
还原之前的js文件:
还原后的文件如下:
那么后面我们就可以分析js代码,然后找找有没有什么js接口泄露,然后导致敏感信息泄露的漏洞,那么我们不就可以提交src或者众测了嘛
三、油猴sourcemap-searcher脚本
功能:自动搜索网页有无sourcemap文件泄露
油猴脚本:
F12
控制台输入
sms()
,如果存在会提示,然后打开看能否下载下来,能下载下来的话可以使用我们上面的
shuji
工具或者使用
nodejs
进行反编译,然后可以分析里面js接口去找别的漏洞,但是这个
sourcemap文件泄露漏洞
也是可以直接提交的。
油猴sourcemap-searcher脚本安装位置如下:
https://greasyfork.org/zh-CN/scripts/447335-sourcemap-searcher书签:
sourcemap-searcher
这样就是按照该脚本成功了
下面是我之前在挖src的时候,挖到的sourcemap的js.map文件泄露的漏洞
然后就可以使用
nodejs
进行反编译了
四、src漏洞报告编写
-
漏洞危害:
Source map
就是一个信息文件,里面存着位置信息。转换后的代码的每一个位置,所对应的转换前的位置。有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码,这无疑给开发者带来了很大方便。
Webpack打包
的站点会存在
js.map
文件,通过
sourcemap
可还原前端代码找到API,间接性获取未授权访问洞。 -
漏洞复现:
按照刚才的案例每一步都写好,怎么下载、怎么反编译、反编译出来的东西有啥敏感的都写清楚 -
修复建议:
删除web站点保存的
.js.map
后缀的文件。
0x4 漏洞三:jsonpxss漏洞
一、jsonp简介
JSONP
是服务器与客户端跨源通信的一种方法
基本流程:网页通过添加一个script元素,向服务器请求JSON数据。服务器收到请求后,将数据放在一个指定名字的回调函数里传回来。可简单理解为jsonp是带有回调函数callback的json。
局限性:仅支持GET请求,目前该方法已被主流废弃
备注:其他解决跨域问题的方法——
CORS、中间转发层、Nginx反向代理
使用工具:
burp插件jsonphunter
JSONP(JSON with Padding):JSONP是一种利用