본문 바로가기

Wargame(hacking)

(112)
LORD OF SQLINJECTION : gremlin Write-Up
Webhacking.kr : old-41 Write-Up 해당 페이지는 파일 업로드 기능이 존재한다. 하지만, 업로드 후, 업로드 된 파일의 위치는 파악할 수 없고, 파일이 업로드 되었다는 "Done~" 메시지만이 출력될 뿐이다. 그림 2와 같이 빈 파일을 업로드해보았고, 아래 코드에 의해 에러메시지가 출력되었다. error_reporting(E_ALL); ini_set("display_errors", 1) 위 그림 2의 에러 메시지로는 별다른 정보를 얻지 못하였고, 다른 에러 메시지의 출력을 유도하기 위해서, 파일명을 길게 하여 에러를 발생시켰다. 그 결과는 아래 그림 3과 같다. 255글자의 파일명 까지는 에러 메시지가 출력되지 않았고, 256글자를 입력 하자 오른쪽과 같은 에러 메시지가 출력되어 upload_dir이 노출되었다. 위 그림 ..
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