第13天:信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份

上一章已经收集到了域名信息, 然后在对域名进行源码获取,因为如果有源码的话白盒/黑盒测试都可以做。这样对渗透的思路帮助很大。

获取源码

第一种方式(CMS识别下载)

你通过CMS识别然后从源码站点或者其他渠道进行获取源码的方式。但是如果cms识别不到。那么可以在找找对方的源码是否有泄露

第二种方式(源码泄露)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
源码泄露集合:
composer.json
git源码泄露
svn源码泄露
hg源码泄露
网站备份压缩文件
WEB-INF/web.xml泄露
DS_Store文件泄露
SWP文件泄露
CVS泄露
Bzr泄露
GitHub源码泄露

常见的源码泄露:
https://www.secpulse.com/archives/124398.html


源码泄露的原因:
1.从源码本身的特性入口
2.从管理员不好的习惯入口
3.从管理员不好的配置入口
4.从管理员不好的意识入口
5.从管理员资源信息收集入口

扫描文件备份文件 / 压缩包

image-20250507114630644

git源码泄露

Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。

使用工具:https://github.com/lijiejie/GitHack

SVN 源码泄露

SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。

image-20250507112022239

这个程序是用python2写的,所以这里需要使用python2去运行。

DS_Store 文件泄露

.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

漏洞利用工具:

github项目地址:https://github.com/lijiejie/ds_store_exp

composer.json泄漏

这是一个定义了您当前项目的依赖项,以及依赖项的一些相关信息 常见属性说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
name:表示包的名称

description:表示包的描述

version:表示包的版本

type:表示包的类型

keywords:表示一组用于搜索与筛选的与包相关的关键字

homepage:表示项目网站的url地址

readme:表示README文档的绝对路径

time:表示包的版本发布时间

license:表示包的许可证

authors:表示包的作者

support:表示获取对项目支持的信息对象

require:表示必须安装的依赖包列表

autoload:表示PHP自动加载的映射

minimum-stability:定义了按稳定性过滤包的默认值

repositories:表示自定义的安装源

config:表示一组配置选项

script:表示Composer允许在安装过程的各个部分执行脚本

extra:表示scripts使用的任意扩展数据

后端–方向–资源GitHub–源码泄露

1
2
3
解决1:识别出大致信息却无下载资源
解决2:未识别出信息使用码云资源获取
解决3:其他行业开发使用对口资源站获取

国内外的代码平台

1
2
3
4
https://gitee.com/
https://github.com/
https://www.oschina.net/
https://www.huzhan.com/

很多人喜欢把自己的代码上传到平台托管。攻击者通过关键词进行搜索,可以找到关于目标站点的敏感信息,甚至可以下载网站源码。类似的代码托管平台还有很多,人才是最大的漏洞。

从前端特征性强的前端文件入手

image-20250507130601186

可以从网站的一些不是公用的,特征比较明显的js文件去观察。然后去github上搜索,看看是否有同样引用这个js文件的代码,如果有,说不定就是你想要的那个程序源码。

其实还可以通过观察页面的图标,页面的内容,还有网站的标题,页面源代码中的有没有所谓的版权信息。

image-20250507131936359

我这个目标我是真没有找到什么特殊的文件,然后放到github去搜,啥都没有,不过上面cms识别出来是Discuz3.5版本。

image-20250507132739172

这里并不是只能去搜索js文件,还可以去搜索特征比较明显的css文件之类的。不过还是建议从js文件入手。

通过邮箱方式进行类github网站查询对应的源码

1
2
3
4
5
6
7
8
9
10
一些网站开发者在进行网站开发的时候有可能会留下自己的联系方式,那么我们想要进行信息收集的话那么就可以将其作为特征,然后去这种源码网站进行查询。也有一些注释的关键信息。

通过谷歌语法进行搜索:
site:Github.com smtp
site:Github.com smtp @qq.com
site:Github.com smtp @126.com
site:Github.com smtp @163.com
site:Github.com smtp @sina.com.cn
site:Github.com smtp password
site:Github.com String password smtp

GitHub资源搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
in:name test #仓库标题搜索含有关键字

in:descripton test #仓库描述搜索含有关键字

in:readme test #Readme文件搜素含有关键字

stars:>3000 test #stars数量大于3000的搜索关键字

stars:1000…3000 test #stars数量大于1000小于3000的搜索关键字

forks:>1000 test #forks数量大于1000的搜索关键字

forks:1000…3000 test #forks数量大于1000小于3000的搜索关键字

size:>=5000 test #指定仓库大于5000k(5M)的搜索关键字

pushed:>2019-02-12 test #发布时间大于2019-02-12的搜索关键字

created:>2019-02-12 test #创建时间大于2019-02-12的搜索关键字

user:test #用户名搜素

license:apache-2.0 test #明确仓库的 LICENSE 搜索关键字

language:java test #在java语言的代码中搜索关键字

user:test in:name test #组合搜索,用户名test的标题含有test的

找类似黑产的网站的源码

首先这种源码站需要你自己长期干这一方面的一个收集。不是说下面这些源码站就是所有。

思路:首先从功能点出发, 因为大多数源码站点都提供功能分类,比如说目标是一个聊天类型,那么就可以从社交这种分类来缩小我们的搜索范围。

黑源码

1
2
3
4
5
6
7
https://www.huzhan.com/
https://28xin.com/
https://bbs.bcb5.com/
https://www.shixinwl.com/
https://www.lengcat.com/
https://www.xlymz.com/
https://www.ymadx.com/