InfoSec

InfoSec/Wargame

[워게임] csrf-2 문제 풀이

1. 엔트포인트 분석/vulncsrf1과 마찬가지로 파라미터를 소문자로 변경 후에 xss 공격을 막기 위해 필터링을 합니다.@app.route("/vuln")def vuln(): param = request.args.get("param", "").lower() # 이용자가 입력한 param 파라미터를 소문자로 변경 xss_filter = ["frame", "script", "on"] # 세 가지 필터링 키워드 for _ in xss_filter: param = param.replace(_, "*") # 이용자가 입력한 값 중에 필터링 키워드가 있는 경우, '*'로 치환 return param /flagGET 요청일 경우에는 flag 페이지를 렌더링..

InfoSec/Wargame

[워게임] csrf-1 분석 및 풀이

1.  엔드포인트 분석/vuln사용자가 입력 받은 파라미터를 소문자로 변경 후에, 필터링을 통해 xss 공격을 차단합니다.@app.route("/vuln") # vuln 페이지 라우팅 (이용자가 /vuln 페이지에 접근시 아래 코드 실행)def vuln(): param = request.args.get("param", "").lower() # 이용자가 입력한 param 파라미터를 소문자로 변경 xss_filter = ["frame", "script", "on"] # 세 가지 필터링 키워드 for _ in xss_filter: param = param.replace(_, "*") # 이용자가 입력한 값 중에 필터링 키워드가 있는 경우, '*'로 치환 return ..

InfoSec/Wargame

[워게임] xss-2 : img onerror 풀이

문제 설명render_template을 우회하여 플래그 값을 구하라 페이지 설명모든 엔드포인트는 xss-1 문제와 똑같은 구성으로 이루어져 있다. 아래의 포스트를 참고하여 파악해보자https://e-dl.tistory.com/65 [워게임] xss-1 : innerHTML 풀이문제 설명XSS 기법을 사용하여 쿠키에 저장된 플래그 값을 탈취하자. 페이지 설명/ : 인덱스 페이지입니다./vuln : 이용자가 입력한 값을 출력합니다./memo : 이용자가 메모를 남길 수 있으며, 작성e-dl.tistory.com 달라진 점은 /vuln 의 코드이다@app.route("/vuln")def vuln(): return render_template("vuln.html")사용자가 입력한 param 값을 바로 리턴..

InfoSec/Wargame

[워게임] xss-1 : <script> 풀이

문제 설명XSS 기법을 사용하여 쿠키에 저장된 플래그 값을 탈취하자. 페이지 설명/ : 인덱스 페이지입니다./vuln : 이용자가 입력한 값을 출력합니다./memo : 이용자가 메모를 남길 수 있으며, 작성한 메모를 출력합니다./flag : 전달된 URL에 임의 이용자가 접속하게끔 합니다. 해당 이용자의 쿠키에는 FLAG가 존재합니다./vuln 페이지에 접속하면 param 자리에 script 를 작성한 것이 제대로 작동하는 것을 확인할 수 있다.여기서 vuln의 코드를 보게 되면 사용자가 입력한 파라미터를 바로 return 하기 때문에 이것이 바로 XSS 취약점이 될 수 있는 것이다.@app.route("/vuln")def vuln(): param = request.args.get("param", ..

InfoSec/Web

[Web] Session Hijacking

지난 글에서 쿠키와 세션에 대해 알아 보았는데요 간략히 요약하자면 쿠키와 세션의 동작과정은 이렇습니다.서버에서 클라이언트에게 세션 ID를 발급한다클라이언트는 발급 받은 세션 ID와 함께 로그인을 한다.서버는 해당 로그인 정보를 세션 ID에 해당되는 인증 정보에 저장한다.서버는 클라이언트에게 인증 상태를 전송한다.클라이언트가 서버에게 요청을 전송할 때, 세션ID 가 저장되어 있는 쿠키와 인증 상태가 저장되어있는 쿠키를 함께 전송한다.서버는 클라이언트에게 받은 세션ID로 이에 해당 되는 인증 정보와 인증 상태가 일치하는지 확인한다.서버는 HTTP의 비연결성과 무상태성 때문에 클라이언트에게 상태 정보인 쿠키를 발급하고, 해당 쿠키의 변조를 막기 위해 세션이 존재한다는 사실까지 알 수 있었습니다. 하지만 이번 ..

InfoSec/Wargame

[워게임] devtools-sources

https://dreamhack.io/wargame/challenges/267 devtools-sources개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. 플래그 형식은 DH{...} 입니다. Reference Tools: Browser DevToolsdreamhack.io 주어진 웹 폴더에서 devtools를 사용하여 플래그를 찾아내면 되는 문제다이렇게 파일을 다운받아주고, index.html을 크롬으로 열어본다.그러면 아래와 같은 화면이 나오는데, 여기서 ctr + shift + J 를 눌러서 개발자 모드를 열어준다.sources에서 ctrl + shift + F 를 눌러 전체 파일에서 검색하는 기능을 켜주고,아래의 화면처럼 DH를 검색하면 출제자가 주석처리 해놓은 플래그를 볼 수..

InfoSec/Pawnable

[Pwnable] Shellcode

셸코드를 사용하는 이유 rip를 자신이 작성한 셸코드로 옮겨서 원하는 어셈블리 코드가 실행되게 할 수 있음셸코드 공유 사이트도 있지만, 스스로 작성할 수 있는 것이 제일 나음 orw 셸코드파일을 열고 읽은 뒤에 화면에 출력해주는 셸코드 syscallraxarg0 (rdi)arg1 (rsi)arg2 (rdx)read0x00unsigned int fdchar *bufsize_t countwrite0x01unsigned int fdconst char *bufsize_t countopen0x02const char *filenameint flagsumode_t mode open 구현push 0x67mov rax, 0x616c662f706d742f push raxmov rdi, rsp ; rdi = "/tmp..

InfoSec/Pawnable

[Pwnable] Pwntools 사용 방법

등장 배경pwndbg에서 만약 인자로 전달할 값이 많거나 파이썬의 코드가 길어지게 되면 불편하고 가독성이 떨어진다.그래서 해커들은 파이썬으로 익스플로잇 스크립트를 작성하여 바이너리를 실행한다.설치 방법sudo apt-get updatesudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essentialsudo python3 -m pip install --upgrade pipsudo python3 -m pip install --upgrade pwntools설치 후에 사진과 같이 명령어를 입력했을 때 이런 화면이 뜨면 잘 설치된 것이다.사용 방법1. process: 익스플로잇을 로컬 바이너리를 대상으로 할 때..

agor
'InfoSec' 카테고리의 글 목록