CTF
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fca902Y%2FbtrH2nlBZKi%2F3nHTNQPtXGc6DTXjtZFSuK%2Fimg.png)
[Wargame.kr] jff3_magic
jff3_magic HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 해당 문제를 보면 alert창이 하나 뜨는데 hint가 swp라고 한다. swp는 vi의 오류로 인해 파일을 일시적으로 백업을 하게 되는데 파일의 확장자가 swp가 된다. swp파일은 숨겨진 파일로 생성되어 .[파일명].swp의 형태로 저장된다. swp파일을 다운로드할 수 있는지를 확인해보면 .index.php.swp로 다운로드할 수 있다. vi로 swp파일을 열어야 swp파일을 볼 수 있는데 파일명을 .index.php.swp로 변경한 후 -r 옵션을 이용하여 파일을 열 수 있다. $ vi -r .index.php.swp 코드를 보면 문제 해결을 위한 소스코드는 아래와 같다. ma..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeobxjM%2FbtrH2gAF0ML%2FkT8Orv4k01VLy6JRkdOlN0%2Fimg.png)
[Wargame.kr] md5 password
md5 password 원래는 계속 존댓말로 썼는데 그냥 반말로 쓸게 반말로 쓰는 게 익숙해져서 안 되겠다. HTML 삽입 미리보기할 수 없는 소스 Vulnerability md5의 인코딩 방식을 사용하였을 때 SQLI가 일어날 수 있는 취약점이 있다. 바로 아래의 함수 때문에 가능해진다. 이게 php도 가능하고 python에서의 md5().digest()함수를 사용하여도 동일한 값이 나다. md5( string $str [, bool $raw_output = FALSE ] ) 위의 함수에서 문제 되는 부분은 $raw_output 때문이다. False일 경우에는 16진수 형태인 문자로 나와서 취약하지 않지만 True일 때가 문제가 된다. php의 경우에 True일 경우 digest로 출력이 되는데 hex..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdSUzn%2FbtrH31pqyLd%2F7wNKvDGkdKLn364evHt0X0%2Fimg.png)
[Dreamhack CTF] command-injection-1
command-injection-1 HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 해당 문제는 아래의 코드에서 취약점이 발생한다. cmd변수에 사용자 입력값이 들어오는 필터링 없이 그대로 사용하여 Injection이 발생된다. output = subprocess.check_output(['/bin/sh', '-c', cmd], timeout=5) Exploit HTML 삽입 미리보기할 수 없는 소스 위의 취약점을 토대로 바로 Injection을 시도하게 되면 형식에 맞춰서 입력하라고 나온다. 이는 client단에서 Input태그의 속성 값에 의해 필터링되는 것인데 이는 개발자 도구를 이용하여 해당 속성만 없애주면 입력할 수 있다. pattern="..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKyxlL%2FbtrH1blxhln%2Fs4eO317RWnK3k271HHAHUK%2Fimg.png)
[Dreamhack CTF] Mango
Mango HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 웹 사이트로 들어가보면 해당 문구가 보인다. 그대로 URL에 넣어보면 "guest"가 출력이 됩니다. 해당되는 값을 찾는다면 그uid를 보여주는데 소스코드를 보시면 const BAN = ['admin', 'dh', 'admi'];로 필터링을 하고 있습니다. /?login?uid[$ne]=guest&upw[$regex]="^alpha+num" 위와 같은 방식으로 Injection을 수행해도 동작하지만 문제는 uid가 "guest" "admin" 뿐만 아니라 "testuser" "dreamhack" 도 있다는 것 입니다. "$ne" 말고도 uid에 $regex를 사용해 uid[$regex]=ad..