Ho ba kotsing ho li-cdnj tse lumelletseng ts'ebetso ea khoutu ho li-server tsa Cloudflare

Ho na le ts'oaetso e kholo ho Cloudflare's cdnjs content delivery network, e etselitsoeng ho potlakisa phano ea lilaebrari tsa JavaScript, e lumellang ho etsoa ha khoutu e sa tsitsang ho li-server tsa CDN. Kotsi ea bothata e mpefatsoa ke taba ea hore hoo e ka bang 12.7% ea libaka tsohle tsa Marang-rang li sebelisa ts'ebeletso ho jarolla lilaebrari tsa JavaScript, 'me ho sekisetsa meaho ho etsa hore ho khonehe ho khutlisa lilaebrari tse fanoeng ke efe kapa efe ea libaka tsena.

Ts'ebeletso ea cdnjs e khoasolla liphutheloana ho tsoa ho Git kapa polokelong ea NPM, ka mor'a moo e lumella sebaka sefe kapa sefe ho sebelisa marang-rang a phano ea litaba tsa Cloudflare mahala ho potlakisa ho kenya lilaebrari tsa JavaScript. Ha ho ithutoa khoutu ea likarolo tsa cdnjs tse phatlalalitsoeng ho GitHub, ho ile ha senoloa hore ho notlolla liphutheloana tsa NPM ka har'a li-archives tsa tgz, ho sebelisoa mojule o tloaelehileng oa "archive / tar" ka puo ea Go, e hlahisang lenane la lifaele joalo ka ha le le joalo, ntle le ho etsa hore litsela li tloaelehe. . Haeba sengolwa se manolla dikahare ho latela lenane le fanoeng, boteng ba lifaele tse kang "../../../../../../../tmp/test" bo ka khona. e lebisa ho hlakola lifaele tse ling tsamaisong, ho ea kamoo litokelo tsa phihlello li lumellang.

Ho ile ha khothaletsoa hore mohlaseli a ka etsa kopo ea ho eketsa laeborari ea hae ho li-cdnjs le ho kenya polokelo ea litaba e etselitsoeng ka ho khetheha e nang le lifaele tse nang le litlhaku tsa "../" tseleng e eang polokelong ea NPM. Ho li-server tsa cdnjs, ts'ebetso ea "autoupdate" e etsoa nako le nako, moo motshwari a khoasolla liphetolelo tse ncha tsa laeborari e reriloeng ebe o manolla litaba. Ka ho sebelisa lifaele tse nang le litsela "../", mohlaseli a ka hlakola lifaele ka mangolo a tšebeletso 'me a phethe khoutu ea bona ho seva eo ho e phuthollang ho entsoeng ho eona.

Tabeng ea ho khoasolla liapdeite ho tsoa ho Git, ho ile ha fumanoa hore motho ea tsamaisang lintlafatso ha a nahane ka lihokelo tsa tšoantšetso ha a kopitsa lifaele ho tsoa ho Git. Karolo ena e entse hore ho khonehe ho hlophisa ho baloa ha lifaele life kapa life ho tsoa ho seva ka ho kenyelletsa lihokelo tsa tšoantšetso ho Git.

Ho ile ha etsoa qeto ea ho qala liteko ka pontšo ea ho hacking cdnjs ho fumana moputso ho HackerOne ka ho hlahloba khopolo-taba mabapi le ho bala lifaele. Sehokelo sa tšoantšetso test.js se kentsoe polokelong ea Git ea laebrari ea JavaScript e sebelisoang ka CDN, e supang faele ea /proc/self/maps. Kamora ho phatlalatsa mofuta o mocha oa laeborari, mohlokomeli oa ntlafatso o ile a sebetsana le polokelo ena mme a hatisa faele e boletsoeng ho cdnjs (test.js e entsoe e le sehokelo sa tšoantšetso mme ha faele ena e ne e kopuoa, litaba tsa /proc/self/maps li ile tsa khutlisoa. ).

Ho kenya sehokelo sa tšoantšetso ho file /proc/self/environ, sengoli sa thuto se hlokometse hore data e fanoeng e na le boleng ba maemo a fapaneng a tikoloho GITHUB_REPO_API_KEY le WORKERS_KV_API_TOKEN. Phapang ea pele e bolokile senotlolo sa API bakeng sa phihlello ea ho ngola sebakeng sa polokelo ea robocdnjs ho GitHub. Phapang ea bobeli e bolokile lets'oao ho polokelo ea KV ka li-cdnjs. Ka ho sebelisa boitsebiso bo fumanoeng, mohlaseli a ka etsa liphetoho ho li-cdnjs 'me a sekisetsa ka ho feletseng mekhoa ea motheo.

Source: opennet.ru

Eketsa ka tlhaloso