[ASIS 2019]Unicorn shop中UTF-8與Unicode編碼轉換的安全問題

打開題目,看到購買頁面:
在這裏插入圖片描述
嘗試購買,輸入ID=1,Price=2,發現購買失敗:
在這裏插入圖片描述
再嘗試購買最貴的獨角獸,發現有問題:
在這裏插入圖片描述
提示我們只能輸入一個字符。再加上在head標籤裏的提示:
在這裏插入圖片描述
猜測可能是編碼轉換問題,而且如果成功購買第四個獨角獸就可以成功得到flag。
題中編碼爲UTF-8編碼,我們可以用UTF-8與Unicode的編碼轉換問題來繞過一個字符的限制。
這個網站搜索一個大於1337的數字,如:
在這裏插入圖片描述
這題的大致思路是這樣的:傳入UTF-8編碼,在後端處理的過程中,發現該UTF-8編碼無法解析爲ASCII碼,然後會將其解析爲Unicode編碼,而Unicode中的這個字符表示的值爲50000,且爲一個字符,於是就繞過了一個字符的限制,數字大小也足夠,成功購買,得到flag。
爲什麼會這樣進行解析,在這篇文章說的很清楚。
在這裏插入圖片描述
我們將該字符UTF-8編碼中的0x換成%,即可成功購買,得到flag。

還有一些Unicode安全問題在這裏,感興趣的可以繼續看一看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章