# xss之htmlspeclalchars - htmlspecialchars() - 將字符串中的特殊字符轉換為相應的HTML實體,從而確保這些字符不被解釋為HTML或JavaScript代碼。 - 預定義字符 - & 成為 &amp - " 成為 &quot - ' 成為 &`#039` - < 成為 &lt - `>` 成為 &gt - 輸入特殊字符 ![image](https://hackmd.io/_uploads/HybqC208T.png) - source page - ```php <div id="xssr_main"> <p class="xssr_title">人生之所有苦短,是因为你的xss学习的还不够好</p> <form method="get"> <input class="xssr_in" type="text" name="message" /> <input class="xssr_submit" type="submit" name="submit" value="submit" /> </form> <p class='notice'>你的输入已经被记录:</p><a href='&quot;&lt;&gt;?#&#039;666'>&quot;&lt;&gt;?#&#039;666</a> </div> </div><!-- /.page-content --> ``` - 可以看到特殊字符已被編碼 `<a href='&quot;&lt;&gt;?#&#039;666'>&quot;&lt;&gt;?#&#039;666</a>` - 輸入 ``<script>alert("xss")</script>`` - source page - ```php <div id="xssr_main"> <p class="xssr_title">人生之所有苦短,是因为你的xss学习的还不够好</p> <form method="get"> <input class="xssr_in" type="text" name="message" /> <input class="xssr_submit" type="submit" name="submit" value="submit" /> </form> <p class='notice'>你的输入已经被记录:</p><a href='&lt;script&gt;alert(&quot;xss&quot;)&lt;/script&gt;'>&lt;script&gt;alert(&quot;xss&quot;)&lt;/script&gt;</a> </div> </div><!-- /.page-content --> ``` - 單引號未被編碼 - payload - 加上單引號來閉合href中的單引號 - `' onclick='alert(111)'` - 輸入後發現單引號被編碼了 - ```php <p class='notice'>你的输入已经被记录:</p><a href='&#039; onclick=&#039;alert(111)&#039; &#039;'>&#039; onclick=&#039;alert(111)&#039; &#039;</a> ```
{"title":"xss之htmlspeclalchars","description":"htmlspecialchars()","contributors":"[{\"id\":\"e8de30ea-0683-40e8-973b-1acc1b3e6824\",\"add\":1780,\"del\":0}]"}
Expand menu