Gh Actions - Context Script Injections

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) öğrenin!

HackTricks'i desteklemenin diğer yolları:

Temel Bilgiler

Dikkat edin, bazı github bağlamları değerleri, PR oluşturan kullanıcı tarafından kontrol edilir. Eğer github eylemi bu verileri yürütmek için kullanıyorsa, bu keyfi kod yürütmeye yol açabilir. Bu bağlamlar genellikle body, default_branch, email, head_ref, label, message, name, page_name,ref ve title ile biter. Örneğin (bu yazıdan alınan liste):

  • github.event.comment.body

  • github.event.issue.body

  • github.event.issue.title

  • github.head_ref

  • github.pull_request.*

  • github.*.*.authors.name

  • github.*.*.authors.email

Dikkat edin, burada daha az açık kaynaklar da vardır, örneğin dal adları ve e-posta adresleri, izin verilen içerik açısından oldukça esnek olabilir. Örneğin, zzz";echo${IFS}"hello";# geçerli bir dal adı olabilir ve hedef bir depo için olası bir saldırı vektörü olabilir.

Betik enjeksiyon saldırısının bir örneği

Bir betik enjeksiyon saldırısı, bir iş akışının içinde doğrudan gerçekleşebilir. Aşağıdaki örnekte, bir eylem, bir pull request başlığının geçerliliğini test etmek için bir ifade kullanır, ancak aynı zamanda betik enjeksiyonu riskini de ekler:

- 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

Shell script çalıştırılmadan önce ${{ }} içindeki ifadeler değerlendirilir ve ardından elde edilen değerlerle değiştirilir, bu da onu komut enjeksiyonuna karşı savunmasız hale getirebilir.

Komut enjeksiyonu yapmak için saldırgan, başlığı a"; ls $GITHUB_WORKSPACE" olan bir pull isteği oluşturabilir.

Bu örnekte, " karakteri, title="${{ github.event.pull_request.title }}" ifadesini kesintiye uğratmak için kullanılır ve böylece ls komutu çalıştırılabilir hale gelir.

AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Last updated