Ko te whakaraerae i roto i nga cdnjs i whakaaetia te mahi waehere i runga i nga tūmau Cloudflare

Kua kitea he whakaraeraetanga nui i roto i te whatunga tuku ihirangi cdnjs a Cloudflare, i hangaia hei tere ake i te tukunga o nga whare pukapuka JavaScript, e tuku ana i nga mahi waehere i runga i nga tūmau CDN. Ko te kino o te raruraru ka kaha ake na te mea ko te 12.7% o nga waahi katoa i runga i te Ipurangi e whakamahi ana i te ratonga ki te tango i nga whare pukapuka JavaScript, me te whakararu i nga hanganga ka taea te whakakapi i nga whare pukapuka e whakaratohia ana e tetahi o enei pae.

Ka tangohia e te ratonga cdnjs nga kohinga mai i te Git, i te whare putunga NPM ranei, ka mutu ka taea e tetahi waahi te whakamahi i te whatunga tuku ihirangi Cloudflare mo te kore utu hei tere ake i te utaina o nga whare pukapuka JavaScript. I te wa e ako ana i te waehere o nga waahanga cdnjs i whakaputaina i runga i te GitHub, i kitea ko te wetewete i nga kohinga NPM i roto i nga puranga tgz, ka whakamahia te kohinga paerewa / tar module i roto i te reo Haere, e whakaputa ana i te rarangi o nga konae penei, me te kore e whakarite i nga huarahi. . Mena ka wetewete te tuhinga i nga ihirangi i runga i te raarangi kua homai, ka taea e te noho i roto i te puranga o nga konae penei i te "../../../../../../../tmp/test" ka arahi ki te tuhirua i nga konae i roto i te punaha, mena ka taea e nga mana uru.

Ko te whakaaro ka taea e te kaitukino te tono ki te taapiri i tana whare pukapuka ki nga cdnjs me te tuku i tetahi puranga i hangaia motuhake kei roto nga konae me nga tohu "../" i te ara ki te putunga NPM. I runga i nga tūmau cdnjs, ka mahia he mahi "aunoa" i ia wa, i te wa e tango ana te kaihautu i nga putanga hou o te whare pukapuka e whakaarohia ana, ka wetewete i nga ihirangi. Ma te whakamahi i nga konae me nga ara "../", ka taea e te kaitukino te tuhirua i nga konae me nga tuhinga ratonga me te mahi i a raatau waehere ki runga i te tūmau i mahia ai te wetewete.

Mo te tango i nga whakahou mai i a Git, i kitea ko te kaihautu e tango ana i nga whakahoutanga kaore i aro ki nga hononga tohu i te wa e kape ana i nga konae mai i a Git. Na tenei ahuatanga i taea te whakarite i te panui o nga konae mai i te tūmau ma te taapiri hononga tohu ki a Git.

I whakatauhia kia timata nga whakamatautau me te whakaaturanga o te hacking cdnjs kia whiwhi taonga i HackerOne ma te whakamatautau i te whakapae mo te panui konae. He hononga tohu test.js kua taapirihia ki te putunga Git o te whare pukapuka JavaScript i tukuna ma te CDN, e tohu ana ki te konae /proc/self/maps. Whai muri i te whakaputa i tetahi putanga hou o te whare pukapuka, ka tukatukahia e te kaihautu whakahou tenei putunga me te whakaputa i te konae kua tohua ki roto i te cdnjs (i hangaia te test.js hei hononga tohu, a, i te wa i tonohia ai tenei konae, ka whakahokia nga ihirangi o /proc/self/maps. ).

Ko te whakakapi i tetahi hononga tohu ki te konae /proc/self/taiao, i kite te kaituhi o te rangahau ko nga raraunga kua homai kei roto nga uara o nga taurangi taiao GITHUB_REPO_API_KEY me WORKERS_KV_API_TOKEN. Ko te taurangi tuatahi i penapena te taviri API mo te uru tuhituhi ki te putunga robocdnjs i GitHub. Ko te taurangi tuarua i rongoa te tohu ki te rokiroki KV i roto i nga cdnjs. Ma te whakamahi i nga korero kua tae mai, ka taea e te kaitukino te whakarereke i nga cdnjs me te tino whakararu i te hanganga.

Source: opennet.ru

Tāpiri i te kōrero