본문 바로가기
반응형

전체 글197

웹해킹(webhacking.kr) - 40번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-40번 문제를 풀어보겠습니다. 문제에 들어가 보면 첫 화면이 이렇게 나와있다. 딱 봐도 BLIND SQL INJECTION문제인 듯... 일단 login버튼을 눌러봤다. Success - guest라는 화면이 출력됐다. 처음에는 id칼럼과 pw칼럼을 injection 하려고 열심히 삽질해였지만 모든 방법이 안 먹혔다. 아무래도 addslashes()함수를 사용한 거 같다. addslashes()함수는 '와 " 앞에 /를 추가하여 한 개의 문자로 '와 "를 한개의 문자로 바꿔버린다. 그렇다면 '와 "를 sql문에서 사용하지 않는 no 칼럼을 통해 injection 하여야 한다. 일단 no에 참이 되도록 sql문을 넣어봤다. 그랬더니 똑같.. 2020. 11. 26.
webhacking 기본 sql injection 기본 sql문에 데이터를 삽입하는 부분에 sql문을 삽입하여서 원하는 값을 얻거나 넣는다. ex) select id from DB id=''||1#'' pw='' url-encoding 우회 1- %00 null 표현 (공백) ex) -> 2 - %0a 줄바꿈(띄어쓰기 우회 가능) ex) id=''%0aor%0a1#pw='' 3 - %09 TAB 기능(띄어쓰기 우회 가능) ex) id=''%09or%091#pw='' 4 - +우회 +를 활용하여 공백 처리 가능 ex) no=1+or+id='admin 주석처리 1 - (#) # 뒤의 쿼리문은 주석 처리된다. ex) id='admin' or 1#pw='admin' 2 - (--) -- 뒤의 쿼리문은 주석 처리된다. 뒤에 공백이 있어야.. 2020. 11. 24.
웹해킹(webhacking.kr) - 27번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-27번 문제를 풀어보겠습니다. 문제의 첫 화면은 그냥 SQL INJECIOTN을 해보라고 나와있다. 일단 vuew-source를 활용하여 코드를 확인하였다. 소스코드에서 중요한 부분을 캡처하였다. 간단한 INJECTION을 통해서 admin으로 로그인할 수 있을 거라 생각했다. "select id from chall27 where id='guest' and no=({$_GET['no']})" 여기서 id='guest' and no=X 룰 FALSE로 만들고 ||, or을 사용하여서 뒤에 TRUE문을 만들어 주면 간단히 풀리는 문제이다. 나는 $_GET['no']에 "3)||no=2-- " 라는 값을 넣을 예정이다. select id f.. 2020. 11. 24.
웹해킹(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.
반응형