i春秋 第二届春秋欢乐赛 Hello World

使用扫描工具扫描

python3 dirmap.py -i http://106.75.72.168:9999/ -lcf

发现存在/.git/文件

 使用GitHacker获取泄露的信息

python GitHacker.py http://106.75.72.168:9999/.git/

查看flag.js文件

cat flag.js

发现是一袭混淆的代码

重新审视赛题

获取遗漏的object

本题的考点原意是.git/logs/HEAD文件的利用,而githack并没有对其中的hash提取,因此遗漏了部分的object

这里使用JGitHack是可以获取到这些遗漏的object(这里不知道为什么我在windows10上无法正常使用)

手工提取object

这里使用git的底层命令,cat-file和ls-tree

cat-file

发现b5dfb5846ad5a81ebf6104d5230728cbf48d653b与9ee4dcc90211b7c2dc3e5639a0296aecb730b48c的文件名相同但是hash不同

root@bogon:#git cat-file -p 887746652d1084c47682b6e1b46bbc37c9315663
d1084c47682b6e1b46bbc37c9315663
tree b5dfb5846ad5a81ebf6104d5230728cbf48d653b
author yichinzhu <787954349@qq.com> 1494432951 +0800
committer yichinzhu <787954349@qq.com> 1494432951 +0800

finish
root@bogon:#git cat-file -p 09e053a355059e89b4367024578c477e022ac6d6
tree 9ee4dcc90211b7c2dc3e5639a0296aecb730b48c
parent 887746652d1084c47682b6e1b46bbc37c9315663
author yichinzhu <787954349@qq.com> 1494434367 +0800
committer yichinzhu <787954349@qq.com> 1494434367 +0800

the dev branch is for developing
root@bogon:#git cat-file -p b5dfb5846ad5a81ebf6104d5230728cbf48d653b
100644 blob f2b45f1e5af6dc1a8607c11e4ddc5fd077276c45    flag.js
100644 blob 058e764e697528c84db00fe6e6e872bcb96dd23c    flag.php
100644 blob b87380749e1c45195483373cc0061547f344900c    index.php
root@bogon:#git cat-file -p 9ee4dcc90211b7c2dc3e5639a0296aecb730b48c
100644 blob 04bb09bb63fe48e6cab3e1c72a7ef51dda9634b8    flag.js
100644 blob 058e764e697528c84db00fe6e6e872bcb96dd23c    flag.php
100644 blob b87380749e1c45195483373cc0061547f344900c    index.php
root@bogon:#git cat-file -p b87380749e1c45195483373cc0061547f344900c
<html>
<head>
<title>
</title>
</head>
<script src="flag.xmas.js"></script>
<h1>Hello, World!</h1>

ls-tree

root@bogon:#git ls-tree b5dfb5846ad5a81ebf6104d5230728cbf48d653b
100644 blob f2b45f1e5af6dc1a8607c11e4ddc5fd077276c45    flag.js
100644 blob 058e764e697528c84db00fe6e6e872bcb96dd23c    flag.php
100644 blob b87380749e1c45195483373cc0061547f344900c    index.php

root@bogon:#git ls-tree 9ee4dcc90211b7c2dc3e5639a0296aecb730b48c
100644 blob 04bb09bb63fe48e6cab3e1c72a7ef51dda9634b8    flag.js
100644 blob 058e764e697528c84db00fe6e6e872bcb96dd23c    flag.php
100644 blob b87380749e1c45195483373cc0061547f344900c    index.php

下载两个hash不同的文件

因为hash不同代表这两个文件肯定被修改过,所以下载下来查看有哪些部分被修改

使用命令git cat-file

root@bogon:#git cat-file blob f2b45f1e5af6dc1a8607c11e4ddc5fd077276c45 > f2b45f1.js
root@bogon:#git cat-file blob 04bb09bb63fe48e6cab3e1c72a7ef51dda9634b8 > 04bb09b.js

对比两个文件

发现改变的地方就是flag,链接起来提交即可

 

 

TIPS

如果你使用Git_Extract可以直接提取到两个js文件

python git_extract.py http://106.75.72.168:9999/.git/

原文地址:https://www.cnblogs.com/R-S-PY/p/12759115.html