Sploitus

Exploit for spectre-attack-example

kitploit Β· 2026-08-24

Exploit Code

MARKDOWN16 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-00052-SPECTRE-ATTACK-EXAMPLE
# Spectre 곡격 예제

2018λ…„ 1μ›” 2일 (CVE-2017-5753 및 CVE-2017-5715) "유령" Spectre 취약점 이용 μ˜ˆμ‹œ

## 이게 λ­”κ°€μš”?

μš°λ¦¬λŠ” "The Magic Words are Squeamish Ossifrage." λΌλŠ” ν…μŠ€νŠΈλ₯Ό λ©”λͺ¨λ¦¬μ— μ €μž₯ν•˜κ³ , 취약점을 μ΄μš©ν•΄ 이λ₯Ό 읽으렀고 μ‹œλ„ν•©λ‹ˆλ‹€. μ‹œμŠ€ν…œμ΄ μ·¨μ•½ν•˜λ‹€λ©΄, ν‘œμ€€ 좜λ ₯μ—μ„œ λ™μΌν•œ ν…μŠ€νŠΈλ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

이 μ½”λ“œμ—μ„œ, victim_function() λ‚΄μ˜ 컴파일 λͺ…령이 μ—„κ²©ν•œ ν”„λ‘œκ·Έλž¨ μˆœμ„œλ‘œ μ‹€ν–‰λœλ‹€λ©΄, ν•΄λ‹Ή ν•¨μˆ˜λŠ” array1 크기 = 16μ΄λ―€λ‘œ array1[0..15]μ—μ„œλ§Œ μ½μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ‹€ν–‰ μ‹œκ°„μ΄ 읽기 μ‹œκ°„μ„ μ΄ˆκ³Όν•˜λŠ” 것이 κ°€λŠ₯ν•©λ‹ˆλ‹€. read memory byte() ν•¨μˆ˜λŠ” victim_function()을 μ—¬λŸ¬ 번 ν›ˆλ ¨ ν˜ΈμΆœν•˜μ—¬ λΆ„κΈ° μ˜ˆμΈ‘κΈ°κ°€ x의 μœ νš¨ν•œ 값을 μ˜ˆμΈ‘ν•˜λ„λ‘ ν•œ λ‹€μŒ, λ²”μœ„λ₯Ό λ²—μ–΄λ‚œ xλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. 쑰건뢀 λΆ„κΈ°λŠ” μ˜ˆμΈ‘ν•  수 μ—†μœΌλ©°, μ΄ν›„μ˜ μΆ”μΈ‘ 싀행은 λ²”μœ„λ₯Ό λ²—μ–΄λ‚œ xλ₯Ό μ‚¬μš©ν•˜μ—¬ λΉ„λ°€ λ°”μ΄νŠΈλ₯Ό μ½μŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ 예츑 μ½”λ“œλŠ” array2[array1[x] * 512]μ—μ„œ 읽어 array1[x]의 값을 μΊμ‹œλ‘œ μœ μΆœν•©λ‹ˆλ‹€. 곡격을 μ™„λ£Œν•˜κΈ° μœ„ν•΄ κ°„λ‹¨ν•œ flush+reloadλ₯Ό μ‚¬μš©ν•˜μ—¬ array2κ°€ μ–΄λŠ μΊμ‹œ 라인에 μžˆλŠ”μ§€ μ‹λ³„ν•˜μ—¬ λ©”λͺ¨λ¦¬ λ‚΄μš©μ„ λ“œλŸ¬λƒ…λ‹ˆλ‹€. 곡격은 μ—¬λŸ¬ 번 λ°˜λ³΅λ˜λ―€λ‘œ, λŒ€μƒ λ°”μ΄νŠΈκ°€ μ²˜μŒμ— μΊμ‹œλ˜μ§€ μ•Šμ•˜λ”λΌλ„ 첫 번째 λ°˜λ³΅μ—μ„œ μΊμ‹œλ‘œ κ°€μ Έμ˜΅λ‹ˆλ‹€. i7 Surface Pro 3μ—μ„œ μ΅œμ ν™”λœ μ½”λ“œλŠ” μ•½ 10KB/초의 μ†λ„λ‘œ μ½μŠ΅λ‹ˆλ‹€.

## 좜처

  * [Spectre 곡격 정보]
  * CVE-2017-5753 \- λ³€μ’… 1: 경계 검사 우회
  * CVE-2017-5715 \- λ³€μ’… 2: λΆ„κΈ° λŒ€μƒ μ£Όμž