【零基础】SRC实用漏洞挖掘技巧-附5个漏洞实例解析

2023-05-09 12,141

如果你喜欢我的文章,欢迎关注公众号:安全女巫
转载请注明出处:
https://mp.weixin.qq.com/s/-ebZn79irVCoSDBHL7iW1g

该篇文章针对SRC渗透测试过程中的技巧进行罗列与简要分析,旨在帮助大家快速开展工作。

渗透测试工作是个精细的工作,在什么功能场景之下易发哪些漏洞,若有这样的对照表,势必会加固安全防线。全文先进行整体梳理,后进行逐一解说,文末简要实例介绍,通俗易懂。



0x01 整体梳理

1.信息收集

ICP备案查询子域名-https://beian.miit.gov.cn/#/Integrated/recordQuery

whois数据信息收集-https://whois.chinaz.com/

子域名查询-https://chaziyu.comhttps://site.ip138.com/xxx.com/domain.htm


2.平台功能

用户登录-弱密码、URL重定向、IP绕过

用户退出-CSRF退出、URL跳转

用户注册-短信/邮箱轰炸

找回密码-短信/邮箱轰炸、批量获取用户名对应昵称、批量获取已注册用户

信息搜索-XSS、SQL注入、CSRF

编辑-XSS、SQL注入、CSRF、文件上传、越权

删除-XSS、SQL注入、CSRF、越权

投票-并发、CSRF、修改响应包、(只允许投票5次,前端验证。但后端可通过接口直接投票)

充值-金额为负数

订单-并发突破下单次数、CSRF、越权

接口-并发、无限制、前端限制不可点击,接口可直接访问、修改响应包

验证码-重复使用、无效(未验证)、可爆破、无验证码

评论-XSS、SQL注入、CSRF、并发、越权

签到-XSS、SQL注入、CSRF、并发、csrf、越权


3.平台本身

敏感信息-Dirsearch、Webpack、URLFinder、FindSomething、Burp-clj、Swagger-exp

数据安全-敏感信息明文传输、敏感信息明文展示在平台、敏感信息明文存储数据库

域名解析-Host碰撞

0x02 信息收集

1.通过SSL证书查询

根据证书所有者查询使用者相关域名,IP信息。

2.ICP备案查询子域名

网站https://beian.miit.gov.cn/#/Integrated/recordQuery查询域名所属的主办单位名称:xxxxx有限公司

由主办单位名称:xxxxx有限公司继续反查子域名


点击详情子域名汇总:

xxx.com

xxx.cn

通过网络空间安全搜索引擎云悉资产、FOFA、Virustotal、Dnsdumpster、Threatcrow

3.whois数据信息收集

https://whois.chinaz.com/使用历史查询,查询出邮箱信息

邮箱反查查询出所绑定的域名信息

4.子域名查询

https://chaziyu.com/

https://site.ip138.com/xx.com/domain.htm

经确认与汇总去重得到xxx个子域名

0x02 平台功能

1.用户登录

弱密码:密码强度不够,易猜解。若是未限制错误次数,验证码无效的情况下可暴力破解进行登录

URL重定向:登录成功后一般自动跳转到其他页面。URL地址为:xxx.com?redirect=a_url,通过更改a_url的值可跳转任意页面

IP绕过:限制同一IP单位时间内的访问次数,可通过请求头加上x-forwarded-for:x.x.x.x*绕过限制校验失败次数

2.用户退出

CSRF退出:退出功能未校验referer、Origin、csrftoken导致可csrf退出登录。若是发布在留言功能处易csrf退出

URL跳转:退出链接一般自动跳转至登录页面,此处若更改为任意url可用于恶意推广、钓鱼等

3.用户注册

短信/邮箱轰炸:短信/邮件发送接口可使用并发漏洞,无限制发送短信/邮件给接收人带来干扰,也使用付费接口加重企业次数消耗

SQL注入:用户名处拼接sql语句,在个人资料处展示或其他位置展示昵称处可查询出期望的内容

4.找回密码

短信/邮箱轰炸:短信/邮件发送接口可使用并发漏洞,无限制发送短信/邮件给接收人带来干扰,也使用付费接口加重企业次数消耗

批量获取手机号对应昵称:接口用于验证手机号对应的昵称以确认是否存在,若不限制查询次数可通过该接口泄露用户信息

5.搜索

XSS:用户可在搜索框搜索关键字并提交查询,未对输入进行过滤和转义,导致攻击者将恶意语句注入到搜索框中,可获取用户cookie

SQL注入:用户搜索' OR '1'='1,将原始查询语句闭合' OR '1'='1',可进行删除修改等恶意操作

6.编辑

XSS:触发点一般在列表展示页面,点击或加载触发。url链接:javascript:alert(1),图片加载:

SQL注入:一般在编辑页面编辑,触发点在列表展示页面展示(拼接后期望获得的内容)

CSRF:未添加referer、origin、token可诱导已登录用户点击,执行期望的编辑内容

文件上传:未限制上传文件类型、文件内容未过滤、文件名未进行重命名等,导致上传木马等

越权:可编辑更高权限接口、越权更改他人编辑页面

7.删除

XSS:触发点一般在删除接口,访问时触发。url链接:<a href="/delete?id=<script>alert('XSS');</script>">删除</a>

SQL注入:通过提交 ID 号码来删除指定记录,url链接:?delete_id=1; DROP TABLE users; --

CSRF:未添加referer、origin、token可诱导已登录用户点击,执行期望的删除操作

越权:可直接调用管理员接口进行删除,可删除其他用户的平行权限

8.投票

并发:使用burp插件Turbo Intruder进行并发操作,可突破每人每日投票次数限制,无限制投票

CSRF:构造csrf请求,可诱导对方点击后投票

修改响应包:使用burp-拦截请求-拦截执行-此请求的响应修改响应包可绕过限制成功发包

9.充值

金额为负数:修改充值接口中金额为负数,不花钱反而可提现金额增多

金额绕过最低限制:修改接口中数值,绕过前端限制最低金额

10.订单

并发突破下单次数:使用burp插件Turbo Intruder进行并发操作,一次付款下多次订单

CSRF:构造csrf请求,可诱导对方点击后下订单

越权:通过更改订单id可查看他人订单详情或取消订单

11.接口

并发:使用burp插件Turbo Intruder进行并发操作

无限制:短信/邮箱/***号验证等付费接口,无限制使用可致资源消耗

接口可直接访问:接口后端未校验,虽前端无按钮点击触发,仍可通过接口直接访问

修改响应包:抓取正常响应包内容,用于替代不满足条件时响应内容,再次发包,可修改响应包

12.验证码

重复使用:验证码验证后一次使用不作废,可重复使用

无效(未验证):有验证码字段但未进行校验正确性,将之删除也可直接使用接口

可爆破:验证码位数较少爆破较为容易,且无过期时间,使用爆破手段可验证通过

无验证码:平台无验证码且未限制单个IP单位时间内访问次数,存在爆破风险

13.评论

XSS:一般在评论处进行评论,评论展示处加载/点击触发

SQL注入:测试时易插入多条数据易导致容易数据,建议在测试环境测试或者正式环境测试后删除。

CSRF:构造csrf请求,可诱导用户发表评论

并发:未限制单位时间内评论次数易造成无效评论占用资源、造成数据冗余、影响用户体验

越权:更改评论者id可代提他人成功留言

14.签到

并发:签到一般是一天只能签到一次,调用接口进行并发可一次签到多天,从而领取签到奖励

0x03 平台本身

1.敏感信息

1》js中敏感信息-webpack

chrome浏览器F12-源代码查看webpack打包的前端源代码

2》js中敏感信息-URLFinder

https://github.com/pingc0y/URLFinder

针对网站逐一扫描E:toolsURLFinder-windows-amd64.exe -u http://xxxxxx.com -s 200 -m 2

逐一扫描url文本中url,使用进程50,将结果输出到js_result文件夹。将E:toolsURLFinder-windows-amd64.exe -f url.txt -s 200 -m 2 -f url.txt -t 50 -o ./js_result。注意扫描之前要自己创建空文件夹js_result,此为文件夹内容


3》html/js敏感信息-FindSomething


浏览器输入chrome://extensions/

将crx格式文件拖到浏览器,进行安装扩展

访问网站可见信息

4》获取url和子域名以及后台网站越权访问敏感接口-burpsuite插件burp-clj

github地址:https://github.com/ntestoc3/burp-clj/releases/tag/v0.5.2

https://github.com/ntestoc3/burp-scripts下载并更新下面的脚本源,重新加载脚本

使用该插件记得把浏览器缓存清掉不然不会加载js文件。

访问url即可看到插件获取到的js链接

5》swagger接口测试

1》https://github.com/lijiejie/swagger-exp

使用说明:

1、扫描所有API集,打开Swagger UI

python swagger-exp.py http://site.com/swagger-resources/

2、扫描一个API集,打开Swagger UI

python swagger-exp.py http://site.com/v2/api-docs

3、只打开Swagger UI,不扫描接口

python swagger-exp.py


2》也可以将swagger常用路径写入dirsearch 的db文件,进行扫描

批量扫描swagger,注意使用dirsearch扫描后会将域名转为IP:python3 dirsearch.py -r -l E:outip.txt -w db/swagger.txt

2.数据安全

1》敏感信息明文传输

一般是在接口中数据传输时,敏感信息明文传输比如:***号、支付宝账号、真实姓名、手机号、微信号、***证号等敏感个人信息未经加密或掩码处理直接明文展示。攻击者通过嗅探、中间人攻击等方法能够直接获取用户的敏感信息。

2》敏感信息明文展示在平台

敏感信息明文展示,若被他人窥探易泄露用户敏感信息

3》敏感信息明文存储数据库

若是数据库被黑客脱裤,数据库中用户敏感信息将泄露

3.域名解析

1》Host碰撞

以前在外网后被收入内网但忘记更改dns,或者公司不小心把内部的资产暴露到外网。我们通过对IP域名 碰撞匹配,访问到绑定host才能访问的系统。

Host碰撞分为以下情况:

1.一个IP对应多个域名。直接访问IP,当IP返回401 400 403 等时,指定host让其访问。原理:本地dns优先与互联网DNS,.

2.dns指向内网地址域名。用外网IP,跑域名。如果服务有缓存。就会指向内网IP。

0x04 案例

1.搜索处-XSS漏洞

漏洞链接为http://xxx.com/xxx?value="><script>alert(1)</script>

输入"><script>alert(1)</script>,页面展示

Html响应页面原样输出,造成反射型xss


2.搜索处-SQL注入漏洞

漏洞链接为http://xxx.com/xxx?value=xxxx

date输入extractvalue(1,concat(char(126),md5(1609886750))),页面回显

9e19143b1a88c610782235a44366741证明存在sql注入漏洞

3.Bypass漏洞

http://target.com/%2e/admin => 200
添加URL路径:在URL和禁止文件的路径中添加
/*
/%2f/
/./
/
/*/
在请求中添加:请求时在header中添加值为 127.0.0.1 的不同标头也有助于绕过限制。
X-Custom-IP-Authorization
X-Forwarded-For
X-Forward-For
X-Remote-IP
X-Originating-IP
X-Remote-Addr
X-Client-IP
X-Real-IP

也可以使用403bypass 插件自动化完成



4.Host碰撞漏洞

访问39.xx.xx.xx抓包,响应码404

将host更改为域名xx.xx.xx.cn,再次访问可访问成功


5.条件竞争漏洞

短信接口属于其中一种,短信是按照条数进行付费调用,若未限制单位时间内短信数量会给企业带来额外费用,同时频繁的发送短信也会对用户造成干扰。

接口已经进行次数限制,是否就安全了?并不是,可以试一下并发测试


点击获取短信校验码抓包



在插件cookie处末尾增加%s后点击按钮攻击

发包成功,可根据响应包内容判断是否存在并发漏洞,此处为支付宝修改密码处-不存在漏洞,为让读者了解如何测试条件竞争漏洞

有感兴趣者可参考我这篇文章,使用条件竞争拿优惠劵在自动售货机兑换更多物品

使用条件竞争突破同一时间兑换同一张优惠劵限制,可兑换多张金币到个人账户中

Aderduo,公众号:安全女巫【Hack The Box】蓝队入门Diogenes Rage通关详细攻略

本文作者:公众号:安全女巫

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/200077.html

Tags:
评论  (0)
快来写下你的想法吧!

公众号:安全女巫

文章数:15 积分: 0

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号