也就能欺负开源CMS和闭源售卖的CMS了。
方式1 - 直接获取 By 指纹识别如云悉指纹识别平台
在网络安全领域,识别CMS技术也被称为指纹识别,是因为类似于指纹可以唯一标识一个人一样,不同的CMS技术也具有独特的特征,可以用来唯一标识一个网站所使用的CMS技术,例如WordPress、Joomla、Drupal等,它们在代码结构、文件命名、URL结构、数据库表结构等方面都存在一些特征。通过分析这些特征,可以识别出网站所使用的CMS技术。像qzdy的cms,你总能在class名、id名看到“qzdy”字符串。
首选直接获取,因为一键式傻瓜操作。包括:
-
肉眼看,如看网站logo、名字(如名字叫vulfocus一看/一搜就知道是基于靶场CMS之vulfocus的),看底部有没有类似Theme qzdy的提示
-
如上上述信息都被站长有意删掉了导致看不出来。就用CMS识别网站/工具 | 指纹识别网站如(但是它注册渗透人员要提交三个CMS识别规则)。百度、淘宝这种自主研发的就别指纹识别了,不是CMS,没有识别指纹的说法。识别出CMS后两件事:1. 搜该CMS漏洞;2.代码审计、部署在本地去渗透测试。但是不是一定能识别出CMS,有些小CMS还不流行,就不被互联网所知,也可能是网上没有可下载的资源(不开源不售卖,自己和朋友用) / 内部售卖程序。
方法2 - 基于站长不好的备份文件的习惯 | 某黑阔博客源码泄漏
黑客柠檬的Blog - www.h0r2yc.com/被老师用扫描工具如7kbscan扫描到有个www.h0r2yc.com/1.zip文件,一看,还是源码备份文件。
站长备份源码的两种方式:
-
对源码目录右键备份。这种方式较为安全,备份文件不在域名绑定的目录下。但就怕站长的IP绑定目录 > 域名绑定的目录,会被黑客用IP扫描到backup文件。
-
在网站根目录全选文件后右键备份。柠檬的Blog就是这种方式,也就是标题所指不好的习惯。
方法3 - 基于GIT 泄漏 | 某博客源码的泄漏
代码仓库包括但不限于github、gitee、gitlab。 Git就不介绍了,git init初始化项目目录后,会留下.git目录,发布代码的时候,如果没有把gt、这个目录删除,就直接发布到了服务器上,攻击者就可以通过它和GitHack工具来恢复源代码。
-
第一步 - POC:判断.git文件夹存在且能访问到,403是我们希望的状态码,404则换下一个攻击方法。
-
若403,去攻击吧。
防护方法:
-
不要把.git文件夹部署到云服务器上。
-
若一定要部署在云服务器上,使用技术手段限制权限,让别人访问该目录为404
方法4 - 基于SVN泄漏 | 某国外小伙子源码泄漏
SVN是一个开放源代码的版本控制系统(git同行)。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用导出功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。
工具是SvnHack.py,,用python2开发的工具。命令为python SvnHack.py -u https://ink0.cn/.svn/entries --download
使用前请访问http://ink0.cn/.svn/entries,注意事项如404不行,403或200状态码可以,和GitHack.py一样。
防护方法:
-
不要把.svn/entries文件夹部署到云服务器上。
-
若一定要部署在云服务器上,使用技术手段限制权限,让别人访问该目录为404
方法5 - 基于DS_Store 泄漏 | 某开发 Mac 源码泄漏
.DS_Store是Mac下Finder用来保存如何展示文件/文件夹的数据文件,每个文件夹下对应一个。如果将.DS Store.上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
工具ds_store_exp.py,,用python2开发的工具,和GItHack一样。
-
漏洞POC:访问https://ink0.cn/.DS_Store,若访问后出现下载.DS_Store文件:
那么存在可利用的漏洞。
-
安装脚本所需依赖
pip install ds-store requests
-
python ds_store_exp.py https://ink0.cn/.DS_Store
防护方法:
-
不要把.DS_Store文件部署到云服务器上。
-
若一定要部署在云服务器上,使用技术手段限制权限,让别人访问该目录为404
其实还有很多类似GIT、SVN、DS_Store的工具,如hg、SWP、CVS、Bzr,不讲是因为技术过时了,现在见到的少。
方法6 - 基于PHP 项目特有的composer.json 泄漏 | 某直接搭建源码泄漏
本方法只适用于php网站!
Java有Maven, Node.js有npm, ROR有gem,都是包管理工具,一键式下载项目所需的依赖包。PHP在Composer之前,包管理的历史不堪回首。当时如果应用依赖于第三方库,PHPer需要拷贝这些库的源代码, 或者通过PEAR、PECL安装。如果第三方库又依赖于更多的第三方库,那么很快就会进入依赖的黑洞。直到Composer出现,PHPer们看到了属于PHP的包管理的曙光。
很多php项目都会用到composer.json配置文件且放置在项目根目录下(但不是所以php项目都会这样做,我项目里就没有composer.json):
基于此原理,我们访问https://www.ink0.cn/composer.json,例如下图示例:
得到需要资产信息:基于ThinkCMF框架、Apache2.0、"email":"zxxjjforever@163.c0m"、项目用到的依赖及其版本号。有时甚至能获取到CMS名称。
方法7 - 基于WEB-INF泄露漏洞 | 一道CTF题目
此漏洞实际中太鸡肋,可以不学。
就是JAVA项目有个核心配置文件夹WEB-INF,一般是不可见的,如果可见,就是WEB-INF泄露漏洞,此漏洞仅适用于java项目。
RoarCTF 2019 Easy Java的一道题目。这个漏洞一般在正常情况下是胜算不大的,甚至可以直接忽略利用这个漏洞的可能,因为就算你能得到目标站点的WEB-INF文件夹,你也下载不到源码,除非额外提供你下载漏洞,比如。
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等)
-
打开题目所给靶场环境:
-
(我们先找下载漏洞),点击"help",并对此过程用burp抓包,得到路径http://1cad3686-d16a-410a-83a4-eac778514139.node4.buuoj.cn:81/Download,POST参数为filename=help.docx,发送该数据包会从站点下载help.docx,所以用HackBar发包,不要用burp发包。
-
下载漏洞POC:已知他是JAVA站点。
把POST参数改为filename=WEB-INF/web.xml,用HackBar发包发现下载了web.xml文件,打开此文件:
-
我们现在的思路是找到 class 文件的路径,然后基于下载漏洞下载 class 文件,再通过反编译 class 文件,从而得到网站源码。
注意到web.xml第13行说有个IndexController类,所在包路径为
com.wm.ctf.IndexController
,我们还知道WEB-INF/classes/ : 一般用来存放Java类文件(.class),所以IndexController.class的下载路径为class/com/wm/ctf/IndexController.class
-
下载漏洞EXP:
然后浏览器会自动下载IndexController.class。同理获取其他.class文件,其中有一个文件名为FlagController.class,看名字就知道有flag,对它反编译 class 文件,从而得到网站源码。
-
赛后推测:下载网址是http://1cad3686-d16a-410a-83a4-eac778514139.node4.buuoj.cn:81/Download,如下是我还原出的目录结构:
-
为什么只有WEB-INF泄露漏洞还不够EXP?:你有WEB-INF泄露漏洞说明你能获取到WEB-INF文件夹,但是其下文件如
WEB-INF/class/com/wm/ctf/IndexController.class
、WEB-INF/web.xml
一般会被限制访问权限,即404,不给你下载。 -
为什么说WEB-INF泄露漏洞很鸡肋?:你都有下载漏洞了,那岂不是随便下载么,干嘛还迂回曲折的下载.class文件。
方法8 - 基于资源监控 | github / gitee泄漏
在渗透测试的信息收集阶段,可以去Github和码云上搜索与目标有关的信息,或者就有意想不到的收获。(有些开发人员将代码上传到代码库的时候,有可能连一些重要的配置信息也上传了)。标签:语法搜索、关键字搜索、社工
以下摘自互联网,均手打的,可能有单词拼写错误,自行注意。
Github的搜素语法:
-
in:name test #仓库标题搜索含有关键字test
-
in:description 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的
使用 Github 进行邮件配置信息收集
有些扫描工具扫描还会爆出网站里记录的邮箱地址,可能是CMS开发者 / 站长(管理员)的邮箱。
-
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
-
……
-
我们也可以锁定域名搜索结合厂商域名 灵活运用例如搜百度的 site:Github.com smtp @baidu.com
使用Github进行数据库信息收集
-
site:Github.com sa password
-
site:Github.com root password
-
site:Github.com User ID=’sa’;Password
-
site:Github.com inurl:sql
使用Github进行 SVN 信息收集
-
site:Github.com svn
-
site:Github.com svn username
-
site:Github.com svn password
-
site:Github.com svn username password
使用Github进行综合信息收集
-
site:Github.com password
-
site:Github.com ftp ftppassword
-
site:Github.com 密码
-
site:Github.com 内部
实例 - 渊龙Sec团队
官网https://dh.aabyss.cn/#,注意到关键词aabyss,于是我们去github搜搜看
成功发现该团队的项目与邮箱:
实例 - 一位群成员
英文名Norah C.IV,
点进去发现新昵称RoziSec和博客地址:
百度/bing/谷歌下RoziSec,没有结果。访问下他的博客:
实例 - 小迪博客
浏览器F12打开抓包界面,在其中一个文件里发现注释(因为我们这里目的是社工、信息搜集,不是代码审计,所以重点关注.css、.js、.php、.html等文件,CMS开发者写代码时往往会留下水印注释),牵扯到一个新域名ww.yiwuku.com、站点、作者及其邮箱
接下来思路是基于信息打点发现的社工信息,配合github、gitee乃至搜索引擎搜集相关源码。搜下ww.yiwuku.com看看:
看到这差不多懂了,就是小迪的博客的CMS是尔今 erx@qq.com的人开发的,要知道虽然CMS源码到了我们站长手里,我们一般不会改动太多,甚至看都不看源码直接部署,我博客源码里至今还有一堆qzdy写的注释、他留的”水印“以及用qzdy命名的class、id。可能因为作者收费或不开源或内部自己人使用而在百度上搜不到CMS源码,但是用他源码的人,有人把项目分享到了GitHub。我们点击其中一个项目查看:
发现了该CMS源码,换句话说,我没从小迪、开发者尔今身上获取到源码,但我从其他使用该CMS的人的github项目里获取到了源码,这套源码几乎和小迪的源码相似90%。
使用自动化资源监控脚本
当你将长期关注一个目标时(常见于持续化监控 / 漏洞监控事件上),
-
持续化监控:目前并未通过以上社工方法搜集到相关源码,但是现在没有不代表以后也没有,老师会讲一个自动化资源监控脚本.exe,将它运行在服务器上,24小时地跑,哪天网上泄露了源码资源,被脚本探测到了,就会告诉你。
-
共有 0 条评论