[ASIS 2019]Unicorn shop


 

 

 點擊進去之后是一個購買獨角獸的界面,有四種類型的獨角獸,前三種的價格比較便宜,最后的獨角獸價格比較貴。

我們先嘗試購買前三種獨角獸,輸入id,然后price輸入9

 

 

 然后就告訴我商品錯了,可能復現靶場這里沒有做好

然后我們查看源代碼

 

 

 可以看到在charset="utf-8"后面有提示,這里非常重要。

但是很多的網站都是utf-8編碼,為什么會說這里很重要?

回到購買界面,我們輸入其他的價格,發現輸入10的時候有提示

 

 

 告訴了我們只能使用一個字符,一個字符能夠購買的就只有前三只獨角獸,雖然我也沒有購買成功hhh

所以猜測只要購買了第四只獨角獸,就能獲取flag,於是我們需要找到一個字符比1337大的數字

也就是utf-8編碼的轉換安全問題

附上相關的鏈接:

https://xz.aliyun.com/t/5402#toc-0

https://blog.lyle.ac.cn/2018/10/29/unicode-normalization/

 

接着我們在這個網站搜索大於 thousand 的單個字符,就可以購買第四只獨角獸了:https://www.compart.com/en/unicode/

有很多,我選的是這個長得丑丑的字符:

 

 

 可以看到它代表的數值是10000

它的utf-8編碼是0xE1 0x8D 0xBC

我們將0x換成%,得到%E1%8D%BC,輸入就可以購買flag了

 

 

 參考鏈接:

https://shawroot.hatenablog.com/entry/2019/10/29/ASIS_2019-Unicorn_shop

https://github.com/hyperreality/ctf-writeups/tree/master/2019-asis

https://www.icode9.com/content-4-441318.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM