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

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

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. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 进击的HACK 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
进击的HACK LV.6
欢迎关注公众号:进击的HACK 坚持每日更新,一起变得更强。
  • 36 文章数
  • 48 关注者
nuclei介绍与持续更新的poc集合
2023-04-24
钓鱼前邮件收集
2023-04-10
红队实战 | cobaltstrike钉钉群上线提醒
2023-04-06
文章目录