من یک رفتار عجیب از Shopify پیدا کردم ، که در آن مهاجمی می تواند پسوند را در URL تغییر دهد و پس زمینه برای هر یک از این پسوند ها ، متناسب با نوع HTTP را با آن پسوند بازگرداند:
atom: برنامه / اتم + xml
bmp: image / bmp
css: text / css
csv: text / csv
gif: تصویر / gif
jpg: image / jpeg
json: برنامه / json
js: text / javascript
mp3: audio / mpeg
mpeg: video / mpeg
mpg: video / mpeg
pdf: برنامه / pdf
png: image / png
rss: برنامه / rss + xml
svg: image / svg + xml
tiff: image / tiff
tif: image / tiff
txt: متن / ساده
xml: برنامه / xml
yml: برنامه / x-yaml
zip: برنامه / zip
به عنوان مثال ، https://gavinwahl-test.myshopify.com/.foo.yml 'محتوا-نوع: برنامه / x-yaml' را برگرداند ، حتی اگر 404 باشد. https://gavinwahl-test.myshopify .com / search.svg صفحه جستجوی واقعی HTML را می گرداند اما از نوع تصویر / svg + html نوع محتوا است.
صفحه جستجو همچنین به شما امکان می دهد متن [html-escaped] مورد نظر خود را وارد کنید:
https://gavinwahl-test.myshopify.com/search.zip؟q=٪50٪4b٪05٪06٪00٪00 ٪000000000000000000000000000000000000000000 به عنوان مثال٪ 00 00 00 00 00 00 00 00 00 00 به عنوان مثال برنامه / zip را باز می گرداند و در واقع یک فایل پستی معتبر است (با وجود داشتن HTML در اطراف آن).
به نظر می رسد در اینجا باید آسیب پذیری وجود داشته باشد. جستجوی HTML از بین رفته است ، اما می توانیم به مرورگر بگوییم که نوع دیگری از محتوا را تفسیر کند که ممکن است دارای قوانین فرار مختلف باشد. این کار قبلاً با پرونده های EML (پیام نامه ایمیل Microsoft Outlook Express) انجام شده است. من می دانم آسیب پذیری های زیادی وجود دارد که محتوای یک نوع آن به عنوان یک نوع محتوای متفاوت تعبیر می شود ، اما Shopify ادعا می کند که این عمل بی خطر است و قابل استفاده نیست.
آیا واقعاً استدلال خوبی وجود دارد که این بی خطر باشد؟ آیا راهی وجود دارد که بتوان از طریق آن بر اساس سردرگمی نوع محتوا ، بارگذاری منعکس شده Xss را دریافت کرد؟
(من این موضوع را به عنوان یک موضوع برای Shopify Security گزارش کرده ام و آنها گفتند که این امن است ، بنابراین من آن را به صورت عمومی ارسال می کنم)]