Season 1/워게임
-
[WEB] web-deserialize-python 문제풀이 직렬화(Serialize)는 언어 문맥에서 구조나 상태를 다른 컴퓨터 환경에 저장하고 나중에 다시 사용할 수 있는 포맷으로 변환하는 과정이다. 웹 상에서 직렬화는 객체들의 데이터를 연속적인 데이터로 변형하여 Stream을 통해 데이터를 읽도록 한다. 주로 객체를 파일로 저장하거나 다른 곳으로 전송할 때 사용된다. 반대로 역직렬화(Deserialize)는 직렬화된 데이터를 역으로 직렬화하여 다시 객체의 형태로 복원하는 것을 말한다. 역직렬화(Deserialization) 취약점이란 위에서 설명한 직렬화-역직렬화 과정에서 악의적으로 객체 또는 변수를 추가 작성하여 악성코드를 싱행하게끔 만드는 취약점이다. pickle 모듈은 python의 객체구조 ..
[dreamhack] web-deserialize-python 문제풀이[WEB] web-deserialize-python 문제풀이 직렬화(Serialize)는 언어 문맥에서 구조나 상태를 다른 컴퓨터 환경에 저장하고 나중에 다시 사용할 수 있는 포맷으로 변환하는 과정이다. 웹 상에서 직렬화는 객체들의 데이터를 연속적인 데이터로 변형하여 Stream을 통해 데이터를 읽도록 한다. 주로 객체를 파일로 저장하거나 다른 곳으로 전송할 때 사용된다. 반대로 역직렬화(Deserialize)는 직렬화된 데이터를 역으로 직렬화하여 다시 객체의 형태로 복원하는 것을 말한다. 역직렬화(Deserialization) 취약점이란 위에서 설명한 직렬화-역직렬화 과정에서 악의적으로 객체 또는 변수를 추가 작성하여 악성코드를 싱행하게끔 만드는 취약점이다. pickle 모듈은 python의 객체구조 ..
2021.07.07 -
3번째 시도,, level 25 문제 바로 소스코드 확인들어가자.. 코드를 보면 REQUEST_URI를 parse_url함수를 통해서 parse 한 뒤 qurey에 flag 값이 들어가면 die메시지가 출력된다. 각 함수의 특징들을 살펴보자. 1.parse_url()은 host, port, user, path, query 등의 값을 반환하는 함수 2.parse_str()은 이름=값(query)의 형태로 만들어주는 함수 3.stripos()는 문자열을 찾는 함수 자세한 내용은 아래 참고 url을 통해서 확인 가능! 정상적으로 parse_url 함수가 사용 될 경우 query문에 flag 문자열이 들어가게 되므로 die메시지가 출력되게 된다. URL: /index.php?page=flag Array ( [p..
[websec.fr] babysteps - Level 253번째 시도,, level 25 문제 바로 소스코드 확인들어가자.. 코드를 보면 REQUEST_URI를 parse_url함수를 통해서 parse 한 뒤 qurey에 flag 값이 들어가면 die메시지가 출력된다. 각 함수의 특징들을 살펴보자. 1.parse_url()은 host, port, user, path, query 등의 값을 반환하는 함수 2.parse_str()은 이름=값(query)의 형태로 만들어주는 함수 3.stripos()는 문자열을 찾는 함수 자세한 내용은 아래 참고 url을 통해서 확인 가능! 정상적으로 parse_url 함수가 사용 될 경우 query문에 flag 문자열이 들어가게 되므로 die메시지가 출력되게 된다. URL: /index.php?page=flag Array ( [p..
2021.07.07 -
쿼리문을 보자마자 생각나는 방법이 하나 있다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); id 파라미터가 쿼리문에 하드코딩 되어 있어서 id의 검증은 따로 없었다. 하지만 no 파라미터의 경우 prob, _, ., (), ', ", `에 대해서 검증하고 있었다. $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result[..
[Lord of SQLInjection] Goblin Write UP쿼리문을 보자마자 생각나는 방법이 하나 있다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); id 파라미터가 쿼리문에 하드코딩 되어 있어서 id의 검증은 따로 없었다. 하지만 no 파라미터의 경우 prob, _, ., (), ', ", `에 대해서 검증하고 있었다. $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result[..
2021.07.06 -
[WEB] funjs 문제풀이 자바스크립트(Javascript)는 아주 강력한 프로그래밍 언어이다. HTML은 웹페이지의 큰 뼈대를 제공하고, CSS는 색깔이나 글씨체, 모양과 같은 디자인적인 요소를 관리하며, 자바스크립트는 웹 페이지의 동작을 담당한다. 즉, 자바스크립트는 동적으로 콘텐츠를 바꾸고, 멀티미디어나 움직이는 이미지 등 웹페이지를 꾸며주도록 도와준다. 크롬 개발자 도구(DevTools)는 크롬 브라우저에 내장된 개발 관련 도구입니다. 웹 어플리케이션을 개발하고 수정/최적화하는데 필요한 다양한 기능을 제공한다다. 자바스크립트 디버깅뿐 아니라 모바일 기기 시뮬레이터, 네트워크 분석, 최적화에 대해 검사도 해줍니다. 전체 기능은 공식 홈페이지에서 확인할 수 있다. 디버깅에는 주로 Elements,..
[dreamhack] funjs 문제풀이[WEB] funjs 문제풀이 자바스크립트(Javascript)는 아주 강력한 프로그래밍 언어이다. HTML은 웹페이지의 큰 뼈대를 제공하고, CSS는 색깔이나 글씨체, 모양과 같은 디자인적인 요소를 관리하며, 자바스크립트는 웹 페이지의 동작을 담당한다. 즉, 자바스크립트는 동적으로 콘텐츠를 바꾸고, 멀티미디어나 움직이는 이미지 등 웹페이지를 꾸며주도록 도와준다. 크롬 개발자 도구(DevTools)는 크롬 브라우저에 내장된 개발 관련 도구입니다. 웹 어플리케이션을 개발하고 수정/최적화하는데 필요한 다양한 기능을 제공한다다. 자바스크립트 디버깅뿐 아니라 모바일 기기 시뮬레이터, 네트워크 분석, 최적화에 대해 검사도 해줍니다. 전체 기능은 공식 홈페이지에서 확인할 수 있다. 디버깅에는 주로 Elements,..
2021.07.06 -
- 디컴파일 문제 - Start - 파이썬~, python~, 현재 시각, bughela.pyc 파일 - 외 특이사항은 보이지 않음 - bughela.pyc 파일 - .pyc파일에 대해 알아본 결과 간단히 파이썬 임시파일이라고 보면 될 것 같다. - 파이썬 언어로 작성된 코드를 컴파일하게 되면 실행파일이 생성되고 프로그램이 실행되는데, 이러한 컴파일 과정을 효율적으로 하기위해 임시파일을 생성하여 반복적인 작업을 줄인다고 한다. - 따라서 .pyc파일을 디컴파일 하면 파이썬 코드를 확인할 수 있다. - bughela.pyc (디컴파일) - 온라인 디컴파일러를 사용한 결과 위와 같은 코드 확인. - flag 는 http://wargame.kr:8080/pyc_decompile/?flag=FLAG - 여기서 ..
Wargame - pyc decompile- 디컴파일 문제 - Start - 파이썬~, python~, 현재 시각, bughela.pyc 파일 - 외 특이사항은 보이지 않음 - bughela.pyc 파일 - .pyc파일에 대해 알아본 결과 간단히 파이썬 임시파일이라고 보면 될 것 같다. - 파이썬 언어로 작성된 코드를 컴파일하게 되면 실행파일이 생성되고 프로그램이 실행되는데, 이러한 컴파일 과정을 효율적으로 하기위해 임시파일을 생성하여 반복적인 작업을 줄인다고 한다. - 따라서 .pyc파일을 디컴파일 하면 파이썬 코드를 확인할 수 있다. - bughela.pyc (디컴파일) - 온라인 디컴파일러를 사용한 결과 위와 같은 코드 확인. - flag 는 http://wargame.kr:8080/pyc_decompile/?flag=FLAG - 여기서 ..
2021.07.05 -
- 치트방지 시스템을 우회하는 javascript 문제 - Start - 비행기 게임 - 시작하면 양 옆에서 공격을 하며 공격에 맞으면 게임이 종료되고, 31337점을 획득해야 한다는 문구가 나온다. - 정상적인 플레이로 31337점 획득이 불가능한 상황 - script를 확인 - 문제 내용답게 javascript로 작동하는 게임인데.. 스크립트가 난독화되어있다. - 난독화를 풀어서 해결하는 문제인듯 싶다.. - 난독화를 풀어야 하나 귀찮아 하던 도중 게임이 오버되면 브라우저에서 발생하는 요청메시지를 확인했다. - 게임이 오버되면 high-scores.php 페이지를 요청하며, post메소드로 변수 'token', 'score'를 전송한다. - 저 값을 조작하여 전송하면 될 듯하다. - 그런데 'toke..
Wargame - fly me to the moon- 치트방지 시스템을 우회하는 javascript 문제 - Start - 비행기 게임 - 시작하면 양 옆에서 공격을 하며 공격에 맞으면 게임이 종료되고, 31337점을 획득해야 한다는 문구가 나온다. - 정상적인 플레이로 31337점 획득이 불가능한 상황 - script를 확인 - 문제 내용답게 javascript로 작동하는 게임인데.. 스크립트가 난독화되어있다. - 난독화를 풀어서 해결하는 문제인듯 싶다.. - 난독화를 풀어야 하나 귀찮아 하던 도중 게임이 오버되면 브라우저에서 발생하는 요청메시지를 확인했다. - 게임이 오버되면 high-scores.php 페이지를 요청하며, post메소드로 변수 'token', 'score'를 전송한다. - 저 값을 조작하여 전송하면 될 듯하다. - 그런데 'toke..
2021.07.05