강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của rhrhkddn227283
rhrhkddn227283

câu hỏi đã được viết

Kỹ thuật tấn công XSS được giảng dạy bởi một học viên hack giả

섹션 4. 공격상세방법론 - [미션] 게시판 취약점 찾기 풀이 검토 및 개인적인 질문

Đã giải quyết

Viết

·

618

1

안녕하세요. 크리핵 티브님 미션으로 주셨던 강의 내용 풀이 시도한 내용과 개인적인 질문 내용 드리겠습니다.

 

미션1) board/index.php에서 XSS 취약점을 최대한 많이 찾아보는 미션

-> 맨 처음에는 black-box test 방식으로 시도했으나 도무지 방법을 찾지 못해서 php 코드를 보고 풀이를 했습니다.

미션풀이 이미지-1.png-> 붉은 상자로 표시한 부분에 value 값에 XSS 구문을 넣으면 XSS가 가능할 것으로 판단 했습니다.

미션풀이 이미지-2.png-> 그래서 URL에 vlaue=<script>alert('XSS');</script> 구문을 넣어서 XSS가 잘 동작함을 확인했습니다.

-> DOM을 통해 client 단에서 동작하는 것이 아니기 때문에 Reflected-XSS로 판단합니다.

[검증]

미션풀이 이미지-3.png

-> burp suite로 XSS를 동작시킬 때 Response부분을 잡아본 것인데 Response에 alert('XSS')가 들어감을 확인할 수 있습니다.

 

[질문1]

위에서 Refelected XSS외에 다른 XSS 취약점을 찾지 못했는데 다른 XSS 취약점도 있는지 궁금합니다.

그리고 제가 아직 모든 강의를 끝까지 들은건 아닌데 혹시 추후 강의 들에서 풀이가 있는지도 궁금합니다.

 

미션2) xss/eample5.php에서 어떤 XSS가 가능한지, DOM인지 Relfected 인지 한 번 찾아보는 미션

-> 이 역시도 black-box test방식으로 시도했으나 결국 성공하지 못해 php코드를 확인하고 XSS를 시도하였습니다.

미션풀이 이미지-4.png-> permissionCheck() 함수를 이용해서 XSS 공격을 시도해 봤습니다.

미션풀이 이미지-5.png-> URL에 ");로 if문을 닫아 버린 다음에 <script>태그를 이용했으나 필터링 코드에 의해 막혔습니다.

-> 그래서 필터링 코드를 우회하기 위해 XSS cheat sheet를 이용했습니다.

미션풀이 이미지-6.png-> 위의 이미지외에 여러 cheat sheet에 있는 코드를 시도했으나 모두 실패했습니다.

-> php코드를 보면 DOM XSS와 Relfected XSS모두 가능할 것 같지만 잘 모르겠습니다.

 

[질문 2]

해당 필터링 구문을 우회하려면 어떻게 하는지 궁금합니다.

 

[질문3-개인적인 질문]

현업에서는 black box test방식으로 모의해킹을 진행하게 되면 back-end단에서 돌아가는 코드(ex. php, jsp, asp, Node.js 등)구조를 알 수가 없는데 그러면 그냥 guessing을통해서만 XSS취약점을 점검해야 하는지 궁금합니다.

(전제 조건이 file download/upload취약점을 사용하지 않고 XSS를 점검하는 경우를 질문드리는 겁니다.)

 

감사합니다.

모의해킹xss

Câu trả lời 1

1

crehacktive님의 프로필 이미지
crehacktive
Người chia sẻ kiến thức

미션1) Reflected XSS가 맞습니다. 다만, PHP 코드를 참고한게 아쉽긴하네요.

질문1) 제가 해당 환경을 제작한지가 오래되어 어디 포인트에서 XSS 발생하는지 기억이 잘 나질 않네요; 질문자님께서 최대한 많이 찾아보세요. 그리고 미션에 대한 풀이는 없습니다. 이건 나중에 풀이를 추가하는 방향으로 해보겠습니다.

미션2) 사실 이부분은 PHP 코드를 보는거와 버프 상의 응답 메시지 보는거와 크게 차이가 없습니다.

?id=test 요청 시 응답은 아래와 같습니다.

...

if("" == "test") {

...

이를 통해 응답 값 내 사용자 입력 값이 포함된 것을 알 수 있습니다. 이를 통해 Reflected xss 시도가 가능하겠죠.

질문2) 이부분은 제가 교육생들에게도 항상 정답을 제공하진 않습니다. 이유는 교육생들이 풀이로 얻을 수 있는 깨달음의 기회를 뺏을 수 있기 때문입니다.

힌트를 들이면 사용자 입력 값이 어짜피 <script>~ </script> 태그 내에 위치하니 굳이 <script> 태그 사용이 필요하지 않습니다. 즉, 적는대로 js 조작이 가능하다는 이야기입니다. 생각보다 간단한 부분이니 꼭 해결하시길 바랄게요!

질문3) XSS는 서버 측의 코드 의존도가 높지 않습니다. 미션 1과 같이 제가 드린 말씀이 응답 값을 보고도 할 수 있는 부분이라고 했습니다. 이처럼 요청에 따른 응답 분석하는 능력을 키우면 이부분은 해결이 쉽습니다.

질문 하신것들을 보면 어느정도 이해를 하고 계신 느낌이 듭니다. 클라이언트 측, 서버 측 언어와 버프를 통한 분석들을 조금 키우시면 실력이 훨씬 높아질꺼라 생각됩니다. 화이팅 하세요!

rhrhkddn227283님의 프로필 이미지
rhrhkddn227283
Người đặt câu hỏi

답변 주셔서 감사합니다.
미션2)에서 아직 미해결 된 부분 제가 한 번 노력해서 해결해 보도록 하겠습니다.

 

2023년 4월 21일 09시 15분 기점으로 공격에 성공했습니다.
(정답이 될 수 있는 코드는 가려 놨습니다. 크리핵티브님이 주신 힌트를 통해 풀 수 있었습니다.)

image

감사합니다.

 

Hình ảnh hồ sơ của rhrhkddn227283
rhrhkddn227283

câu hỏi đã được viết

Đặt câu hỏi