본문 바로가기

반응형

웹해킹/webhacking.kr

(58)
webhacking.kr old 51번 문제풀이(Writeup) md5(,true) 취약점 webhacking.kr old 51번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 밑에 코드가 있으니 확인해보자. id, pw는 post 메소드로 움직인다. 또 id는 입력값에 싱글 쿼터, 더블 쿼터, \(백슬래시), NULL바이트 앞에 \(백슬래시)를 넣어서 SQL Injection을 방어한다. pw는 md5로 암호화한다. 그래서 맞으면 해결이 되고, 아니면 Wrong을 출력한다. 여기서 처음보는 부분은 md5함수에서 true 값이 들어가 있는 것이다. 찾아보니 md5( __, true)인 경우 값이 raw binary로 출력된다고 한다. 따라서 md5( __, true)를 이용해 or 또는 =이 나오도록 해서 입력하는 것이다. 그럼 코드로 작성해서 md5에 어떤 값을 넣으면 '='..
webhacking.kr old 43번 문제풀이(Writeup) webhacking.kr old 43번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. webshell을 업로드해서 보는 문제다. 그래서 간단한 webshell을 Kali Linux에서 가져올 예정이다. webshell의 경로이다. 여기서 simple-backdoor.php를 복사해서 사용했다. 필터링이 되고 있다. 확장자 우회를 할까 싶었는데, 먼저 간단한 것부터 도전해보고자 한다. 먼저 Burp Suite로 캡처를 했다. POST방식으로 php파일이 전달된다. 근데 여기서 Content-type이 php 파일을 인식하고 있다. 이걸 한번 바꿔봤다. Content-type: audio/mpeg audio/mpeg는 mp3파일과 같은 오디오 파일이다. 바꾸고 Forward를 해줬다. web..
webhacking.kr old 40번 문제풀이(Writeup) webhacking.kr old 40번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 궁금하니까 로그인부터 눌러보자. 로그인을 해보니, no=1, id=guest, pw=guest라는 것을 GET 메소드 방식으로 전달한다. no=2로 넣어서 실패를 해보니, failure이 나온다. 이번엔 no=0으로 넣으니 아무 반응을 하지 않는다. 따라서 이번 문제도 Blind SQL Injection이지 않을까 싶다. 그래서 가장 의심스러운 no에서 injection이 되는지 시도해봤다. no=0||1=1 을 넣고 나머지는 그대로 해서 로그인이 되는지 확인해봤고, 그 결과 로그인에 성공했다. 그렇다면 no=0||no=2를 넣고 id=admin&pw=admin으로 넣는다면 로그인이 될까 싶었다. 해보니..
webhacking.kr old 29번 문제풀이(Writeup) 파일업로드를 통한 SQL Injection webhacking.kr old 29번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 사실 들어가자마자 backdoor를 올렸는데 실행이 안돼서 다른 느낌의 문제구나 싶었다. 바로 위에 공지를 보면 FLAG가 다른 테이블에 있다고 한다. 이걸 보고 이건 database 문제이구나 싶었다. 파일 업로드 취약점을 통해 database의 정보를 알아올 수 있다는 것을 오늘 알았다. 파일 업로드 취약점에 대해 더 공부해야겠다. insert into 테이블명 values (값) 먼저 MySQL에서 입력을 할 때 위와 같이 들어간다. ex) RRR 테이블에 새로운 레코드를 추가할 때 INSERT INTO RRR(ID, Name, ReserveDate, RoomNum) VALUES(5, '이순신', ..
webhacking.kr old 28번 문제풀이(Writeup) htaccess 취약점 설명 webhacking.kr old 28번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 이번에도 파일 업로드 취약점인 것 같다. Mission으로 ./upload/rGshn9SzBErB/flag.php 를 읽으면 된다고 한다. 점수만 보면 난이도 있는 문제인데, 뭔가 쉬울 것 같다. 코드엔 별다른 힌트가 없기 때문에 바로 여러가지 시도를 해봤다. 일단 Kali Linux에 있는 웹쉘 몇 가지를 올려봤다. php 파일이 올라가는 걸 보면 php에 대한 필터링이 없는 것 같은데 실행되지 않는다. 몇 번 웹쉘을 올려도 작동이 안되는 것을 보고 웹쉘을 올리는 문제가 아니라는 생각이 들었다. 그래서 구글링을 하다 보니 php 관리자 권한 인증 우회를 위해 ".htaccess" 확장자를 알게 되었다...
webhacking.kr old 24번 문제풀이(Writeup) webhacking.kr old 24번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 뭔가 IP를 갖고 푸는 문제처럼 보인다. 이제 코드를 확인해보자. ip가 127.0.0.1이면 해결되는 문제이다. 하지만, 12와 7.과 0.과 . .이 필터링된다. 필터링을 우회해서 IP를 설정하면 된다. 그래서 필터링 될 것을 생각하고 주소를 만든 결과를 아래에 적었다. REMOTE_ADDR 112277...00...00...1 입력하니 성공 메시지가 나오는 것을 확인하였다. *주의 개인적으로 쿠키 추가가 크롬에서 안돼서 Burp Suite를 이용해 패킷에서 쿠키를 추가해서 전달했다.
webhacking.kr old 37번 문제풀이(Writeup) webhacking.kr old 37번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 파일을 업로드할 수 있는 페이지가 나온다. 코드를 확인하자. 먼저 db가 연결되어 있고, query를 알려준다. select flag from challenge where idx=37 db와 query를 넣어서 MySQL에서 레코드를 가져와서 flag 변수에 저장한다. 파일을 ./tmp/tmp-시간을 통해 만들고 127.0.0.1을 저장하고 파일을 닫는다. 업로드 파일은 , ., /, 공백이 필터링이 된다. scandir을 통해 ./tmp 아래에 있는 모든 파일에 대해 출력하는 모습도 보인다. 마지막 코드 부분에 보면, file_get_content 함수를 통해 ./tmp/tmp-{$time} 파일 내의..
webhacking.kr old 36번 문제풀이(Writeup) swap 파일 문제 webhacking.kr old 36번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 해석을 하면 vi 에디터로 index.php를 수정하던 중 정전 때문에 코드가 사라졌다고 한다. vi 에디터로 원본 파일이 손상을 입었다는 문제의 대부분은 swap파일을 찾아서 해결하는 문제이다. 따라서 원본파일이 index.php 파일이므로, .index.php.swp 파일이 있는지 찾아보자. .index.php.swp 파일을 URL을 통해 요청하니 swap 파일이 다운로드된다. 다운로드된 파일을 칼리 리눅스에서 vi에디터로 열어보니 다른 다른 에디터로 열어봐야 할 것만 같은 느낌이다. 다음은 HxD(헥사 에디터)를 통해 열어봤다. FLAG가 노출되는 것을 확인했다. 이번 문제는 vi 에디터로 수정 중..

728x90