SEC-2022版-0005-[源码识别/获取-黑白盒-端口扫描-资产识别]
信息收集
知识点:
1、打点-Web架构-语言&中间件&数据库&系统等
2、打点-Web源码-CMS开源&闭源售卖&自主研发等
3、打点-Web源码获取-泄露安全&资源监控&其他等
4、打点-Web域名-子域名&相似域名&反查域名&旁注等
CMS源码★★★
分类及概念
源码分类主要分为两大类: 开源代码和闭源代码 。
程序源码–获取有价值的源码类信息,追查出其他漏洞,弱口令等……
资源监控:GitHub监控,gitee监控等,防止源码泄露到GitHub等资源平台去。
CMS渗透安全思路:
通过已知的CMS查对应的漏洞库。
可以通过网站类型和应用区别和寻找CMS。
后期攻击非常的重要,针对源码进行测试和漏洞的挖掘。
通过插件获取CMS
通过源码泄露(备份文件,配置文件)获取CMS或者 未知的CMS/内部源码
黑盒测试和白盒测试
黑盒测试:没有源代码,对黑盒开放出来的功能进行测试
白盒测试:有源代码,对源代码进行代码审计并且挖漏洞。
CMS源码收集
获取途径
从第二点开始是针对CMS识别不到的情况。例如灰色产业的。
- 直接识别:
- 云悉指纹识别(点击跳转):需要申请的,识别不是完全的(非大公司淘宝等系列,大公司没CMS)
- GitHub CMS开源指纹识别库
- 备份性文件:
- 管理人员配置不当 => 产生备份文件
- 通过备份文件获取网站源码 => 识别到对应的CMS => 找对应CMS漏洞
- 网站敏感目录文件扫描,扫描其中的备份文件
- 例如:www.zip
- 代码仓库云平台
- 源码分享导致的源码泄露
- 需要使用各种各样的监控措施
- 敏感目录未删除导致的目录文件复原漏洞 => 恢复源码造成源码泄露
- .git:同步代码的一个隐藏目录,泄露时可能造成严重的网站源码泄露。目录存在时状态码为403
- .svn/entries: 也是一个同步代码的隐藏目录
- .DS_store: Mac环境的代码泄露
- composer.json - PHP特性
- php文件的配置文件泄露
- 通过它获取源码版权配置信息插件等。
- 配置性说明性文件。
- Web-INF/web.xml泄露
- javaweb的安全目录
- WEB-INF主要包含以下内容:
- 对应的一道CTF:BUUCTF-Easy Java
- 使用url/Download+POST传参的filename=Web-INF/web.xml
- 使用web.xml当中的信息,使用url/Download+POST传参filename=WEB-INF/classes/com/wm/ctf/FlagController.class下载class文件
- 最后,使用010查出flag的base64编码值,解码后得到flag:flag{1564e8ba-476b-4b95-bdf6-a7764208688e}
- 总体流程 :配置文件,源码结构下载文件漏洞,得到目标
- 鸡肋:需要配合其他漏洞一起使用。
/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:包含所有的 Servlet 类和其他类文件,类文件所在的目录结构与他们的包名称匹配。
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件。
相关利用项目工具:
CMS识别: |
查询&搜索-浏览器关键字搜索语法
可以在这些码云平台搜索对应的开发者,说不定会找到他或他们团队的开发源码,也就间接的找到了网站源码 |
CMS种类
闭源和开源
开源代码
免费开源直接使用。
开源代码 是指可以被 公开查看、使用、修改和分发 的计算机程序源代码。–> 网上可以找到的。
通常包括一个许可证来规定其使用条款。开源软件通常被认为是一种共同创造的成果,能够充分利用社区的智力和经验积累,具有更高的灵活性、可靠性和安全性,也能够促进创新和技术进步。常见的开源许可证有 GPL、MIT、Apache 等。
闭源代码
不开源,内部工具软件等,或者自主研发程序(大网站)。
闭源代码 是指 不能公开查看、使用、修改和分发 的计算机程序源代码,只能获取到二进制版本的程序,因此无法获得程序内部的工作原理和逻辑,难以进行二次开发和优化。
有闭源售卖和自主研发的。
闭源软件通常 需要支付授权费用 才能使用,在 商业应用 上较为 常见 。闭源代码又称为私有代码。
其他分类方式
除了开源和闭源之外,还有一些其他的源码分类:
共享源码:共享源码是指允许在特定条件下使用源代码的模式,通常要求回报共享者的收益和进一步的贡献。
对称源码:对称源码是指同一软件同时具有对于源码和二进制的授权,即允许用户自由地查看、复制、修改和分发源代码和二进制程序。
透明源码:透明源码是指所有软件的源代码都是公开的,没有任何形式的加密和保密措施。
黑X源码来源:
浏览器关键字搜索,例如直接搜索棋牌源码,护站网,约会源码等。
最好在必应和谷歌上去搜索,带有些词汇。或者网络空间搜索约会源码等。
源码有黑白,即:“黑有黑道,白有白道”
重要信息收集
收集信息点:
基础信息 | 系统信息 | 应用信息 | 防护信息 | 人员信息 | 其他信息等 |
---|---|---|---|---|---|
基本搭建的组合信息 | 操作系统支持服务器 | 安装的应用信息 | 安全防护信息+阻碍测试的信息 | 社工类管理员的信息+人的信息泄露 | 企业查询等 |
对应技术点-概览-资产识别:
CMS识别,端口扫描,CDN绕过,源码获取,子域名查询,WAF识别,负载均衡识别等
系统笼统辨别点-架构类
CMD式
改index.php -> index.phP 假设排除中间件的元素,那么就是系统问题。Windows系统默认大小写不敏感,而Linux默认大小写敏感。这是在赌运气。
TTL值辨别点
TTL值离哪个近就是那个系统
各个系统的TTL值:
Linux:64 255
Windows NT/2000/XP: 128
Windows 98 : 32
Unix : 255
数据库默认端口号-架构类
数据库判定:由搭建组合或端口扫描进行判定。例如通过搭建的脚本语言php判断mysql为与其组合的数据库。
常见的数据库,默认端口号是多少:
一、关系型数据库
1、MySql数据库 ,默认端口是: 3306;
2、Oracle数据库 ,默认端口号为:1521;
3、Sql Server数据库 ,默认端口号为:1433;
4、DB2数据库, 默认端口号为:5000;
5、PostgreSQL数据库, 默认端口号为:5432;
6、国产的DM达梦数据库, 默认端口号为:5236。
二、NoSql数据库(非关系型数据库):
1.Redis数据库,默认端口号:6379;
2.Memcached数据库,默认端口号:11211 ;
3.MongoDB数据库,默认端口号:27017;
端口扫描,探针-主动,被动
分为主动式和被动式扫描。部分目标是禁止主动式扫描/探针的。防止主动式子影响业务流量。
主动式:流量从本地出发探针目标信息,发送大量的流量。有法律风险。
被动式:借助网上的接口进行查询,历史记录什么的。(推荐)相当于查询他人已经查过的结果。
工具:在线端口扫描工具或者nmap
端口扫描必须找到真实的IP地址进行扫描才有意义。扫CDN节点是没用的。
端口扫描和端口探测都是用来确定目标主机上哪些端口正在监听和开放的。 |
多域名查询
域名旁注-URL欺诈
旁注有两种理解和解释:
解释1:主站防护过高,无法入手,从其旁站寻找突破口,也就是与主站相关的服务器上的其他站点。
解释2:自己注册与主站相似的站点,赌运气别人输错url,盗取个人信息。
域名与子域名
一般网站域名由三部分组成:三级域名.二级域名.顶级域名;或者:二级域名.顶级域名
xiaodi8.com => 由二级域名+顶级域名组成。
子域名可以自己扩展,形如 www.baidu.com。
相似域名
www.xiaodi8.com |
查域名备案信息
=> 找个域名注册,查看域名是否被注册就知道域名是否被使用过了。
可能域名变动就是换一个对应的应用和网站.
对我们的帮助
资产瞬间多了很多,机会多了很多。
查企业备案信息,备案查询,查询对应信息的IP地址什么的。
棱角社区之信息收集