| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- DreamHack
- XSS
- 드림핵
- Cross Site Scripting
- DOM-Based XSS
- Los
- webhacking.kr
- 워게임
- Remote File Inclusion
- H4CKINGGAME
- SuNiNaTas
- wargame
- 정보보호
- bypass CAPTCHA
- TeamH4C
- 빡공팟 4기
- Insecure CAPTCHA
- DVWA
- 빡공팟 6기
- 정보보안
- Dremhack
- Lord of SQL Injection
- Web Hacking
- sql injection
- File Upload Vulnerability
- Weak Session IDs
- Hackerfactory
- 웹 해킹
- 해커팩토리
- 써니나타스
- Today
- Total
도카이트
[Wargame] Webhacking.kr - old 33 본문
문제 화면

- 첫 문제 페이지의 소스 코드이다.
- GET 파라미터 값으로 get = hehe를 입력하면, 앵커 태그로 Next 링크가 출력된다.
- Next 를 클릭하여 이동 시 lv2.php 페이지로 이동할 수 있다.
lv2.php 소스코드

- hehe 를 참 좋아하는 것 같다.. 이번에는 POST 방식으로 hehe를 보내라고 한다.
- Burp Suite를 이용하여 패킷을 POST 패킷 형태로 변조하여 Forward 시켜주도록 하자 !
Burp Suite를 이용한 패킷 변조

- 페이지를 새로 고침한 뒤 새로고침으로 로드되는 GET 패킷을 Intercept 한다.
- Method 부분을 POST로 수정하고, Content-Length와 Content-Type 부분을 추가 작성한다.
- 또한 Body 부분에 앞서 페이지 소스코드에서 확인한 조건에 맞게 값을 입력한다.
REMOTE_ADDR 입력

- 또(?) 문제가 등장했다.. 조금 귀찮아진다 여기서부터는..
- myip 파라미터 값으로 사용자의 remote_addr 즉 외부 ip를 입력해줘야한다.
- 사용자의 외부 ip의 경우 https://www.findip.kr/ 를 통해 쉽게 확인할 수 있다.
- GET 파라미터 값으로 myip=[사용자 외부 ip]를 입력하면 다음 단계로 넘어갈 수 있다.
md5(time()) 값 입력


- 또(?) 문제가 등장했다.. 진짜 끝이 없다..
- 이번에는 password 파라미터 값으로 md5(time()) 값을 입력해줘야 한다.
- hint 값에 대하여 md5 해시 암호화를 하여 password 값으로 입력해줘야 한다.
- 그러나, time 의 경우 시간이 지날 수록 계속 값이 변화하여 처음 화면에서 출력한 값을 md5 해시화를 해서
입력하면 시간이 지나가 문제를 해결할 수 없다.
- 따라서 넉넉하게 hint 값에서 +30 정도를 한 값을 미리 계산하여 URL에 입력 후 시간이 맞을 때까지 새로고침해준다.
- md5 의 경우 Python의 hashlib 모듈을 이용하거나, md5 해시 암호화를 해주는 웹 사이트 등을 이용하도록 한다 !
GET, POST, COOKIE

- GET 파라미터로 imget 값을, POST 파라미터로 impost 값을, COOKIE 값으로 imcookie를 요구한다.
- 정말 가면 갈 수록 귀찮아지는 문제인 듯 하다..
- 다시 한 번 Burp Suite를 이용하여 패킷을 변조해주도록 하자 !
imcookie 생성 및 패킷 변조

- Cookie 헤더에 imcookie=1 을 작성하여 imcookie 값을 생성해주고,
- Method는 POST 방식으로 변조 후, URL 뒤에 ?imget=1 을 추가 작성하여, GET 파라미터 조건도 만족시켜준다.
- 또한 앞서 했던 방법과 동일하게 Content-Length와 Content-Type 부분을 작성 후, Body 부분에 impost 값을 입력해준다.
cookie 값 및 POST 파라미터 값 요구

- 이쯤 되면 문제가 끝이 없어보인다. 또 나왔다..
- test 쿠키 값으로 md5 해시화된 REMOTE_ADDR 값을 요구하고, POST 파라미터 값으로 md5 해시화된
HTTP_USER_AGENT 값을 요구하고 있다.
cookie 값 설정 및 kk 값 입력

- test 쿠키 값으로 md5 해시화된 사용자의 외부 ip 값을 입력해주고, POST 파라미터 값으로 md5 해시화된 User-Agent 값을
입력하여 패킷을 Forward 해주도록 한다 !
- 오탈자에 주의하여 각 헤더와 값 부분을 입력해주도록 하자.
str_replace 적용 REMOTE_ADDR 입력

- str_replace 함수를 통해 사용자의 외부 ip에 대해 . 을 공백으로 치환하고 있다.
- GET 파라미터 값으로 $_SERVER[’REMOTE_ADDR’]] = $_SERVER[’REMOTE_ADDR’] 을 받는다.
- 따라서 파라미터 값 형식은 ?xxxxxxxxxxxx=xxxxxxxxxxxx 형식이 된다.
- 앞서 확인한 사용자의 외부 ip를 . 을 제외하고 그대로 입력해주면 된다.
addr 값에 127.0.0.1 입력

- 생각보다 갑자기 너무 간단해졌다.
- GET 파라미터 값으로 addr 값을 입력받는 데, 이 값이 127.0.0.1 이 되면 된다.
- ?addr=127.0.0.1 을 작성해주면 바로 넘어갈 수 있다.
$answer 값 입력

- for 문을 통해 answer 변수를 선언하고 있다.
- 97부터 122까지 $i=$i+2를 반복하며 chr 함수를 통해 아스키 코드를 문자열로 입력하는 듯 하다.
- PHP Compiler 사이트를 통해 해당 for 문을 그대로 돌려서 빠르게 $answer 값을 확인해보자.
PHP Compiler를 통한 $answer 값 확인

- PHP Compiler 웹 사이트를 이용하여 해당 for문을 빠르게 실행해보도록 한다.
- $answer 변수 값을 확인할 수 있으며 해당 문자열을 복사하여 ans 값에 입력해주도록 한다 !
참고) https://www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler
PHP Tryit Editor v1.2
<!--?php $txt = "PHP"; echo "I love $txt!"; ?-->
www.w3schools.com
answerip/{$answer}_{$ip}.php 접근

- $ip와 $answer 값을 알아내어 fopen 함수에 작성된 경로의 .php 페이지로 접근하면 될 듯 하다.
- 그대로 앞서 사용한 PHP Compiler 를 이용해 $ip 변수에 자신의 외부 ip 주소를 입력하여 값을 알아내본다 !
PHP Compiler를 이용한 $answer, $ip 값 획득

- 실행 결과로 answerip/27553775775_5510755155를 출력함을 확인할 수 있다.
- answerip/27553775775_5510755155.php 를 URL에 추가 입력하여 해당 php 페이지에 접근 시
- 성공적으로 문제를 solve 할 수 있다 !
'Wargame > Webhacking.kr' 카테고리의 다른 글
| [Wargame] Webhacking.kr - old 50 (0) | 2022.06.20 |
|---|---|
| [Wargame] Webhacking.kr - old 34 (0) | 2022.06.20 |
| [Wargame] Webhacking.kr - old 32 (0) | 2022.06.20 |
| [Wargame] Webhacking.kr - old 27 (0) | 2022.06.17 |
| [Wargame] Webhacking.kr - old 26 (0) | 2022.06.16 |