redis 샘플 공격 데이터 2번 오류
68
작성한 질문수 3
오타 발견
root@4ea86c29f1f7:/data# redis-cli set attack:2 "{\"id\":2,\"timestamp\":\"${TODAY}T09:28:47\",\"targetIp\":\"203.0.113.50\",\"attackType\":\"XSS\",\"payload\":\"<script>alert('HACKED!');</script>\"}"
위 명령어 실행 시, 아래와 같은 에러 메시지 발생!
bash: !': event not found에러 발생 원인
bash: !': event not found 에러는 Bash의 히스토리 확장(history expansion) 때문에 납니다. ! 문자(예: HACKED!)가 들어가면 bash가 !로 시작하는 히스토리 토큰(예: !!, !$, !123)으로 해석하려 하고, 매칭되는 히스토리 항목이 없으면 event not found 오류가 납니다.
set +H # 히스토리 확장 끄기
...
redis-cli set attack:2 "{\"id\":2,\"timestamp\":\"${TODAY}T09:28:47\",\"targetIp\":\"203.0.113.50\",\"attackType\":\"XSS\",\"payload\":\"<script>alert('HACKED!');</script>\"}"
...
set -H # # 히스토리 확장 켜기OKredis key들을 set 하기 전에 히스토리 확장을 끄고 실행할 경우 정상 동작
답변 2
1
$ cat student_response.md
제보 고맙다 kil(l)형
Bash 히스토리 확장 때문에 발생한 문제다.
!가 적절히 이스케이프하도록 강의 내용 수정하였다
0
안녕하세요, 인프런 AI 인턴입니다.
kiljw316님, 제공하신 Redis 샘플 공격 데이터에 대해 명령어에서 발생한 에러 메시지가 ‘“!”’ 문자를 인식하면서 발생한 것으로 보입니다. Bash 쉘에서는 ‘!’ 문자를 이벤트 확장 기능에 의해 특별히 처리하기 때문에, 이를 문자열로 이용하려면 이스케이프 처리를 해주셔야 합니다.
재미있게도, Redis 명령어에서만 문제가 발생하는 것이 아니라, Bash 명령어를 처리할 때도 발생할 수 있는 일반적인 오류입니다. 따라서 Redis와 같은 명령어 행에서는 특수 문자를 이스케이프하여 문제가 발생하지 않도록 주의해야 합니다.
여기서 제시한 해결책처럼, ! 문자를 \'로 이스케이프하면 Bash 쉘의 이벤트 확장을 방지할 수 있으며, 정상적으로 명령이 동작하게 됩니다.
이미 이러한 유사한 문제 해결의 팁이 제공된 다른 사례가 있을 것으로 생각됩니다. 유사한 주제로 논의가 진행된 과거의 토론을 참고하면 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
형 책 어떻게 받아?
1
59
1
JpaCursorItemReader의 정렬 조건 부재의 영향
1
46
2
"컴파일 시점에 없는 값을 어떻게 참조할 것인가?" 섹션
1
53
2
형 이번에 낸 책이랑 강의 내용에 차이가 있어?
1
90
1
형 나 몰래 책내면 모를 줄 알고?
2
79
2
강의 중복 확인 요청
1
43
1
중복내용 제보?!
1
73
2
Json 요청 처리
1
69
2
[건의][6장][작전1] deprecated 메소드
1
78
2
[예제][3장][작전2] windows 에서 마지막 예제
1
71
2
[오타][3장][작전1] 형 이건 빨리 해줘
2
128
2
[오타] "리스너 활용: 시스템 완전 장악 매뉴얼" 부분
1
78
1
[오타] "JobScope와 StepScope 사용 시 주의사항" 부분
1
76
2
spring boot 4 + spring batch 6 설정 변경?
1
147
2
Batch 패키지 설계 — 실무에서 Job 단위 구조
1
128
2
Spring batch를 실행해줄 스케줄러와 batch 실행 환경
1
103
1
메타테이블에 데이터가 생기지 않는 이유
1
134
2
Spring Batch 4.3.10 ExecutionContext 한글 인코딩 이슈 관련 문의
1
125
2
@StepScope 또는 @JobScope와 JobOperator
1
165
5
Remote Partitioning
1
119
2
킬구형 실무에서는 JPA ItemReader / ItemWriter를 더 선호해? 아니면 JDBC itemReader/ItemWriter를 더 선호해?
1
154
2
병렬 중첩
1
111
3
형 코드에 public static class 이게 뭐야 ?
1
151
3
ExitStatus
1
73
2





