绿盟杯Web部分Writeup Web50 ----- ``` http://116.62.63.190/01b2962787ccc75f/web1/ ``` 这题是个签到题,直接查看返回包即可获得flag ![1.png][1] Web350 ----- ``` http://116.62.63.190:8000/56631c0afe39dfe8/web2/ping.php?ip=127.0.0.1%0acacatt ping.php ``` 由题目的意思可以知道,这应该是个命令执行 题目过滤了|之类的字符,我们直接使用``` %0a ```绕过 ``` ip=127.0.0.1%0als ``` 得知目录情况 ![2.png][3] 然后又是各种尝试,发现``` more ```没被过滤,使用``` more ```获取``` flag ```(其实vi也没过滤,不知道为什么当时我测试的时候不行)。 Ps:我写这个WP的时候``` flag ```已经被搅屎棍删了所以没法截图 ![3.png][4] 我们通过``` more ``` ``` ping.php ```发现了它的过滤规则,发现``` cat ```只是被过滤为空 那么我们又可以使用另一种方法绕过 ``` cacatt ``` Web150 ----- ``` http://116.62.63.190/82d66810aa826365/web3/ ``` 查看源文件获取到源码 ``` 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('账号密码错误!'); } } ``` 通读代码我们知道,需要构造一个``` name ```不等于``` password ```的账号密码,但是它们的md5值需要是一样的,于是果断想到两个数组。 我们构造``` name[]=1&password[]=2 ``` 来绕过这里 。然后接下来就是``` id ```的判断了。我们发现``` id ```要不等于``` str(72) ```但是要等于``` int(72)``` ,那就很明确了,这里需要用到PHP的弱类型。我们构造``` id=72.00 ``` ![4.png][5] 最终``` payload name[]=1&password[]=2&id=72.00&login=Check ``` Web300 ----- ``` http://116.62.63.190/85e34e2e3319ab7d/web4/upload/1.phtml ``` ![5.png][6] ``` fuzz ```后发现使用.phtml即可绕过后缀限制 使用``` ``` ![6.png][7] Web500 ----- 这题各种坑,各种XSS、文件包含什么的(其实就是个简单的搜索框注入) 通过文件包含得知flag在数据库里,那么肯定是注入了 ![7.png][8] 找到搜索框注入 ``` http://116.62.63.190:8080/ee00f46afe33f2ff/web6//search.php?search=1 ``` ![8.png][9] sqlmap跑一下得到flag ![9.png][10] Web150 ----- 扫了一下目录发现是 ```.git ```泄露 ![10.png][11] 得到一个txt,打开之是一个``` base64 ```加密的 解密得到flag ![11.png][12] Web550 ----- 根据提示``` imagemagick ```,找到之前火极一时的``` imagemagick ```命令执行漏洞``` exp ```。经测试是没有回显的,``` bash ```反弹也不行,所以将命令执行结果请求到自己的站点记录下来就好了。 ![12.png][13] 列目录找到提示flag_in_the_tmp.php,在/tmp下找到了flag.txt ![13.png][14] Web400 ----- 试来试去并不能任意代码执行,但是能给``` wget ```添加额外参数,加``` -b ```试了下,无回显,说明``` wget ```在后台下载并没有回显。可以用参数``` -O ```指定文件名 ![14.png][15] 但是在当前目录是没有权限写的,我以为是整个站点目录都不能写,所以写到了``` /tmp ```下,想着怎么配合``` admin.php ```包含。最后发现``` /var/www/html ```下可写。传小马拿``` shell ```,最后``` flag ``` 在 ``` /var/www/html/4b0cf03220fefbf6/web9/flag.php ``` ![15.png][16] 最后稍稍吐槽一下此次比赛!比赛第一天我们的账号因为密码含有特殊字符,死活登不上然找主办,主办却说没权限。 然后第二天的时候题目还各种改。Web550一开始目录没权限一直以为是姿势不对,Web400也是一样imagemagick环境都没弄好。。。 [1]: http://www.lovei.org/usr/uploads/2017/07/2581091799.png [2]: http://www.lovei.org/usr/uploads/2017/07/2581091799.png [3]: http://www.lovei.org/usr/uploads/2017/07/2824408837.png [4]: http://www.lovei.org/usr/uploads/2017/07/1049976761.png [5]: http://www.lovei.org/usr/uploads/2017/07/969340773.png [6]: http://www.lovei.org/usr/uploads/2017/07/1996051510.png [7]: http://www.lovei.org/usr/uploads/2017/07/3865869605.png [8]: http://www.lovei.org/usr/uploads/2017/07/3702650047.png [9]: http://www.lovei.org/usr/uploads/2017/07/3516670425.png [10]: http://www.lovei.org/usr/uploads/2017/07/2275099874.png [11]: http://www.lovei.org/usr/uploads/2017/07/1828196436.png [12]: http://www.lovei.org/usr/uploads/2017/07/3948083757.png [13]: http://www.lovei.org/usr/uploads/2017/07/1642668192.png [14]: http://www.lovei.org/usr/uploads/2017/07/1743323033.png [15]: http://www.lovei.org/usr/uploads/2017/07/1601182898.png [16]: http://www.lovei.org/usr/uploads/2017/07/1008775452.png
123友联哈哈
111111111