ctfshow渔人杯

阿拉丁

想要直接查看flag

不是命令执行,也不是xss

需要我们一个一个拼

ctfshow{239a1c52-6727-45f5-92e5-db99b97c870c}

飘啊飘

源码没有有用的信息我们直接抓包

根据题目提示 有手机就行 抓包修改User-Agent:Andorid 重定向

Location: mb.html

尝试sql没有成功,扫描目录看到有/flag

之前有提示

完成

神仙姐姐

我们抓包查看

每点击一次就会num加一,之后的ctfshow也会改变

flag的地方是随机的,但是是在1-999之间随机还是很好找的

或者写一个脚本

复制代码
import requests
 
url="http://019e2b1f-411a-48a1-848b-a106990358f7.challenge.ctf.show:8080/sx.php"
cookie={'PHPSESSID':'s8h4ik585fs9g4905brbs6qka4'}
print("开始访问")
for i in range(0,1000):
    print(i)
    r = requests.get(url,cookies=cookie)
    if("j0ke" in r.text):
        print("not flag")
    else:
        print(r.text)

url和cookie换成自己的

Ez_Mysqli

MySQL默认下不区分重音符号

复制代码
<?php
highlight_file(__FILE__);
//flag在字段Y4tacker里
$servername = "127.0.0.1";
$username = "root";
$password = "root";
$dbname = "ctfshow";
$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($conn,'utf8');
连接本地数据库 ctfshow,编码设为 utf8
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
if(stripos($_GET['username'],'Y4tacker')!==false){
    die("爬");
}
  检查 URL 参数 username 中是否包含字符串 Y4tacker(不区分大小写)
else{
    $username=$_GET['username'];
}
if (strlen($username)>=11){
    die("爬");
  限制 username 参数的长度必须小于 11 个字符
}
if (preg_match("/,|#|-|\+|\'|\"|or|union|select|show|\\\\/im",$username)){
    die("爬");
  过滤了大量关键字符和 SQL 关键字
}
$sql = "select * from `yyds` where username='$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
       echo($row['password']);
      $username 直接拼接进了 SQL 语句中。虽然有正则过滤,但如果能找到不使用引号且绕过正则的方法,依然可以注入
    }
}
$conn->close();
?>

Notice: Undefined index: username in /var/www/html/index.php on line 13

Notice: Undefined index: username in /var/www/html/index.php on line 17

这里的话其实想要进行sql注入的话因为长度限制所以大概率是实现不了的,只能尝试着绕过这个用户名Y4tacker

vb 复制代码
`根据MySQL默认情况不区分重音符号的特性
MySQL 的默认字符集通常是 latin1,而默认排序规则是 latin1_swedish_ci。
latin1_swedish_ci是一种不区分大小写、不区分重音符号的排序规则。
例如,a、á、à、â 被视为相同的字符。
在默认排序规则下,MySQL 会将带有重音符号的字符视为其基本字符。
例如我们传入?username=ā,那么在解码的时候mysql会把ā当成是a去进行查询的`
相关推荐
lichenyang4538 小时前
HarmonyOS HMRouter 接入记录:从普通 Tab Demo 到路由跳转
前端
木斯佳8 小时前
前端八股文面经大全:腾讯WXG暑期前端一面(2026-05-15)·面经深度解析
前端·面试·笔试
canonical_entropy9 小时前
NOP Chaos Flux 架构演变史:从 AMIS 重写到现代低代码运行时
前端·aigc·ai编程
张元清9 小时前
useEffect 之外:专门处理异步、深比较和 SSR 的 Effect Hook
前端·javascript·面试
小小小小宇9 小时前
前端双Token机制无感刷新(二)
前端
zhangxingchao10 小时前
AI Agent 基础问题系统整理:从 LangChain、LangGraph、MCP 到 Agent 架构、记忆、工具调用与评估体系
前端·人工智能·后端
Moment10 小时前
AI 为什么总喜欢写防御性代码?
前端·后端·面试
浑手营销10 小时前
浑手科技案例分享:133个精准询盘短视频玩法
前端·人工智能·科技
IT_陈寒10 小时前
SpringBoot自动配置的坑,差点让我加班到天亮
前端·人工智能·后端
LucianaiB10 小时前
【Dify + EdgeOne】你奶奶也会做一个“智票通”,轻松票据自定义提取+防数据泄露
前端·后端