<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Hello</title>
  <subtitle>A blog about CTF writeups, Linux, Mathematics, Technology, and personal thoughts.</subtitle>
  <link href="https://k174.dev/atom.xml" rel="self"/>
  <link href="https://k174.dev/"/>
  <id>https://k174.dev/</id>
  <updated>2026-10-22T14:16:04.000Z</updated>
  <author><name>me</name></author>
  <entry>
    <title>Securinets Quals 2026 - RabbitHole</title>
    <link href="https://k174.dev/securinets2026qual-rabbithole/"/>
    <id>https://k174.dev/securinets2026qual-rabbithole/</id>
    <published>2026-10-22T14:16:04.000Z</published>
    <updated>2026-10-22T14:16:04.000Z</updated>
    <summary>Challenge id22，Osint，9 个递进问题，没有附件。每一问的答案都是下一问的入口，最后一问落到一位从业者的公开自述上。题面要求把 9 个答案按下标顺序用下划线拼接，多词答案去掉空格，血型字母保持大写，日期用 YYYY-MM-DD 。难点在第 2 问的影片定位与第 </summary>
    <category term="ctf"/>
    <category term="securinets"/>
    <category term="writeup"/>
    <category term="osint"/>
    <category term="research-chain"/>
  </entry>
  <entry>
    <title>Webhacking.kr orange</title>
    <link href="https://k174.dev/orange/"/>
    <id>https://k174.dev/orange/</id>
    <published>2026-10-06T07:12:16.000Z</published>
    <updated>2026-10-06T07:12:16.000Z</updated>
    <summary>Challenge The page takes a url parameter, appends .txt , and includes it after a stack of URL checks. 页面接收 url 参数，追加 .txt 后经过一串 URL 校验再 incl</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="ssrf"/>
    <category term="rfi"/>
  </entry>
  <entry>
    <title>Webhacking.kr child toctou</title>
    <link href="https://k174.dev/child-toctou/"/>
    <id>https://k174.dev/child-toctou/</id>
    <published>2026-10-03T08:59:46.000Z</published>
    <updated>2026-10-03T08:59:46.000Z</updated>
    <summary>Challenge The page is a web shell whose front end posts commands to a JSON endpoint. 页面是一个 WebShell，前端把命令发到 JSON endpoint。 前端脚本把输入发到： 页面显示提示</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="dns-rebinding"/>
    <category term="toctou"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-47</title>
    <link href="https://k174.dev/old-47/"/>
    <id>https://k174.dev/old-47/</id>
    <published>2026-10-03T05:37:21.000Z</published>
    <updated>2026-10-03T05:37:21.000Z</updated>
    <summary>Challenge The mail form puts subject straight into the mail header. 发信表单把 subject 直接放进邮件头。 Analysis 表单只有 subject 一个字段，提交后回显 Mail has been se</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="smtp-injection"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-30</title>
    <link href="https://k174.dev/old-30/"/>
    <id>https://k174.dev/old-30/</id>
    <published>2026-10-03T05:00:49.000Z</published>
    <updated>2026-10-03T05:00:49.000Z</updated>
    <summary>Challenge Understand database connection hijacking through upload configuration. 分析通过上传配置劫持数据库连接的机制。 Analysis 入口每次请求都会分配一个会话专属目录，并把上传的表单指向它：</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="database"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-35</title>
    <link href="https://k174.dev/old-35/"/>
    <id>https://k174.dev/old-35/</id>
    <published>2026-10-03T05:00:44.000Z</published>
    <updated>2026-10-03T05:00:44.000Z</updated>
    <summary>Challenge Bypass the phone-number insert with SQL injection. 通过 SQL injection 绕过电话号码写入。 Analysis ?view source=1 给出源码： phone 直接拼入 VALUES 的第三个</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="sql-injection"/>
  </entry>
  <entry>
    <title>Webhacking.kr baby toctou</title>
    <link href="https://k174.dev/baby-toctou/"/>
    <id>https://k174.dev/baby-toctou/</id>
    <published>2026-10-02T06:14:17.000Z</published>
    <updated>2026-10-02T06:14:17.000Z</updated>
    <summary>Challenge The page is a web shell whose front end posts commands to a JSON endpoint. 页面是一个 WebShell，前端把命令发到 JSON endpoint。 前端脚本把输入发到： 页面显示提示</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
  </entry>
  <entry>
    <title>Webhacking.kr 4xx</title>
    <link href="https://k174.dev/4xx/"/>
    <id>https://k174.dev/4xx/</id>
    <published>2026-10-02T06:14:09.000Z</published>
    <updated>2026-10-02T06:14:09.000Z</updated>
    <summary>Challenge The page collects nine KEY{ } values and renders a flag image. 页面收集九个 KEY{ } 值，并渲染一张 flag 图片。 页面标题是 Get 4XX for flag ，表单字段为 key1 到</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-37</title>
    <link href="https://k174.dev/old-37/"/>
    <id>https://k174.dev/old-37/</id>
    <published>2026-10-01T04:48:39.000Z</published>
    <updated>2026-10-01T04:48:39.000Z</updated>
    <summary>Challenge Redirect the flag-bearing request from the server to a listener under your control. 将携带 flag 的服务端请求重定向到可控的监听端点。 Solution 服务端先创建 tm</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="ssrf"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-31</title>
    <link href="https://k174.dev/old-31/"/>
    <id>https://k174.dev/old-31/</id>
    <published>2026-10-01T04:48:14.000Z</published>
    <updated>2026-10-01T04:48:14.000Z</updated>
    <summary>Challenge Receive the callback sent to one port in the range 10000–10100. 接收服务端发送到 10000–10100 端口范围内某个端口的回连请求。 Solution 题目服务端会在 10000 到 1010</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="socket"/>
  </entry>
  <entry>
    <title>Webhacking.kr g00gle2</title>
    <link href="https://k174.dev/g00gle2/"/>
    <id>https://k174.dev/g00gle2/</id>
    <published>2026-10-01T04:44:46.000Z</published>
    <updated>2026-10-01T04:44:46.000Z</updated>
    <summary>Challenge EN : It is hacking challenge. do &quot;hack&quot;, do NOT request access. 这是道 hack 题，需要自己动手，不要申请访问权限。 题目是一张公开只读的 Google 表格。 A1 显示 FLAG{?????</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
  </entry>
  <entry>
    <title>Webhacking.kr g00gle1</title>
    <link href="https://k174.dev/g00gle1/"/>
    <id>https://k174.dev/g00gle1/</id>
    <published>2026-10-01T03:30:20.000Z</published>
    <updated>2026-10-01T03:30:20.000Z</updated>
    <summary>Challenge 题目跳转到一个公开的 Google Form，目标是检查浏览器实际加载的页面源码和脚本，从客户端数据中找到 flag。 题目入口： Solution 在 chall.php 中找到 g00gle1 后，入口链接指向 Google Form。展开短链接后，实际页</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-04</title>
    <link href="https://k174.dev/old-04/"/>
    <id>https://k174.dev/old-04/</id>
    <published>2026-09-27T08:21:42.000Z</published>
    <updated>2026-09-27T08:21:42.000Z</updated>
    <summary>Challenge Recover the preimage hidden behind repeated SHA-1 hashing. 恢复重复 SHA-1 哈希之前的原始值。 Analysis 源码每次请求生成一个 8 位随机数并拼接固定 salt： 页面显示的是 500 轮</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="sha1"/>
    <category term="cuda"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-25 RevengE</title>
    <link href="https://k174.dev/old-25-revenge/"/>
    <id>https://k174.dev/old-25-revenge/</id>
    <published>2026-09-27T07:59:07.000Z</published>
    <updated>2026-09-27T07:59:07.000Z</updated>
    <summary>Challenge Read flag.txt despite the server-appended .php suffix. 在服务端自动追加 .php 的情况下读取 flag.txt 。 Analysis 题目会把 file 参数作为资源名并追加 .php 。普通 LFI </summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="lfi"/>
    <category term="php"/>
    <category term="php-filter"/>
  </entry>
  <entry>
    <title>Webhacking.kr ouroboros golf</title>
    <link href="https://k174.dev/ouroboros-golf/"/>
    <id>https://k174.dev/ouroboros-golf/</id>
    <published>2026-09-27T07:59:07.000Z</published>
    <updated>2026-09-27T07:59:07.000Z</updated>
    <summary>Challenge Use a self-reproducing SQL expression (quine SQLi). 使用能生成自身的 SQL expression。 Analysis 服务端把 pw 放进单引号包围的查询，并要求查询结果中的 pw 与原始输入完全相等。普通</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="sql-injection"/>
    <category term="quine"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-13</title>
    <link href="https://k174.dev/old-13/"/>
    <id>https://k174.dev/old-13/</id>
    <published>2026-09-26T06:18:17.000Z</published>
    <updated>2026-09-26T06:18:17.000Z</updated>
    <summary>Challenge Extract the flag through the filtered blind SQL injection. 通过带过滤的 blind SQL injection 提取 flag。 Analysis no 参数进入 SQL 查询，页面用结果值区分真假。</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="blind-sql-injection"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-28</title>
    <link href="https://k174.dev/old-28/"/>
    <id>https://k174.dev/old-28/</id>
    <published>2026-09-26T06:18:17.000Z</published>
    <updated>2026-09-26T06:18:17.000Z</updated>
    <summary>Challenge Read flag.php through an Apache upload directory. 通过 Apache 上传目录读取 flag.php 。 Analysis 上传处理器接受名为 .htaccess 的文件，并把文件放进可被 Apache 访问的</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="upload"/>
    <category term="apache"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-43 RevengE</title>
    <link href="https://k174.dev/old-43-revenge/"/>
    <id>https://k174.dev/old-43-revenge/</id>
    <published>2026-09-26T06:18:17.000Z</published>
    <updated>2026-09-26T06:18:17.000Z</updated>
    <summary>Challenge Upload a file accepted by Imagick while preserving a PHP-capable filename. 上传一个能被 Imagick 接受、同时保留 PHP 文件名的文件。 Analysis 服务端检查上传文件的 </summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="file-upload"/>
    <category term="imagick"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-44</title>
    <link href="https://k174.dev/old-44/"/>
    <id>https://k174.dev/old-44/</id>
    <published>2026-09-26T06:18:17.000Z</published>
    <updated>2026-09-26T06:18:17.000Z</updated>
    <summary>Challenge Execute ls through a five-character POST field. 在五字符 POST 字段中执行 ls 。 Analysis 服务端只保留 id 的前五个字符，再拼入： 输入 &apos;;ls&apos; 的前五个字符仍是 &apos;;ls&apos; 。shell</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="command-injection"/>
  </entry>
  <entry>
    <title>Webhacking.kr old-57</title>
    <link href="https://k174.dev/old-57/"/>
    <id>https://k174.dev/old-57/</id>
    <published>2026-09-26T06:18:17.000Z</published>
    <updated>2026-09-26T06:18:17.000Z</updated>
    <summary>Challenge Extract the flag stored in the secret field through a timing oracle. 通过 timing oracle 提取 secret 字段中的 flag。 Analysis 服务端把 se 直接拼入 I</summary>
    <category term="ctf"/>
    <category term="writeup"/>
    <category term="web"/>
    <category term="sql-injection"/>
    <category term="blind-sql-injection"/>
  </entry>
</feed>
