본문 바로가기

Wargame(hacking)/webhacking.kr

(51)
Webhacking.kr : old-37 Write-Up 위 그림 1과 같이 페이지에는 파일을 업로드할 수 있는 기능이 존재하며, 새로 고침 시, tmp- {$time}의 파일이 생성되고, 해당 파일에는 127.0.0.1 이 쓰여진다. ( 아래 그림 2를 확인하도록 한다. ) $file_nm = $_FILES['upfile']['name']; $file_nm = str_replace("","",$file_nm); $file_nm = str_replace(".","",$file_nm); $file_nm = str_replace("/","",$file_nm); $file_nm = str_replace(" ","",$file_nm); if($file_nm){ $p = fopen("./tmp/{$file_nm}","w"); fwrite($p,$_SER..
Webhacking.kr : old-51 Write-Up 문제의 코드는 아래와 같다. Admin page
Webhacking.kr : old-43 Write-Up Webshell을 upload 하고, cat /flag 를 통해 flag를 구하는 문제이다. 파일 선택 후 업로드를 해보았고, 파일이 있는 위치에 접근이 가능했다. 아래와 같이 php 파일을 업로드 해보았으나, wrong type으로 거절되었다. 그래서 아래와 같이 Content-Type을 image/png로 우회하여, request 하였고 파일이 무사히 업로드됬음을 확인했다. 아래 그림 6과 같이 webshell.php 작성 후, 업로드 해준다. 업로드된 webshell 파일의 절대경로를 알고 있으므로, 접근하여 명령을 실행해주면, flag를 획득할 수 있다.
Webhacking.kr : old-20 Write-Up nickname, comment, captcha를 서버로 전송해야 한다. 하지만 제한 시간은 2초이고, 직접 captcha를 입력해 submit 하기에는 시간이 부족하다고 생각된다. 그래서 크롤링 후 주어진 captcha를 post로 전달해야겠다고 생각했고, 아래와 같은 코드를 작성하였다. 먼저 크롤링을 위한 코드이다. import requests from bs4 import BeautifulSoup url = 'https://webhacking.kr/challenge/code-4/' response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') cap..
Webhacking.kr : old-10 Write-Up O | | | | Goal 위 코드를 보았을 때, 현재 'O'의 위치가 left = 0 임을 알 수 있다. 아래 그림 1의 console 창에서도 확인이 가능하다. this.style.left 속성이 1600px 이 될 시, ?go=1600px 경로로 이동할 수 있으므로, 아래 그림 2와 같이 값을 설정해 준다. 그리고 화면에서 'O' 를 한번만 클릭해준다면, 아래 그림 3과 같이 문제를 해결할 수 있다. 문제 풀이 후기 너무 DOM XSS 관점에서만 생각했던 것 같고.. 1600은 넣어보고, 1599는 넣어볼 생각을 왜 못했는지 모르겠다.. 참고 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/p..
Webhacking.kr : old-61 Write-Up
Webhacking.kr : old-56 Write-Up guest의 글에 접근 시, hello~라는 메시지를 볼 수 있으나, admin의 글에는 접근 권한이 없어 거부된다. 아래 그림 2의 search 창을 보도록 한다. 해당 search 파라미터의 인자 값으로 admin 혹은 guest가 작성한 게시글에 있는 인자 값( 한자리 혹은 여러 자리 )을 입력하면 참 거짓 반응을 확인할 수 있다. search 파라미터의 인자 값으로 hello~를 전달해 보았고, 결과는 아래 그림 3과 같았다. admin의 게시글에는 flag 값이 숨겨져 있을 확률이 높았고, search 파리미터의 인자 값으로 flag를 전달해보았고, 아래 그림 4와 같은 참 반응을 얻을 수 있었다. flag 형식이 flag{ 플래그 값} 일 테니, 아래와 같이 버프슈트 인트루더를..
Webhacking.kr : old-33 Write-Up Challenge 33-1 Challenge 33-1 view-source 문제의 요구에 맞춰, get 파라미터의 인자 값으로 hehe를 전달해 준다. https://webhacking.kr/challenge/bonus-6/?get=hehe Challenge 33-2 Challenge 33-2 view-source 이번에는 아래와 같이 POST 형식으로 값을 전달해준다. Challenge 33-3 Challenge 33-3 view-source https://webhacking.kr/challenge/bonus-6/33.php?myip=나의 IP 찾기 Challenge 33-4 Challenge 33-4 view-source 해당 Challenge를 해결하기 위해, 아래와 같은 파이썬 코..