春季学习报告 4.19

本周学习的主要内容是 git svn泄露的原理 和 开始尝试做竞赛题
一 竞赛题
首先,我挑的题,都是非常幼稚的,毕竟我太蔡了,网上也没有教程
web类的竞赛题完全下不了手,暂时得先空着
BJDCTF-2020-MISC-鸡你太美 签个到 你猜我是个啥
你猜我是个啥
首先作为misc提醒,主要是考混和知识,这一题主要是得到一个破损的压缩包,无法解压,然后要你得到flag。
既然无法解压,所以也就谈不上进一步破解了,思路就是扔进winhex 直接看内容,虽然压缩包打不开,但是内容还是可以“读”的出来的,可以在代码末尾看见flag,直接拿下(其实直接用txt打开也可以)
春季学习报告 4.19_第1张图片
签个到
同样还是得到压缩包,解压后是另一个压缩包,但无法解压,扔进winhex中查看,发现头是png,原来这是png文件,被人改成了压缩文件,当然无法解压了,所以只需修改后缀名即可,打开图片,发现是二维码,所以直接拿手机扫呗,得到flag
春季学习报告 4.19_第2张图片
春季学习报告 4.19_第3张图片
鸡你太美
非常性感的鲲鲲啊 压缩包解压后得到两张gif图,第一张是鲲鲲的鸡你太美,第二张则打不开,不管怎么样先把第二张图片给整开再说。图片已经是gif了,但是还打不开,说明问题出在内容中,用txt打开文件,搜索flag的fl,也没有在乱码中找到有用的信息,说明应该是把flag嵌入到图片中了,一定要打开flag“人工读取”(目视…) 在winhex中打开,发现丢失了头,所以人为添加GIF8的头即可,顺利打开gif,发现flag嵌入了图片中

春季学习报告 4.19_第4张图片
春季学习报告 4.19_第5张图片
春季学习报告 4.19_第6张图片
另外,说个题外话,想这种借助工具的混合题,入手就发现,并不适合在window10这种系统下运行,各种条条框框限制太多,兼容性也出问题,lunix我暂时还没接触。但是从使用winhex这种软件来看,确实需要一个更好的环境,我试了一下驱动盘的PE部署环境,发现还不错,想现在网络上的各种装机盘,什么黑鲨 老毛桃 大白菜等等,里面自带的环境 运行这一类软件倒也十分合适,像我自己常用的黑鲨 不仅可以在32 64位系统切换,还可以联网(这个在启动盘里不多见)(就是附带的软件有点少),部分情况下 做这种题还算合适。因为一是没有权限的限制,二是不存在什么危险(毕竟系统是装在内存里而不是硬盘中,掉电就没了)
当然,缺点也是有的,比如说sqlmap,就还要额外装python,而且甚至连cmd的ping都被阉割掉了,还要自己补上,更要命的是,这玩意开一次就要重新装一次!!!就离谱
所以我再尝试不同版本的环境时,也在尝试把这个虚拟系统自己给打包,这样下次就只要启动环境,就可以部署了。
为此我罗列了几种思路
1 把环境打包为gho或iso,永久部署到硬盘或中
2打包为wim文件,部署到u盘中,还是用启动盘的程序打开,但是内容肯定增加了很多
3部署到虚拟机中
目前的主要问题就是因为环境时再内存中,无法保存,在这种情况下,自己复制自己,会碰到各种问题,而且wim文件部署是,是否支持hhd还有待测试
如果只有一台电脑,那么这种环境只能部署到虚拟机中,必要时托程序进去即可 如果有两套太电脑,倒是可以把环境部署到另一台电脑中,不管是USB还是hhd。
我会在尝试了几天
后来一想…不对啊,本来PE就可以安装在电脑上啊…
所以,直接部署在另外一块磁盘上就可以了,再gho或iso一份(其实在部署在磁盘上的时候,也可以截取文件),就可以部署在虚拟机上面了 当然,两台电脑不更带感吗???
发挥垃圾佬的精神,775平台都足够了呀,当然2k左右搞一套 e5 2650 x79 rx560的配置不香吗?
实在是嫌贵 1k左右 (带显示器)的
e5 640 4c 8t 2.66ghz x58 8g recc a300风扇(2铜管)一共428元
gt610 60元(反正亮机用) 鞋盒机箱(咳咳)不对, 机箱 + 风扇 100元
硬盘 500g 80元 电源全汉 500w 110元(这个真不敢缩)
显示器 22寸好一点的tn屏幕 250元
一共428+60+100+80+110+ 250=1028元
或者硬盘换个固态 多 40元

我这样写学报是不是有点太不务正业了,哈哈…
谁叫我是垃圾佬呢
春季学习报告 4.19_第7张图片
可以永久性部署sqlmap等等常见软件
二 git svn泄露
春季学习报告 4.19_第8张图片
hook:存放一些sheel的地方。
info:存放仓库的信息
object:存放所有git对象的地方
refs:存放提交hash的地方
config:github的配置信息
description:仓库的描述信息,主要给gitweb等git托管系统使用
HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值

1、首先会从目标网站下载/index 这个文件,然后利用lib中的parser解析器解码,得到sha1和文件名

2、从objects目录下百载相应的文件,得到返回数据后使用zlib解码。

首先下载压缩包pack文件回本地:

使用git unpack-objects命令本地解压:

在解压前,要先初始化一个git仓库git init ,然后再执行内git unpack-objects

1 git init

2 git unpack-objects

解压还原成项目文件:

修改lijiejie的GitHack.py,修改远程url读取为本地读取:
GitHack,将lib目录复制到objects目录中,然后手容工打上面的代码,保存为xxoo.py 执行即可。

目前git泄露还是要使用类似sqlmap的工具,所以还要额外学习
svn泄露
感觉目前网上的git和svn的东西非常少,再加上自己完全没有接触过这类东西,所以一时半会难以理解其中的道理,只能暂时做了一点点浅层的学习

SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范。“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。”(可以利用.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息)

更严重的问题在于,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。

以下内容来源于互联网

利用
1、漏洞利用工具: Seay SVN漏洞利用工具

2、添加网站url

在被利用的网址后面加 /.svn/entries,列出网站目录,甚至下载整站。

修复
1、在web服务器配置文件中增加一段代码,过滤到.svn文件,返回404

nginx服务器:

location ~ ^(.*)\/\.svn\/

{

return 404;

}

重启nginx

Apache服务器:

 

Order allow,deny

Deny from all

 

重启Apache

2、查找服务器上所有.svn隐藏文件夹,删除

以下命令删除当前目录下.svn文件夹

find . -type d -name ".svn"|xargs rm -rf

rm -rf `find . -type d -name .svn`

find . -name ".svn" -type d | xargs rm -fr

find . -name ".svn" -type d | xargs -n1 rm -R

使用脚本删除

#!/bin/sh

cd /home/web/

find ./ -name ".svn" |xargs -n1 echo > /dev/null 2>&1

find ./ -name ".svn" -print0 | xargs -0 rm -fr

if [ $? -ne 0 ]; then

echo "remove .svn dirs failed!"

fi

以上文件保存为.sh

执行之后,会删除 /home/web目录及其子目录中 所有 .svn 隐藏文件夹

防御
开发人员在使用SVN时,严格使用导出功能。禁止直接复制代码。

本周大概就是这些东西了,下周我在熟悉的情况下,会尝试使用相关工具在靶场试试手。

你可能感兴趣的:(春季学习报告 4.19)