[SSCTF](misc100)HTTP攻击流量分析+.git源码泄露

Paste_Image.png

一道 Misc 题 , 从比赛官网点击比赛链接后跳转到了一个 Web 页面 , 从这里可以下载一个流量包

Paste_Image.png

下载之后 WireShark 分析 , HTTP协议流量包

Paste_Image.png

跟踪 TCP 流后发现 , 流量包的场景应该是攻击者利用扫描器对某一个网站进行 git 源码泄露的扫描

1. 根据 HTTP 请求头的 URL (请求的文件是常见的 git 配置文件)
2. 根据不断变化 User-Agent 头部 (爬虫防止目标网站有反爬虫策略而进行的随机化)
3. 根据相应码大量为 404
Paste_Image.png

这里已经获取了某一些配置信息

Paste_Image.png

如果之前还不是很确实是 git 源码泄露 , 那么通过下面这个数据包就可以肯定了

/.git/HEAD 这个文件在 git 仓库中保存着当前分支的指针
这里应该是出题人将 .git 重命名为了 .nijiakadaye
Paste_Image.png

回过头来想想 , 这是一道 Misc 题目 , 流量包为什么不是从比赛的主站直接下载 , 而是从一个新的 web 站去下载 ?
而且流量包是攻击者对某一个目标网站的扫描流量 , 是不是攻击者扫描的事实上就是这个网站呢 ?
验证一下即可
访问该网站的 ./nijiakadaye/HEAD 文件 , 发现与流量包中一致 , 这也充分验证了我们刚才的猜想

注意这里直接访问 ./nijiakadaye/ 目录的话是会 Forbidden 的
有一些开发(运维)人员了解 git 源码泄露的危害性
因此他们对此做出了一些保护措施 , 例如 : 
禁用 apache 的目录索引功能 , 具体方法如下 : 
编辑 /etc/apache2/apche2.conf 
在网站目录的配置项下 : 
 170 <Directory /var/www/>                                                                                                                             
 171     Options FollowSymLinks Indexes                                                                                                                
 172     AllowOverride ALL                                                                                                                             
 173     Require all granted        
 175     DirectoryIndex index.php index.html index.htm                                                                                                                   
 176 </Directory>                                                                                                                                      
 177                              
修改为 : 
 170 <Directory /var/www/>                                                                                                                             
 171     Options FollowSymLinks                                                                                                             
 172     AllowOverride ALL                                                                                                                             
 173     Require all granted        
 175     DirectoryIndex index.php index.html index.htm                                                                                                                   
 176 </Directory>                                                                                                                                      
 177                        
也就是去掉 Indexes 这个 Options
注意这里如果配置了 Apache 的虚拟主机 , 配置起来也是同样的道理
这样用户在访问某一个目录的时候 , 如果这里目录下面没有 DirectoryIndex 这个配置项中定义的文件
例如 index.html index.php 
apache 就是直接返回 403 Forbidden
但是这样的配置防止攻击者在不知道目标网站目录结构的情况
或者说这个配置项并不是是一个为了安全考虑的配置项
当攻击者知道目标目录的结构的时候 , 那么这个配置项事实上是并没有什么用处的
我们这里 .git 源码泄露就属于上述的情况 , .git 文件夹的目录结构基本上是固定的 , 所以说
这里 403 Forbidden 事实上只能阻挡误操作点击进来的用户 , 还有一些不明所以的攻击者
但是似乎有大量的网站正在使用这样所谓的防护措施 , 这也是非常危险的
一般情况下 , 我们建议将 .git 目录放置于网站根目录的上层
也就是说在创建 git 仓库的时候就直接在网站根目录的上层去创建
这样就将 .git 目录限制在了客户端不能访问到的位置 (但是也不排除 cgi 层出现任意文件读取漏洞)
image.png
Paste_Image.png

我们可以通过已知的目录结构轻松地访问到目标主机的敏感文件

Paste_Image.png
Paste_Image.png

我们现在已经搜集到了足够多的信息 , 这个时候可以直接利用现成的工具进行攻击了
这里我使用了之前写的多线程的 .git 源码泄露利用脚本 , 这个脚本可以直接恢复目标主机的整个 .git 目录
也就是说我们可以使用

git reflog

来查看开发者所有的历史操作以及提交信息 , 从而掌握整个后台开发的流程
甚至在某些情况下 , 当开发者的安全意识淡薄 , 甚至有可能获取到网站的后台密码或者用于发送注册邮件的邮箱的密码

上面说到的工具已开源 : 
可以直接使用 : 
git clone https://github.com/WangYihang/GitHacker.git
cd GitHacker
python GitHacker.py
进行使用
image.png
image.png
image.png
Paste_Image.png
image.png

目标网站的 .git 目录非常大 , objects 文件非常多 , 因此之前写过的脚本速度很慢 , 当我使用

git fsck | cat -n

查看还有多少 objects 文件需要下载的时候 , 居然显示有两千多个
然后就这个脚本就产生了多线程的版本

image.png

50 个线程大概用了一分钟左右
利用完成 , 进入文件夹

image.png
git reflog 查看历史操作信息
git reflog > log
image.png
使用 git diff [COMMIT_ID] [COMMIT_ID]
来对两个版本逐个进行比较
image.png

发现以下比较有用的信息

image.png
image.png

很容易想到这里的密文应该是这里的加密算法对 flag 进行加密得到的
这里就只需要对算法求逆即可
事实上这里的算法非常简单 , 由于只使用了异或操作 , 其实加密算法也是解密算法
这里的加密算法涉及到一个密码 , 由于在 git 的日志中提到了 :

wodegea

这个字符串 , 导致当时一直在纠结加密算法的密码是什么
花费了较长的时间 , 导致失去了一血 , 不开心...

<?php
$encrypt = base64_encode(wtf('flag_password', 'ssctf'));
function wtf($data,$pwd) {
    $cipher ="";
    $key[] ="";
    $box[] ="";
    $pwd_length = strlen($pwd);
    $data_length = strlen($data);
    for ($i = 0; $i < 256; $i++) {
        $key[$i] = ord($pwd[$i % $pwd_length]);
        $box[$i] = $i;
    }
    for ($j = $i = 0; $i < 256; $i++) {
        $j = ($j + $box[$i] + $key[$i]) % 256;
        $tmp = $box[$i];
        $box[$i] = $box[$j];
        $box[$j] = $tmp;
    }
    for ($a = $j = $i = 0; $i < $data_length; $i++) {
        $a = ($a + 1) % 256;
        $j = ($j + $box[$a]) % 256;
        $tmp = $box[$a];
        $box[$a] = $box[$j];
        $box[$j] = $tmp;
        $k = $box[(($box[$a] + $box[$j]) % 256)];
        $cipher .= chr(ord($data[$i]) ^ $k);
    }
    return $cipher;
}
?>
SSCTF{give you flag,can you accept?"}
SSCTF{xsL3HOvFlV+H40s0mhszc5t1x38EU0ZIFJHZ/h2sC3U=}
var_dump(wtf(base64_decode('xsL3HOvFlV+H40s0mhszc5t1x38EU0ZIFJHZ/h2sC3U='), 'ssctf'));
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,568评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 24,860评论 7 249
  • 都说人这一生共有三道槛,第一是读书,第二是结婚,第三是生子。这好像是人这一生必做的三件事,只是顺序可以不同而已。当...
    cady麻麻阅读 131评论 0 0
  • 此刻 我烟雨蒙蒙 躲在一个叫做大众的车里 醉看 雨不大 淅淅沥沥 毫无夏天的气派 轰轰烈烈 宛如一个江南女子 用温...
    姚建新阅读 246评论 0 0