본문 바로가기
반응형

category/웹해킹(webhacking.kr)27

웹해킹(webhacking.kr) - 24번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-24번 문제를 풀어보겠습니다. 문제에 들어가 보면 client ip, agent에 대한 정보가 나와있다. (개인 정보라서 가렸다.) 일단 뭔 문젠가 싶어서 view-source로 code를 확인하였다. 중요한 부분만 캡처하였다. 코드를 확인해보니 아마도 str_replace함수의 취약점을 활용하는 문제인 듯하다. 1. str_replace 취약점 str_replace()는 간단하게 우회 가능한 함수이다. 이게 무슨 함수인지 간단하게 예를 들어보겠다. ex) $a = "Hello my name is hack" $a = str_replace("Hello", "Hi", $a); echo "$a"; -> Hi my name is hack 이처.. 2020. 11. 21.
웹해킹(webhacking.kr) - 16번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-16번 문제를 풀어보겠습니다. 문제에 들어가 보면 첫 화면이 이렇게 나와있다. 이게 뭔가 싶어서 키보드를 두들겼다. 아무거나 누르다 보니까. 큰*은 움직이고 작은 *들이 생성되는 것을 확인할 수 있었다. 일단 개발자 도구를 활용하여 소스코드를 확인해봤다. 소스코드 중 중요한 부분을 캡처해놨다. cd==124 즉 124번 event.keyCode를 누를 때 문제가 풀린다고 한다. ASCII코드 표를 확인하면 124는 | 즉 백 슬래시라는 것을 알 수 있다. 그러므로 |를 눌러봤는데 문제가 풀렸다. 처음 푸는 사람이라면 score가 올라갈 것이다. 2020. 11. 21.
웹해킹(webhacking.kr) - 50번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-50번 문제를 풀어보겠습니다. 문제의 첫 화면은 id와 pw의 textbox가 있고 이를 활용하여 SQL INJECTION을 해보라고 나와있다. 일단 view-source로 코드를 확인하겠다. 코드 중 중요한 부분만 캡처해놨다. 이 전에 풀었던 45번 문제와 굉장히 유사하다고 생각되었다. 1. lv=3 일단 문제에서 $result['lv']=="3" 조건을 만족시키라고 나와있으므로, id부분을 injection하여 lv=3으로 만들어봤다. select lv from chall50 where id=''||lv='3'#'' and pw=...... id에 '||lv='3'#'이라는 값을 넣어야 하고, 필터링을 우회하는 값을 넣으면 (수정 .. 2020. 11. 21.
웹해킹(webhacking.kr) - 45번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-45번 문제를 풀어보겠습니다. 첫 화면부터 SQL INJECTION을 죠지라는 문제 같다. 일단 id : admin, pw : admin으로 로그인을 시도해보았다. 위쪽을 보면 url주소에 id와 pw 값이 나와있는 게 보인다. GET방식으로 서버와 통신한다는 것을 알 수 있다. 그렇다면 view-source를 활용하여 소스코드를 확인하자 소스코드 중 중요한 부분만 캡처하였다. 코드 중 함수를 간단하게 설명하겠다. 1. addslashes 입력 값 중 '(quote)가 있으면 앞에 \를 붙여줌으로써 sql injection을 방어하기 위해서 사용된다. ex) input data : admin' or 1=1#' output data : .. 2020. 11. 20.
웹해킹(webhacking.kr) - 48번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-48번 문제를 풀어보겠습니다. 첫 화면에 들어가 보면 text박스가 있고, 파일 업로드하는 기능이 있다. 대충 파일 업로드 취약점인 것을 알 수 있다. 나는 php파일을 업로드해서 system함수를 사용해 디렉터리 구조를 확인하려 했다. 물론, php 파일은 필터링이 돼있을 것이다. 띠용?? 내 예상과는 다르게 php파일이 필터링되지 않고, 업로드됐다. 이때까지만 해도 너무 간단한 문제라고 생각했다. 그래서 해당 파일을 실행시키려 했지만 위의 사진처럼 그냥 text파일로 출력만 된다. [실행이 안된다.] 그래서 계속 삽질하는 도중 Delete를 눌러봤다. 그랬더니 file deleted. go back 라는 문구가 뜨면서 파일이 지워졌.. 2020. 11. 20.
웹해킹(webhacking.kr) - 44번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-44번 문제를 풀어보겠습니다. 문제의 첫 화면이다. 간단하게 text입력 부분과 submit 부분이 있다. 일단 view-source로 코드를 확인해보겠다. 중요한 소스코드만 캡처했다. "You just need to execute ls" 라고 적혀있는 것을 보아 ls명령어를 사용하면 문제가 풀릴 듯하다. system함수의 취약점 중 하나는 한 줄에 여러 개의 명령어를 동시에 넣을 수 있다는 것이다. ex) system("ls -al; cd .."); -> ls -al, cd .. 명령어 실행 이번 문제도 위의 예시와 똑같이 풀면 되겠다. 나는 ';ls'를 넣었다. system("echo 'hello!';ls''"); -> echo h.. 2020. 11. 20.
웹해킹(webhacking.kr) - 36번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-36번 문제를 풀어보겠습니다. 문제의 첫 화면이다. 영어로 돼있지만, 대충 해석할 수 있다. 하지만 정확한 뜻을 알기 위해 번역기를 돌렸다. 현재 디렉터리에서 index.php 파일을 편집하는 중 "비정상"적으로 종료돼있다는 뜻이다. 그렇다면 vi편집기가 "비정상"적으로 종료됐을때 어떻게 되는지 구글링을 통해 알아볼 수 있다. 구글에 "vi편집기 비정상 종료" 라고 검색해보면 ".filename.swp" 파일이 생성된다는 것을 알 수 있다. 문제에서 "현재 디렉터리에서 편집 중" 이라고 했으므로. 현재 위치해 있는 url 뒤에 .index.php.swp을 입력 후 엔터를 눌러본다. 그렇다면 index.php.swp파일이 다운로드가 되는.. 2020. 11. 18.
웹해킹(webhacking.kr) - 22번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-20문제를 풀어보겠습니다. 문제에 들어가 보면 첫 화면에 mission : login as admin이라고 적혀있었다. 그리고 Column Name : id, pw라고 적혀있는데 오타인듯하다. Column Name : uuid, pw이다. 혹시라도 브루트 포스가 안 되는 사람이면 Column Name을 확인해보길 바란다. 어쨌든 나는 join을 통해서 admin 계정을 생성해보려 했다. 결과는 이미 있는 아이디라고 나온다. 그렇다면 id:testtest pw:1234로 join을 한 후 로그인을 시도해보았다. hi! [uuid] your password hash : 324f7e....... 라고 나와있다. 32자리 인 것을 보아 아마도.. 2020. 11. 18.
웹해킹(webhacking.kr) - 49번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-49번 문제를 풀어보겠습니다. 첫 화면을 보면 text박스에 1이라는 값이 고정돼 있고, 제출이란 버튼이 있다. 문구로 나와있듯 SQL INJECTION문제임을 알 수 있다. 일단 제출 버튼을 눌러봤다. udnrg라는 값이 나왔다. 2,3,4라는 값을 넣으면 이상한 5자리 문자열이 출력되는데, 그 문자열에 뭔가 있을 줄 알고 분석해봤지만 아무런 단서도 안 나왔다. 일단 view-source 로 php소스코드를 확인해보았다. 해당 소스코드는 문제를 푸는데 주요 코드이다. preg_match함수를 활용하여 sql injection에 필요한 문자열 대부분을 막아놨다. (',",or,and 등) or = || and = &&으로 우회할 수 있.. 2020. 11. 17.
반응형