일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Forensics
- 그리디 알고리즘
- wargame
- 백준
- Web Hacking
- 써니나타스
- 사칙연산
- Web
- Database
- N0Named
- 인코그니토
- misc
- HackCTF
- Python
- cryptography
- CTF
- 정렬
- writeup
- MySQL
- php
- SuNiNaTas
- Digital Forensics
- 수학
- Incognito
- 문자열
- Network
- Text
- xcz.kr
- C
- 구현
- Today
- Total
목록Web Hacking (33)
보안을 그리다, 훈이
Webhacking.kr old-01(20p) 문제 풀이입니다. 본 문제는 PHP와 Cookie에 대한 기본적인 이해를 필요로 한다. 먼저, 소스코드를 보자. ---------------------
HackCTF Web 분야 Guess me(100p) 문제 풀이입니다. 주어진 URL로 접속해보자. 비밀 코드를 맞추면 플래그를 얻을 수 있다고 한다. 먼저, 소스코드를 살펴보자. 파일 secret.txt의 내용을 변수 $secretcode에 넣어두고, 이 값을 extract($_GET);으로 받아온 값인 변수 $guess와 비교하여 동일한 값이라면 플래그를 출력하는 구조이다. 본 문제는 PHP extract() 함수의 취약점을 다루고 있다. extract() 함수를 통해 $_GET 또는 $_POST로 넘어온 인자는 함수 사용 전의 기존 값을 overwrite할 수 있으며, 이를 방지하기 위해서는 변수를 선언하기 이전에 extract() 함수를 사용하여야 하고 overwrite를 방지하기 위해 EXTR_..
PHP extract() function extract() 함수는 배열 속의 키 값들을 변수화하는 역할을 한다. // Code 1 - Example of using the PHP extract() function 위 Code 1의 결과는 아래와 같다. // The result of Code 1. x = 1 y = 2 배열 a 속의 키 값인 x와 y가 extract() 함수로 인해 변수화된 것을 확인할 수 있다. 마찬가지로 $_GET 또는 $_POST 인자도 extract() 함수를 사용하여 넘길 수 있으며, 이 경우에도 GET 또는 POST로 넘어오는 파라미터와 값을 변수와 그 초기값으로 설정할 수 있다. PHP extract() function 취약점 extract() 함수를 사용하여 $_GET 또는 ..
HackCTF Web 분야 마법봉(100p) 문제 풀이입니다. 제시된 링크로 접속해봅시다. 해쉬에 마법을 부여하면 뚫린다고 아주 친절하게 명시해 주었네요. 이는 PHP에 존재하는 Hash Magic Vulnerability에 대한 문제임을 유추할 수 있습니다. PHP Magic Hash Vulnerability는 PHP에서 == 연산자로 비교 시, 문자열의 형식이 ^0+e\d*$로 되어있을 때 이를 숫자형 데이터와 비교하게 되면 0으로 인식하게 되는 현상을 이용한 것인데 0의 n제곱은 항상 0이기 때문에 취약점이 발생하게 됩니다. 이전에 풀었던 인코그니토 문제와 같은 유형이네요! 자세한 풀이는 아래 링크를 참조하면 좋을 것 같습니다 :) [2021 INCOGNITO CTF writeup] Web - Do..
HackCTF Web 분야 Login(100p) 문제 풀이입니다. 문제에 링크가 주어져 있네요. 들어가봅시다. http://ctf.j0n9hyun.xyz:2024/ 로그인 폼이 있는 것을 보아 어떠한 문제일지 예상이 됩니다. 먼저, 페이지 소스코드를 봅시다.
이번에는 HackCTF의 Web Hacking 분야 보물 문제 풀이입니다. 이제 100포인트 문제네요. 문제 링크 접속. 페이지 숫자 중에 보물을 숨겨 두었다고 하네요. 일단 제시된 Page 1, Page 2, Page 3 버튼을 모두 눌러봅시다! 셋 다 128자의 각기 다른 값이 출력되었습니다. Hash Type Identifier를 돌려보니 Hex, md5, SHA-512 등의 type이 나와서 Hex to String과 md5 Decode를 시도해봤지만 어떠한 단서도 얻지 못했습니다. 다시 처음으로 돌아가서, 페이지 숫자 중에 비밀이 있다는 문구에 초점을 맞춰, 페이지 숫자를 무작위로 넣어 접속해보니 버튼을 눌렀을 때 처럼 모두 각기 다른 128자의 알 수 없는 값들이 출력되었습니다. 보물을 찾기 ..
이번에도 역시 HackCTF의 Web Hacking 분야 중 50점짜리 문제를 풀어봤습니다. Button이라는 문제 이름부터 대충 예상이 되네요. 문제 링크 접속. 버튼이 하나 구현되어 있고 이를 활용하여 플래그를 출력하는 문제네요. 일단 버튼을 눌러봤지만 아무런 반응이 없습니다. BUTTON 아래의 버튼으로 하여금 플래그를 출력하게 해줘! 페이지 소스코드에도 별다른 정보가 없네요. 버튼을 눌렀을 때 action을 취할 url이나 어떠한 행위가 나와있지 않습니다. 프록시 툴인 Burp Suite를 사용하여 버튼 클릭시 전송되는 파라미터를 살펴 보도록 합시다. 하단부의 button=button이 눈에 띄네요. button을 눌렀을 때 전송되는 value인 button을 flag로 변조하여 Forward 해..
이번엔 Web 분야 HackCTF Hidden(50p) 문제를 풀어봤다. 문제 링크 접속. 50점 문제답게 매우 친절하게 힌트를 준다. 1번 버튼을 눌러보면 http://ctf.j0n9hyun.xyz:2023/?id=1로 접근함과 동시에 'Nop'이라는 경고창을 띄워준다. 5번 파일에 플래그가 있다고 하니 id=5로 가보자. http://ctf.j0n9hyun.xyz:2023/?id=5에 접속하니 플래그가 나타났다. Solve!
HackCTF에 문제가 많길래 회원가입 후 Web 분야 첫 문제이자 포인트가 가장 낮은 / 문제를 풀어봤다. 제시된 링크로 접속해보자. 로봇 사진 한 개가 튀어나온다. 페이지 소스코드에 힌트가 있지 않을까.. Hidden Flag 응 어림도 없지. 이미지를 다운받아 binwalk를 돌려봤지만 딱히 쓸만한 것도 없었다. 다시 처음으로 돌아가서 고민하던 중 출제자가 irobotnews에서 로봇 사진을 퍼온 것을 보아 robots.txt를 의미하고자 했던게 아닐까 생각해본다. robots.txt 웹사이트에 웹 크롤러 등 로봇들의 접근을 제어하기 위한 규약이다. 사용할 때는 반드시 폴더명 맨 끝에 /를 붙여야 한다. 붙이지 않으면 확장자가 없는 파일로 인식하기 때문에 제대로 작동하지 않는다. 다시 돌아와서 문제..
써니나타스(SuNiNaTaS) 4번 문제를 풀어보았다. Game 04 User-Agent facebookexternalhit/1.1; kakaotalk-scrap/1.0; +https://devtalk.kakao.com/t/scrap/33984 suninatas.com 들어가자마자 위와 같이 나타났다. Plus 버튼을 눌러보니 ./web04_ck.asp를 거치며 Point가 1씩 올라갔다. 페이지 소스코드부터 확인해보자.   Point User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Auth key ????? 맨..