信息打点第二期- 源码获取

知识点:

1、CMS指纹识别源码获取方式
2、习惯&配置&特性等获取方式
3、托管资产平台资源搜索监控
详细点:
参考:https://www.secpulse.com/archives/124398.html
源码泄漏原因:
1、从源码本身的特性入口
2、从管理员不好的习惯入口
3、从管理员不好的配置入口
4、从管理员不好的意识入口
5、从管理员资源信息搜集入口
源码泄漏集合:
composer.]son
git源码泄露
svn源码泄露
hg源码泄漏
网站备份压缩文件
WEB-INF/web.m1泄露
DS Store文件泄露
SWP文件泄露
CVS泄露
Bzr泄露
GitHub源码泄漏

演示案例:

直接获取-CMS识别-云悉指纹识别平台

(yunsee.cn 在线指纹识别平台-只能识别有指纹的)

习惯不好备份文件-某黑阔博客源码泄漏

(网站管理员将网站备份到网站目录下造成源码泄露,备份到上一级目录则可以规避直接可访问)

配置不当-GIT泄漏某程序员博客源码泄漏(源码管理仓库泄露)在网站后添加/.git 看看是否存在git包,如果有可以尝试githack获取源码

参考链接:https://codeleading.com/article/54926468941/
利用工具:https://github/lijiejie/GitHack
当在一个空目录执行 git init 时,Git 会创建一个 .git 目录。 这个目录包含所有的 Git 存储和操作的对象。 如果想备份或复制一个版本库,只需把这个目录拷贝至另一处就可以了
比如某个网站存在.git文件泄露,可以:
利用方式:
github上的githack可以把整个.git备份的文件下载下来。它能解析 .git/index 文件,并找到工程中所有的:文件名和文件 sha1,然后去 .git/objects/ 文件夹下下载对应的文件,通过 zlib 解压文件,按原始的目录结构写入源代码

配置不当-SVN泄漏-某国外小伙子源码泄漏

SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。互联网上很多版本控制服务已从 CVS 迁移到 Subversion。
很多网站都使用了 svn 版本控制系统,和使用 git 版本控制器类似,很多开发者网站安全意识不足,代码放到生产坏境中后,没有清理 svn 的一些信息,导致 svn 残留,因此攻击者可以使用工具 dvcs-ripper 下载网站源码。
当可以访问到/.svn/entries的时候,就证明存在了。
比如乌云曾经爆出的某个网站:

http://data.5i5j.com/sitemetrics/.svn/entries
利用工具 https://github.com/kost/dvcs-ripper
工具命令 rip-svn.pl -v -u http://www.localhost.test/.svn/

配置不当-DS Store泄漏-某开发Mac源码泄漏

.DS_Store 文件 MAC 系统是用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。如果用户删除以后的副作用就是这些信息的失去。

这些文件本来是给 Finder 使用的,但它们被设想作为一种更通用的有关显示设置的元数据存储,诸如图标位置和视图设置。 当你需要把代码上传的时候,安全正确的操作应该把 .DS_Store 文件删除才正确。通过.DS_Store可以知道这个目录里所有的文件名称。

当访问/.ds_store可以访问的到,就证明存在。例如:

http://www.baidu.com/.ds_store

工具:https://github.com/lijiejie/ds_store_exp

使用方式:

python ds_store_exp.py http://www.example.com/.DS_Store

PHP特性-composer.json泄漏-某直接搭建源码泄漏

例如:http://57.128.195.180/composer.json

下载配合-WEB-INF泄露-RoarCTF-2019-EasyJava

解题思路:访问靶场通过控制filename来任意文件下载

因为WEB-INF会存储配置文件,所以构造filename=WEB-INF/web.xml,此文件会记录源码的结构

访问文件内容,并构造文件名下载

最后通过反编译出flag

资源监控-GITHUB泄漏-语法搜索&关键字搜索&社工
通过github和google hack语法搜索相关信息
相关利用项目:

cMs识别:https://www.yunsee.cn/ 备份:敏感目录文件扫描 -7 kbscan-WebPathBrute
CVS:https://github.com/kost/dvcs-ripper
GIT:https://github.com/lijiejie/GitHack
SVN:https://github.com/callmefeifei/SvnHack_DS
Store:https://github.com/lijiejie/ds_stor_exp

GITHUB资源搜索:
in:name test #仓库标题搜索含有关键字
in:descripton test #仓库描述搜索含有关键字
in:readme test #Readme文件搜素含有关键字
stars:>3000 test #stars数量大于3000的搜索关键字

posted @ 2024-03-22 17:17 Ember00 阅读(12) 评论(0) 推荐(0) 编辑
摘要: kali的常用命令 1.常用命令 passwd 修改密码 passwd root 修改root用户密码 date 显示系统日期 sudo 后面加命令 就可以调用管理权限 apt-get update 更新软件列表 这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软 阅读全文
posted @ 2023-04-24 21:57 Ember00 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 流程图如下 聊天室模块划分: ​ 主go程: 创建监听socket。 for 循环 Accept() 客户端连接 —— conn。 启动 go 程 HandlerConnect: HandlerConnect: ​ 创建用户结构体对象。 存入 onlineMap。发送用户登录广播、聊天消息。处理查询 阅读全文
posted @ 2022-10-27 11:56 Ember00 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 环境准备 go环境搭建 下载 首先是下载,如果使用的是虚拟,直接到浏览器上去下载官方的golang-Lunix安装包 Downloads - The Go Programming Language (google.cn) 如果点击了没有跳转可以赋值链接迅雷打开 下载好后直接拖进虚拟机(前提是虚拟机安 阅读全文
posted @ 2022-09-30 23:44 Ember00 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 文本文件 目前我们的程序运行了之后结果是保存在内存中,关闭程序或者断电就消失了,往往一些数据是要长期保存的(比如日志信息),这就可以通过文件来存储 创建文件 go语言提供了一个专门的Create()函数来创建文件 创建步骤为: 1.导入os包(含有创建,读写文件的函数) 2.指定创建文件的路径以及文 阅读全文
posted @ 2022-09-13 17:47 Ember00 阅读(44) 评论(0) 推荐(0) 编辑
摘要: Golang基础-5 map 又叫映射(map),go语言中内置的一种类型,同样也是键值对关联 基本语法 var map变量名 map[keyType]valueType 注意key的数据类型不能是slice,map,function,一般是int,string类型 value的数据类型一般是数字( 阅读全文
posted @ 2022-09-06 18:39 Ember00 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 日期和时间函数 获取当前日期和时间 time.Now()返回值是一个结构体类型是time.Time(结构体) 返回值的类型也有对应的方法获得具体的年,月,日,时,分,秒 比如: 直接通过.xxx()的方式获取 日期的格式化 fmt.Sprintf()有返回值可以得到字符串内容以便后续使用 还有种方式 阅读全文
posted @ 2022-09-05 20:10 Ember00 阅读(22) 评论(0) 推荐(0) 编辑
摘要: Golang基础-3 字符串系统函数 统计字符串长度 按字节进行统计 len(str)这是个内置函数,不用额外导包 注意在golang中用的是utf-8编码,字母是一个字节,汉字是三个字节 字符串的遍历 方式一:for range var x string="golang你好" fmt.Printl 阅读全文
posted @ 2022-09-03 11:33 Ember00 阅读(48) 评论(0) 推荐(0) 编辑
摘要: Golang基础2 指针 如果声明变量var x int ,则&x是获取x值所在的地址,类型是整型指针(*int),即我们可以声明一个变量来接收其返回值 var p *int=&x 那么p就是一个指针变量 age:=18 // 这里是输出i变量对应的地址通过&+名字获取 fmt.Println(&a 阅读全文
posted @ 2022-09-03 10:15 Ember00 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Golang入门 基本的项目结构 go的环境搭建比较简单就直接跳过了 工程结构如下 每一个go程序都需要依赖一个包 现在写一个简单的程序 package main import "fmt" func main(){ fmt.println("hello Golang") } 同时导入多个包 impo 阅读全文
posted @ 2022-08-26 19:09 Ember00 阅读(86) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示