freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

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

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

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

FreeBuf+小程序

FreeBuf+小程序

源码泄露发现
2023-01-31 14:52:16
所属地 江苏省

0x00 前言

渗透测试的第一步是信息收集。我们常常使用dirsearch等工具对网站进行扫描,探测是否存在敏感路径或者隐藏路径。在一些情况下,网站发布者将网站的源码压缩包放在网站的路径下面。此时我们输入正确的文件名称就能将其下载下来。

网站源码压缩包可能是常见的www、test、wwwroot,也有可能是存在一定规律的名称,比如按照公司的域名起名字。因此,本文会写一个根据域名猜测源码名称的python脚本。如果师傅们有更好的办法欢迎指导。

0x01 分析

www.baidu.com为例,其压缩包的可能名称是www、baidu、com、baidu.com、com.baidu、baiducom、combaidu。压缩包的后缀一般是常见的zip、gz、tar.gz、rar、

0x02 脚本编写

import itertools

# 常用压缩文件后缀
yasuo = [".zip", ".rar", ".tar.gz", ".gz"]

def dkr_pinjie(qianzhui:list, houzhui:list):
result01 = []
for x in itertools.product(qianzhui, houzhui):
temp = ""
for i in x:
temp = temp + i
result01.append(temp)
return result01

# 分析域名
def domain_analyse(domain_name:str ,deep:int):
"""
只对短域名
:param domain_name: 域名字符串,例如www.baidu.com
:param deep: 压缩包的前缀的长度 1,2,3
:return: 生成的域名列表
"""
qianzhui = []
lis1 = domain_name.split(".")
qianzhui.extend(lis1)
if deep == 1:
return dkr_pinjie(qianzhui, yasuo)

# 笛卡尔乘积 n*n
for x in itertools.product(lis1, lis1):
if len(set(x)) == 1:
continue
# print(x)
temp = ""
temp01 = ""
for i in x:
temp = temp + i
temp01 = temp01 + "." + i
qianzhui.append(temp)
qianzhui.append(temp01[1:])
if deep == 2:
return dkr_pinjie(qianzhui, yasuo)

# 笛卡尔乘积 n*n*n
if len(lis1) > 2:
for x in itertools.product(lis1, lis1, lis1):
if len(set(x)) < 3:
continue
# print(x)
temp = ""
temp01 = ""
for i in x:
temp = temp + i
temp01 = temp01 + "." + i
qianzhui.append(temp)
qianzhui.append(temp01[1:])
if deep == 3:
return dkr_pinjie(qianzhui, yasuo)
return 0

def writeToTxt(filename, lis1:list):
if lis1[0][-1] != "\n":
for i in range(len(lis1)):
lis1[i] = "/" + lis1[i] + "\n"
with open(filename, 'a') as f:
f.writelines(lis1)

if __name__ == '__main__':
domain_name = "www.baidu.com"
output = "test.txt"
result = domain_analyse(domain_name, 3)
writeToTxt(output, result)

www.baidu.com为例,主要函数是domain_analyse,它有两个参数,第一个参数是域名,第二个参数是需要的长度,有1,2,3三种选择。

deep=3

通常设置为2即可。

输出的txt文件:

之后将导出的路径与常用的路径合并去重即可。

常用的压缩包名字典:https://github.com/saucer-man/penetration-script/blob/master/source_leak/dictionary.txt

合并的代码参考:

去重合并txt文件

然后用dirsearch或者使用burpsuite跑均可。

扫描的脚本:https://github.com/saucer-man/penetration-script/blob/master/source_leak/source_leak_check.py

  • 使用帮助

    • python3 source_leak_check.py -h

    • python3 source_leak_check.py --help

  • 扫描单个url

  • 批量扫描url文本:

    • python3 source_leak_check.py -l target.txt

    • python3 source_leak_check.py -list=target.txt

0x03 参考链接

https://github.com/saucer-man/penetration-script/tree/master/source_leak

# 渗透测试 # 数据泄露 # web安全 # python # python脚本
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录