Gh Actions - Context Script Injections

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Taarifa Msingi

Tambua kuwa kuna muktadha wa github ambao thamani zake zinadhibitiwa na mtumiaji anayesababisha PR. Ikiwa hatua ya github inatumia data hiyo kutekeleza chochote, inaweza kusababisha utekelezaji wa nambari za aina yoyote. Muktadha hawa kawaida huishia na body, default_branch, email, head_ref, label, message, name, page_name,ref, na title. Kwa mfano (orodha kutoka kwenye makala hii):

  • github.event.comment.body

  • github.event.issue.body

  • github.event.issue.title

  • github.head_ref

  • github.pull_request.*

  • github.*.*.authors.name

  • github.*.*.authors.email

Tambua kuwa kuna vyanzo visivyo wazi sana vya data isiyoaminika, kama majina ya matawi na anwani za barua pepe, ambazo zinaweza kuwa nyepesi sana kwa upande wa yaliyoruhusiwa. Kwa mfano, zzz";echo${IFS}"hello";# ingekuwa jina sahihi la tawi na inaweza kuwa njia ya shambulio inayowezekana kwa repo lengwa.

Mfano wa shambulio la uingizaji wa scripti

Shambulio la uingizaji wa scripti linaweza kutokea moja kwa moja ndani ya scripti ya mstari wa mwelekeo. Katika mfano ufuatao, hatua inatumia muktadha kuthibitisha usahihi wa kichwa cha PR, lakini pia inaongeza hatari ya uingizaji wa scripti:

- name: Check PR title
run: |
title="${{ github.event.pull_request.title }}"
if [[ $title =~ ^octocat ]]; then
echo "PR title starts with 'octocat'"
exit 0
else
echo "PR title did not start with 'octocat'"
exit 1
fi

Kabla ya script ya shell kutekelezwa, maelezo ndani ya ${{ }} yanafanyiwa tathmini na kisha kubadilishwa na thamani zinazopatikana, ambayo inaweza kufanya iwe dhaifu kwa kuingiza amri za shell.

Ili kuingiza amri katika mfumo huu, mshambuliaji anaweza kuunda ombi la kuchota na kichwa cha a"; ls $GITHUB_WORKSPACE"

Katika mfano huu, herufi ya " hutumiwa kuingilia kati taarifa ya title="${{ github.event.pull_request.title }}", kuruhusu amri ya ls kutekelezwa kwenye runner.

Last updated