Co je tohle to za skript? Při otevřené konzoli se stránka nenačte a hází vyjímku

Jarek

Kód: [Vybrat]
https://mmoapi.com/static/custom/js/finder.js
vyjimka VM11172
Kód: [Vybrat]
(function() {
debugger
})

Ten skript je nějaký podezřelý,, jsou tam vtipné funkce cheese, chives, slat, vinegar, pak nějaké pole api_0x3981
« Poslední změna: 05. 10. 2018, 17:19:49 od Petr Krčmář »


Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Nejsem si teda úplně jistej tím, že se mi chce klikat na odkaz směřující na javascript kód...

Honza

To je každopádně napadený web.

Lol Phirae

Nejsem si teda úplně jistej tím, že se mi chce klikat na odkaz směřující na javascript kód...

Nic chytřejšího než hodit živý odkaz ho asi nenapadlo... fakt demence.

Jarek

Co je srabové? Máte snad tak hloupě nastavené asociace v browseru, že javascript soubor se místo v prohlížeči otevře v Windows Scipt host? (a i kdyby, JS api pro browsery a windows je jiné), Nebo že by snad javascriptový soubor browser interpretoval?

Nebo snad máte pocit, že  by odkaz nevedl na js soubor (že bych sem dával nějaký fejk), ale  prakticky kamkoli (zkracovač, html stránka) – pak ale nejsme na rootu, ale u blbečků nebo v mateřské školce.. Cizí odkazy otevírám buď v zabezpečeném prohlížeči přes proxy+ v anonymním okně a nebo pokud nevěřím prohlížeči, stáhnu ho a prohlédnu v textovém editoru.


3ugeene

nevim, co presne ten js dela, ale je obfuscovanej tak, aby nebylo (jednoduse) mozny zjistit, jak koduje/dekoduje neco. Tam, kde ti to chcipa, je javascriptovej debugger, kterej ti pravdepodobne dokaze shodit cely okno - vola se to porad dokola. Uz jsem takovyhle veci videl xkrat. JS nejde zkompilovat a tak se vytvari pomerne uchylny a chytry metody, jak znemoznit jeho oddebugovani a prijit tak na to, jak vlastne funguje. Kdysi jsem videl, ze jako promennou ten j skript pouzival svuj vlastni zdrojovej kod, takze kdyz tam treba nekdo hodil console.log, skript se celej zmenil, tim i teda promena, kterou vyuzival a vysledek neodpovidal skutecnosti. Nekde jsem na to videl video. Zkusim najit


3ugeene

neco podobnyho myslim bylo tutaj (kdyby to nekoho jakoze zajmalo):

https://www.youtube.com/watch?v=8yWUaqEcXr4

mmm

nevim, co presne ten js dela, ale je obfuscovanej tak, aby nebylo (jednoduse) mozny zjistit, jak koduje/dekoduje neco. Tam, kde ti to chcipa, je javascriptovej debugger, kterej ti pravdepodobne dokaze shodit cely okno - vola se to porad dokola. Uz jsem takovyhle veci videl xkrat. JS nejde zkompilovat a tak se vytvari pomerne uchylny a chytry metody, jak znemoznit jeho oddebugovani a prijit tak na to, jak vlastne funguje. Kdysi jsem videl, ze jako promennou ten j skript pouzival svuj vlastni zdrojovej kod, takze kdyz tam treba nekdo hodil console.log, skript se celej zmenil, tim i teda promena, kterou vyuzival a vysledek neodpovidal skutecnosti. Nekde jsem na to videl video. Zkusim najit

Není to obfuskované nijak brutálně. Ten skript se snaží zamaskovat nějaké nepravosti, které následují (ale nejsou součástí skriptu). Mockuje objekt console (nastaví všechny jeho metody na prázdnou funkci), definuje funkce pro modifikaci HTML, ktere sám nevolá, vyvolání debuggeru se neprojeví, pokud nemáte otevřené developer tools.

mmm

když nahradíte volání funkce api_0x1360 jejich výsledkem, tak je to celkem čitelné.

RDa

  • *****
  • 2 709
    • Zobrazit profil
    • E-mail
To je normalni a bezna obfuskace. Si to "vykonej rucne", nebo prepis po castech do PHP a udelej echo eval(), ale chce to delat opatrne po malych krocich abys vzdy pustil jen to, co vidis.

Takhle jsem par ochran obesel a je to opravdu pitome reseni jen proti uplnym amaterum. Vetsinou to byva slozeny z Base64 coz tady je videt na prvni pohled, a pak ruznych substitucnich sifer, mozne je delat obfuskaci i na C skrze rozlozeni do velike sady preprocessingovych direktiv, pripadne nahradit nazvy promennych/funkci lidsky tezko zpracovatelnou formou, treba kombinaci 1 a l... ale nic, co by zpetne prejmenovani nemohlo vyresit :)

mmm

To je normalni a bezna obfuskace. Si to "vykonej rucne", nebo prepis po castech do PHP a udelej echo eval()

PHP s tím nemá nic společného.