freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

众测SRC | 如何通过js搜索未授权接口
chobits02 2024-01-08 14:28:00 428693

一、前言

之前在挖某SRC,和carrypan师傅交流了一番,发现他在js接口里面收获颇多,找到很多敏感信息与未授权访问,本着学习的心态我开始研究如何高效地寻找目标网站js中存在的接口

贴一张SRC的收获图片:

1704360599_65967a97461d1cd8a76e5.png!small?1704360598150

二、思路历程

接口路径收集可能很多人会先想到URLFinder,这个工具确实不错

虽然也能自定义规则,但是没有详细参考文档。于是我就选择了资产灯塔ARL里面的插件wih

1704360470_65967a164d25d59883ba6.png!small?1704360469169

使用文档参考:https://tophanttechnology.github.io/ARL-doc/function_desc/web_info_hunter/


这里为了单独使用wih功能,直接从docker启动版本里面把wih文件拉出来

wih自带的规则文件wih_rules.yml,其中有一条内置规则为匹配路径,默认是不开启该规则的

修改路径规则的enable为true,关闭其他剩下的规则


根据wih命令,-a为自动保存,-c和-P调整并发数

可能是为了适配ARL,所有是按域名来保存的,这样对我们来说很不友好,不方便查看

好在wih还有一个json格式导出的功能,但是只是打印结果,不是输出json,于是就要写一个python脚本来协助处理一下数据

1704358109_659670dd95f9129ec4ba8.png!small?1704358108517

主要处理的步骤如下:

1、读取wih的json结果,匹配路径等信息

2、拼接域名和路径并请求,返回状态码和长度(后来我注释掉了这段功能代码,因为请求很可能会被封禁,不利于后续的测试)

3、输出所有结果,并整合进一个html页面中方便查看

代码如下,需要将wih和wih_rules.yml放在同一目录下面:

import argparse
import subprocess
import json
import re
import requests
import time
from concurrent.futures import ThreadPoolExecutor
import os
from datetime import datetime
import glob

# 在 run_command 函数中保存输出和链接
def run_command(target):
    command = f"./wih -t {target} -r wih_rules2.yml -J -c 10 -P 10"
    result = subprocess.getoutput(command)
    # 使用正则表达式提取JSON结果
    json_matches = re.findall(r'\{.*\}', result, re.DOTALL)  # 使用正则表达式提取JSON
    if json_matches:
        for json_match in json_matches:
            try:
                json_data = json.loads(json_match)
                # 对JSON字符串进行处理
                # 例如,打印JSON中的特定字段
                # print(json_data)
                output, check_links = get_size(json_data)
                # 保存输出
                target_name = target.replace('https://', '').replace('/', '')  # 处理目标域名,去掉可能包含的路径信息
                output_filename = f"result/{target_name}_outpu
可试读前30%内容
¥ 9.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 漏洞 # 渗透测试 # web安全 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 chobits02 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
chobits02 LV.4
网络安全的尽头是? C4安全团队 | 公众号:C4安全团队
  • 21 文章数
  • 75 关注者
用友U8 Cloud移动报表mobilereport接口SQL注入漏洞分析
2025-03-26
Java代码审计 | 华天动力OA漏洞分析两则
2025-03-07
一次Jwt伪造漏洞实战案例分析
2024-12-24
文章目录