Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025

Avatar for Huli Huli
December 13, 2025

從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025

Avatar for Huli

Huli

December 13, 2025
Tweet

More Decks by Huli

Other Decks in Programming

Transcript

  1. mysql> 
 SELECT 'gmail.com' = 'GMAIL.com' COLLATE utf8mb4_unicode_ci; 
 +----------------------------------------------------+

    | 'gmail.com' = ‘GMAIL.com' COLLATE utf8mb4_unicode_ci | +----------------------------------------------------+ | 1 | +----------------------------------------------------+ 1 row in set (0.00 sec)
  2. mysql> 
 SELECT 'gmail.com' = 'gmaÎĹ.com' COLLATE utf8mb4_unicode_ci; 
 +----------------------------------------------------+

    | 'gmail.com' = 'gmaÎĹ.com' COLLATE utf8mb4_unicode_ci | +----------------------------------------------------+ | 1 | +----------------------------------------------------+ 1 row in set (0.00 sec)
  3. 12.14.1 Collation Implementation Types utf8mb4_general_ci is an example: 'a', 'A',

    'À', and 'á' each have di ff erent character codes but all have a weight of 0x0041 and compare as equal. mysql> SELECT c1, HEX(c1), HEX(WEIGHT_STRING(c1)) FROM t1; +------+---------+------------------------+ | c1 | HEX(c1) | HEX(WEIGHT_STRING(c1)) | +------+---------+------------------------+ | a | 61 | 0041 | | A | 41 | 0041 | | À | C380 | 0041 | | á | C3A1 | 0041 | +------+---------+------------------------+ 4 rows in set (0.00 sec)
  4. <button value="{{value}}">click</button> $` $' $` 123 <button value="<button value=" 123">click</button>

    <button value="<button value=" 123">click</button> $` onclick='alert()' <button value="<button value=" onclick='alert()'">click</button>
  5. 複習 1. MySQL unicode => context 的不相等 2. JS replace

    時請⼩⼼謹慎 3. Clean 不是真的 clean,join 不是真的 join 4. React is => 不要全盤相信使⽤者輸入 5. ⼩⼼使⽤ regex
  6. 複習 1. MySQL unicode => context 的不相等 2. JS replace

    時請⼩⼼謹慎 3. Clean 不是真的 clean,join 不是真的 join 4. React is => 不要全盤相信使⽤者輸入 5. ⼩⼼使⽤ regex
  7. 複習 1. MySQL unicode => context 的不相等 2. JS replace

    時請⼩⼼謹慎 3. Clean 不是真的 clean,join 不是真的 join 4. React is => 不要全盤相信使⽤者輸入 5. ⼩⼼使⽤ regex
  8. 複習 1. MySQL unicode => context 的不相等 2. JS replace

    時請⼩⼼謹慎 3. Clean 不是真的 clean,join 不是真的 join 4. React is => 不要全盤相信使⽤者輸入 5. ⼩⼼使⽤ regex
  9. 複習 1. MySQL unicode => context 的不相等 2. JS replace

    時請⼩⼼謹慎 3. Clean 不是真的 clean,join 不是真的 join 4. React is => 不要全盤相信使⽤者輸入 5. ⼩⼼使⽤ regex