write-up(web)

[Webhacking.kr] old-48

문제 파일 업로드 기능이 있고, 정상적으로 파일이 올라가는 것을 확인할 수 있다. 웹쉘이 올라가는데, 값이 출력되지 않아서 이렇게 푸는 건 아닌 것 같다. Delete 버튼을 누르면 삭제가 되며 파라미터 mode, time에 각각 del과 시간이 전송되는 것을 볼 수 있다. 문제풀이 mode 파라미터에 del이 전송될 때, rm /upload/[파일명] 형태로 실행되어 삭제된다. 파일명을 조작하여 rm 명령어와 원하는 명령어를 실행할 수 있다. rm /upload/;ls burp suite로 filename을 ;ls로 조작하고 업로드시킨 후, Delete를 누르면 flag값을 확인할 수 있다.

[Webhacking.kr] old-47

문제 문제풀이 어떠한 값을 입력해도 결과는 같게 나온다. mail과 관련된 문제라는 것이 유일한 힌트이다. mail header injection을 통해 문제를 해결할 수 있을 것 같다. 이메일 헤더에 Cc(참조)나 Bcc(숨은참조)를 추가하면 공격자에게 메일을 보낼 수 있는 취약점을 이용한다. input 태그를 textarea 태그로 변경하고, 참조나 숨은참조를 이용하면 flag 값을 얻을 수 있다.

[Webhacking.kr] old-46

문제 SQL INJECTION level : view-source id가 admin일 때 문제가 해결된다. 문제풀이 lv=1부터 4까지는 정보가 나오며, 그 외에는 정보가 나오지 않는다. 공백, /, *, %, select, 0x 등 입력값에 대한 검증이 이루어진다. 이를 우회하여 아래와 같은 구문을 입력하면 문제가 해결된다. or 대신 ||, 작은따옴표 대신 char 함수, 2진수를 이용했다. select id,cash from chall46 where lv=0||id=char(97,100,109,105,110) select id,cash from chall46 where lv=0||id=0b0110000101100100011011010110100101101110

[Webhacking.kr] old-42

문제 flag.docx 파일을 다운로드하려고 하면 위의 오른쪽 이미지와 같이 거부가 된다. 아마 저 docx 파일을 다운받으면 flag 값을 얻을 수 있을 것 같다. 문제풀이 burp suite를 이용해 test.txt 파일을 다운로드 할 때 경로를 확인한다. down 파라미터에 dGVzdC50eHQ= 값을 전달하는데, 이를 base64 디코딩해보면 test.txt 이다. flag.docx를 다운로드 하기 위해 base64 인코딩 한 후(ZmxhZy5kb2N4), 파라미터에 넣어 전송하면 파일이 다운로드 된다.

[Webhacking.kr] old-41

문제 view-source 문제풀이 error_reporting(E_ALL); ini_set("display_errors", 1); 에러설정이 되어있어 에러가 화면에 출력되고, 빈 파일을 업로드하면 에러문을 확인할 수 있다. copy($cp,"./{$upload_dir}/{$fn}"); fwrite($f,$flag); 업로드한 파일 이름을 치환하고, upload_dir/치환된 파일 이름 경로에 파일내용을 복사한다. 파일 안에 flag 값이 작성되어 있으며, 이를 확인하면 문제를 해결할 수 있다. upload_dir에 대한 정보는 없기 때문에 에러를 내서 정보를 얻어야 한다. burp suite을 이용해 파일이름을 길게 하여 업로드 했을 때 에러를 확인할 수 있고, 폴더 경로를 볼 수 있다. 일반 파일 하..