Season 1
-
[WEB] blind-command 문제풀이 Blind Command Injection은 사용자의 입력이 시스템 명령에 사용될 수 있는 공격인 OS Command Injection의 한 종류로 시스템 명령의 수행 결과 값을 알 수 없을 때 사용하는 방법이다. 문제를 확인해보자. Read the flag file XD? 무슨 말 하는거야 한글로 해ㅡㅡ 일단 접속해보자. 오 커맨드 인젝션 문제인가보다. 진행시켜. 어라 그대로 뱉어내네. echo인건가..... 모르겠으니 일단 소스코드를 확인해보자. #!/usr/bin/env python3 from flask import Flask, request import os app = Flask(__name__) @app.route('/' , methods=['GET'..
[dreamhack] blind-command 문제풀이[WEB] blind-command 문제풀이 Blind Command Injection은 사용자의 입력이 시스템 명령에 사용될 수 있는 공격인 OS Command Injection의 한 종류로 시스템 명령의 수행 결과 값을 알 수 없을 때 사용하는 방법이다. 문제를 확인해보자. Read the flag file XD? 무슨 말 하는거야 한글로 해ㅡㅡ 일단 접속해보자. 오 커맨드 인젝션 문제인가보다. 진행시켜. 어라 그대로 뱉어내네. echo인건가..... 모르겠으니 일단 소스코드를 확인해보자. #!/usr/bin/env python3 from flask import Flask, request import os app = Flask(__name__) @app.route('/' , methods=['GET'..
2021.07.21 -
[WEB] web-ssrf 문제풀이 SSRF(Server Side Request Forgery)는 CSRF와 다르게 클라이언트 측의 요청을 변조시키는 것이 아닌 서버 측 자체의 요청을 변조하여 공격자가 원하는 형태의 악성 행위를 서버에 던져주면 서버가 검증 없이 그대로 받아 그에 따른 행위/응답을 해주는 공격을 말한다. 이 공격은 주로 사용자 입력을 받아 서버가 직접 다른 웹이나 포트에 접근해서 데이터를 가져오는 기능에서 발생하며, 외부가 아닌 내부에서 공격을 수행하게 되므로 접근제어 정책을 우회할 수 있는 공격이다. 문제를 확인해보자. Flask로 작성된 Image Viewer 서비스에서 SSRF 취약점을 이용해 /app/flag.txt에 위치한 플래그를 획득하는 문제이다. 접속해보자. Image Vi..
[dreamhack] web-ssrf 문제풀이[WEB] web-ssrf 문제풀이 SSRF(Server Side Request Forgery)는 CSRF와 다르게 클라이언트 측의 요청을 변조시키는 것이 아닌 서버 측 자체의 요청을 변조하여 공격자가 원하는 형태의 악성 행위를 서버에 던져주면 서버가 검증 없이 그대로 받아 그에 따른 행위/응답을 해주는 공격을 말한다. 이 공격은 주로 사용자 입력을 받아 서버가 직접 다른 웹이나 포트에 접근해서 데이터를 가져오는 기능에서 발생하며, 외부가 아닌 내부에서 공격을 수행하게 되므로 접근제어 정책을 우회할 수 있는 공격이다. 문제를 확인해보자. Flask로 작성된 Image Viewer 서비스에서 SSRF 취약점을 이용해 /app/flag.txt에 위치한 플래그를 획득하는 문제이다. 접속해보자. Image Vi..
2021.07.21 -
처음 들어가는 순간 Hidden Flag와 로봇 사진이 나왔다. 습관적으로 소스보기(F12)를 눌러보자. 소스를 확인해보니 img 태그에 링크를 확인할 수 있었다. 한번 접근해보자. 흠 로봇신문 홈페이지에서 이미지를 가져온듯 하다.. 로봇이미지 & 로봇신문 .. 로봇을 공통점으로 생각하다 보니 웹과 관련된 문제여서 robots.txt가 생각이 났다. robots.txt에 접근해 보자. http://ctf.j0n9hyun.xyz:2020/robots.txt 접근하니 경로인 /robot_flag/가 나왔다. 저곳에 flag 값이 있을거 같다. 접근해보자. 이렇게 flag 값을 확인할 수 있었다! robots.txt 인터넷 검색엔진에서 보안이 필요한 내용을 검색엔진에 의해 검색등을 통한 노출이 되지 않도록 웹..
[HackCTF] Web - / 풀이처음 들어가는 순간 Hidden Flag와 로봇 사진이 나왔다. 습관적으로 소스보기(F12)를 눌러보자. 소스를 확인해보니 img 태그에 링크를 확인할 수 있었다. 한번 접근해보자. 흠 로봇신문 홈페이지에서 이미지를 가져온듯 하다.. 로봇이미지 & 로봇신문 .. 로봇을 공통점으로 생각하다 보니 웹과 관련된 문제여서 robots.txt가 생각이 났다. robots.txt에 접근해 보자. http://ctf.j0n9hyun.xyz:2020/robots.txt 접근하니 경로인 /robot_flag/가 나왔다. 저곳에 flag 값이 있을거 같다. 접근해보자. 이렇게 flag 값을 확인할 수 있었다! robots.txt 인터넷 검색엔진에서 보안이 필요한 내용을 검색엔진에 의해 검색등을 통한 노출이 되지 않도록 웹..
2021.07.20 -
이번 문제는 굉장히 어려워 보였다. 그 이유는 이전 문제인 Darkknight 문제와 같은 문제이지만, 풀이에 사용하는 =, LIKE, ascii, 0x를 필터링을 하고 있기 때문이다. 문제 풀이를 위해 공격 백터와 공격 백터에 대한 검사를 정리하겠다. 공격 백터는 pw와 no가 있다. pw의 필터링은 '이며, addslashes 함수로 특정 특수 문자를 사용 못하게 치환하고 있다. no의 필터링은 prob, _, ., (), ‘, SUBSTR, ASCII, =, or, and, 공백, LIKE, 0x이 있다. 일단 생각한 방법은 '를 우회할 수 없으니, no를 이용하여 공격를 시도해야할 것 같다. 인터넷에 =, LIKE를 대신하여 사용할 만한 것을 찾을 수 있었다. 바로 IN 연산자라는 것이다. 사용하..
[Lord of SQLInjection] Bugbear Write UP이번 문제는 굉장히 어려워 보였다. 그 이유는 이전 문제인 Darkknight 문제와 같은 문제이지만, 풀이에 사용하는 =, LIKE, ascii, 0x를 필터링을 하고 있기 때문이다. 문제 풀이를 위해 공격 백터와 공격 백터에 대한 검사를 정리하겠다. 공격 백터는 pw와 no가 있다. pw의 필터링은 '이며, addslashes 함수로 특정 특수 문자를 사용 못하게 치환하고 있다. no의 필터링은 prob, _, ., (), ‘, SUBSTR, ASCII, =, or, and, 공백, LIKE, 0x이 있다. 일단 생각한 방법은 '를 우회할 수 없으니, no를 이용하여 공격를 시도해야할 것 같다. 인터넷에 =, LIKE를 대신하여 사용할 만한 것을 찾을 수 있었다. 바로 IN 연산자라는 것이다. 사용하..
2021.07.20 -
이번에도 전 문제와 유사한 문제가 왔다. 하지만 필터링되는 부분이 다른 것을 확인할 수 있다. 이 문제에선 파라미터로 pw와 no를 서버로 전달한다. 서버에선 pw와 no에 대한 검사를 후 쿼리문에 삽입한다. 이때 검사는 pw의 경우 prob, _, ., (), '를 필터링하며, addslashes 함수를 이용하여 특정 특수 문자를 사용 못하게 치환한다. no의 경우 ', SUBSTR, ASCII, =를 필터링한다. 공격 백터는 pw와 no가 있는데 pw의 경우 ''으로 감싸져 있어서 공격을 시도했을 때 '를 사용해야지만 가능할 거 같다. 하지만 pw의 필터링 목록 중 '이 있어서 pw의 경우 공격 백터로 사용을 못할 것으로 판단되었다. 남은 건 no 파라미터인데 no의 경우 감싸진 것이 없어서 HEX와..
[Lord of SQLInjection] Darkknight Write UP이번에도 전 문제와 유사한 문제가 왔다. 하지만 필터링되는 부분이 다른 것을 확인할 수 있다. 이 문제에선 파라미터로 pw와 no를 서버로 전달한다. 서버에선 pw와 no에 대한 검사를 후 쿼리문에 삽입한다. 이때 검사는 pw의 경우 prob, _, ., (), '를 필터링하며, addslashes 함수를 이용하여 특정 특수 문자를 사용 못하게 치환한다. no의 경우 ', SUBSTR, ASCII, =를 필터링한다. 공격 백터는 pw와 no가 있는데 pw의 경우 ''으로 감싸져 있어서 공격을 시도했을 때 '를 사용해야지만 가능할 거 같다. 하지만 pw의 필터링 목록 중 '이 있어서 pw의 경우 공격 백터로 사용을 못할 것으로 판단되었다. 남은 건 no 파라미터인데 no의 경우 감싸진 것이 없어서 HEX와..
2021.07.19 -
level 4번 시작! 바로 소스보기를 통해 확인.. 첫번째 소스코드를 처음부터 살펴보자. 2가지 내용을 확인할 수 있었다. 1.SQL이란 객체를 생성하고 connect 함수를 실행시키고 query에 쿼리문이 담겨있다. 2.leet_hax0r 쿠키값을 base63로 디코딩을 한 후 unserialize를 하는 것을 확인 할 수 있다. 두번째 소스코드를 보면 첫번째 소스코드에서 알 수 있었던 connect 함수를 여기서 호출하는것을 확인할 수 있다. 그리고 마지막 __destruct() 함수를 볼 필요가 있다. __destruct() 함수는 소멸자로서 특정 객체를 참조 후 또는 객체가 명시적으로 파기된 후 메소드를 호출한다. 정리하면 SQL 객체가 실행되고 파기된 후 destruct()함수가 호출되면 us..
[websec.fr] babysteps - Level 04level 4번 시작! 바로 소스보기를 통해 확인.. 첫번째 소스코드를 처음부터 살펴보자. 2가지 내용을 확인할 수 있었다. 1.SQL이란 객체를 생성하고 connect 함수를 실행시키고 query에 쿼리문이 담겨있다. 2.leet_hax0r 쿠키값을 base63로 디코딩을 한 후 unserialize를 하는 것을 확인 할 수 있다. 두번째 소스코드를 보면 첫번째 소스코드에서 알 수 있었던 connect 함수를 여기서 호출하는것을 확인할 수 있다. 그리고 마지막 __destruct() 함수를 볼 필요가 있다. __destruct() 함수는 소멸자로서 특정 객체를 참조 후 또는 객체가 명시적으로 파기된 후 메소드를 호출한다. 정리하면 SQL 객체가 실행되고 파기된 후 destruct()함수가 호출되면 us..
2021.07.18