본문 바로가기

Wargame(hacking)/webhacking.kr

(51)
Webhacking.kr : old-42 Write-Up test.txt 파일 다운로드 시, 아래와 같은 request와 response를 확인 가능하다. 파일 다운로드 요청 시, base64 encoding됨을 확인하였다. flag.docx 파일을 다운로드 요청 시, Access Denied 되므로, flag.docx 파일을 base64 endoing하여 요청한다. Word 파일이 다운로드 되어지고, 해당 파일 열람 시 flag 값을 확인할 수 있다.
Webhacking.kr : old-36 Write-Up While editing index.php file using vi editor in the current directory, a power outage caused the source code to disappear. Please help me recover. vi editor를 통해 index.php 파일을 편집하다가, 정전이 나서 소스코드가 날아갔다고 한다. swp 확장자 파일이 남아있는지 확인하면 될 것 같다. https://webhacking.kr/challenge/bonus-8/.index.php.swp 위와 같이 .index.php.swp 파일을 요청하면, swp 파일이 다운로드 되고, 해당 파일 확인 시, flag를 획득할 수 있었다. 참고 vi editor는 비정상적으로 ..
Webhacking.kr : old-23 Write-Up 해당 문제의 미션은 Your mission is to inject 인 것을 알 수 있다. 먼저 HTML Entity Encoding 처리로 인한 스크립트 실행 가능 여부를 파악한다. 1 태그 삽입이 되는 것을 확인하였다. 즉, 태그 자체가 encoding 처리되어 필터링되지는 않는다. ab 위처럼 영문자를 연속으로 입력 시, no hack과 같이 필터링되는 것을 볼 수 있다. 즉, 이를 우회해야 한다. a%00l%00e%00r%00t(1); 위 injection code를 입력 창에 넣어보았으나, URL encoding 되어 GET 방식으로 전달된 덕에 아래와 같은 결과를 얻게 된다. 그래서 아래와 같이 URL 창의 code 파라미터에 값을 직접 전달해준다. 참고 code= 잠깐 헷갈렸던..
Webhacking.kr : old-31 Write-Up 문제 페이지에 접속하자 아래와 같은 코드와 에러 메시지가 출력된다. $port = rand(10000,10100); $socket = fsockopen($_GET['server'],$port,$errno,$errstr,3) or die("error : {$errstr}"); Warning: fsockopen(): unable to connect to IP 주소:10080 (Connection refused) in /var/www/html/challenge/web-16/index.php on line 23 error : Connection refused $port = rand( 10000, 10100 ) : 먼저 10000 ~ 10100 사이의 임의 포트 번호를 생성한다. $socket =..
Webhacking.kr : old-27
Webhacking.kr: old-59 if($_POST['lid'] && isset($_POST['lphone'])){ $_POST['lid'] = addslashes($_POST['lid']); $_POST['lphone'] = addslashes($_POST['lphone']); $result = mysqli_fetch_array(mysqli_query($db,"select id,lv from chall59 where id='{$_POST['lid']}' and phone='{$_POST['lphone']}'")); if($result['id']){ echo "id : {$result['id']} lv : {$result['lv']} "; if($result['lv'] == "admin"){ mysqli_qu..
Webhacking.kr : old-58 입력 폼에 help 명령을 통해, 어떤 명령어를 입력할 수 있는지 확인하였고, flag 명령을 send 해 보았다. flag 명령을 send 하면, 그림 2와 같이 Permission denied 란 결과가 나오며, admin 만이 flag 명령을 사용할 수 있다는 것을 확인할 수 있다. 그림 3과 같이 버프슈트를 통해, guest -> admin 으로 변경 후 socket 통신을 진행한다. 그 결과 FLAG가 출력되는 것을 확인할 수 있다. $(function () { var username = "guest"; var socket = io(); $('form').submit(function(e){ e.preventDefault(); socket.emi..
Webhacking.kr : old-47 그림 1과 같이 개발자 도구를 통해 input type=text를 textarea 로 변경하면, text 입력 시 줄바꿈을 시행할 수 있다. 그림 2 와 같이 Cc: "이메일 주소"를 통해 mail header injeciton을 수행한다. 그림 3도 그림 2와 마찬가지로, mail header injeciton을 위한 기능이다. Bcc는 숨은 참조라고 불린다. 그림 3에서 request 한 패킷을 버프슈트를 통해 잡아보았다. %0D%0A는 CRLF 즉 줄바꿈을 의미한다. 그림 5와 같이 플래그를 획득하였다. 한줄 평 : Mail header injection.. 전혀 몰랐던 거다.. https://luxsci.com/blog/analyzing-forged-email-mes..