资产架构

WEB单个源码安全

单个源码的目录指向单个站点域名

WEB多个目录源码安全

一个网站,两套程序,任何一个程序出现问题都可以进行渗透测试,选择不同的目录

例如:

www.borgeous.com           论坛
www.borgeous.com/blog wordpress程序

WEB多个端口源码安全

用端口区分不同的程序,当某一端口出现漏洞时,即可进行渗透测试

www.borgeous.com           论坛
www.borgeous.com:8081 wordpress程序

服务器架设多个站点安全

同一个ip下的子域名,例如

bbs.borgeous.com 47.178.156.32 dz论坛
edu.borgeous.com 47.178.156.32 edu程序
子域名,同一个IP

给到目标bbs.borgeous.com,可以尝试对edu.borgeous.com进行测试

架设第三方插件接口安全

wordpress插件

web应用插件(phpmyadmin) ——>数据库管理插件

有些数据库不支持外联,为了方便数据库管理,会安装插件,但也方便了攻击者攻击数据库

image-20231102141418205

服务器架设多个应用安全

例如

服务器应用:ftp服务器
方便管理员进行文件操作,也方便攻击者攻击ftp协议服务

攻击阻碍

站库分离

站点和数据库存放的地址不同,需要进行远程协同。

即安装程序的时候,会选择将数据库安装在远程地址,从而将数据库和源码放在不同的地方,以达到站库分离,此时获取就比较困难

image-20231102142716711

负载均衡服务

为了防止某台主机死机或者流量过大的情况产生,负载均衡服务会提供备用服务器进行加速,所以可能我们会拿下备用服务器的权限,而不是主机的权限

CDN加速服务

CDN结点:相当于中间结点,解决访问速度过慢的情况,购买之后,访问结点相当于访问缓存,如果攻击下CDN的权限,可能只是拿下缓存的权限

WAF应用/主机应用防火墙

WAF应用防火墙:针对网站的防护,应用层防火墙

主机防护防护墙:360、火绒、安全狗等,针对于系统防护

源码获取

常见源码泄露

git源码泄露
svn源码泄露
hg源码泄露
网站备份压缩文件/.zip/.rar
WEB-INF/web.xml 泄露
DS_Store 文件泄露
SWP 文件泄露
CVS 泄露
Bzr 泄露
GitHub 源码泄漏

CMS识别(网站指纹识别)

1.观察网站特征信息,找到是什么CMS搭建的,然后下载源码

2.用云悉平台识别CMS:https://www.yunsee.cn/

GIT泄露

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

访问xxxx/.git,进入403页面,说明存在git泄露

利用工具:githack

SVN源码泄露

svn也是一个版本控制平台,原理与Git源码泄露的原理相同。判断方式:在域名后面直接加.svn/entries。如果存在,就利用SvnHack获取源码文件

DS_Store泄露

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

访问xxxx..DS_Store浏览器会自动下载DS_Store文件

漏洞利用工具:

github项目地址:https://github.com/lijiejie/ds_store_exp
用法示例:
ds_store_exp.py http://zhuchao.yslts.com/.DS_Store

composer.json泄露-利用PHP特性

使用方法:直接在域名后面加/composer.json,

可能获取到网站使用的CMS和其他版本信息

比如,访问:http://english.cmdesign.com.cn/composer.json,获取到其CMS等信息

WEB-INF/web.xml泄露

WEB-INF是Java的web应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应的映射才能访问

WEB-INF 主要包含一下文件或目录:

WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等)

资源监控

GITHUB资源搜索

github.com、gitee.com

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 的

关键字配合谷歌、必应搜索

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