본문 바로가기
반응형

category/웹해킹(webhacking.kr)27

웹해킹(webhacking.kr) - 9번 접속하면 위 화면이 나온다. 1,2,3을 순서대로 클릭해본다. url로 값이 전달되는 것을 보아 GET 방식으로 통신한다. no=3으로 접속하면 "column: id, no" 라고 적혀 있고, id가 password값이라는 것을 알 수 있다. 예상 쿼리문을 짜보면 SELECT id FROM DB_TABLE WHERE no=$_GET['no']; 위 사진처럼 no에 잘못된 값이 입력되면 텍스트박스만 화면에 출력되는 것을 알 수 있다. 쿼리문이 거짓일 때 : 아무것도 안 나온다. 쿼리문이 참일 때 : 컬럼의 데이터 값이 나온다. 이를 활용해 blind sql injection이 가능한 것을 알 수 있다. 쿼리문에 필요한 문자가 어떤 것이 있는지 테스트해본다. 사용 불가 : and, or, ||, &&, se.. 2023. 2. 17.
웹해킹(webhacking.kr) - 28번 접속하면 flag.php라는 파일을 읽어야한다. 해당 주소로 접속해본다. 아무 화면도 안 나온다. 파일 업로드가 가능한 걸 보아 웹쉘 공격이 가능하다 판단된다. webshell.php 1 2 3 cs 해당 php를 업로드시켜 hihi가 나오는지 테스트해본다. php 코드가 그대로 나오는데, 2023. 2. 16.
웹해킹(webhacking.kr) - 74번 g00gle1 접속하면 구글 설문조사 페이지가 나온다. 체크 박스를 해제하면 필수 질문입니다 라 나오고, 체크하면 정확히 0개의 옵션을 선택해야 합니다. 라 나온다. 아마 JS를 조작하는게 아닌가 싶어 개발자 도구에서 javascript 부분을 확인했더니 "ok. here is what you want. FLAG{how_can_i_pwn_googl3?}" 라고 대놓고 정답이 나와있다. FLAG 값을 Auth에 넣었더니 정답처리됐다.;; 무슨 문젠지 의도를 모르겠다. 2023. 2. 15.
웹해킹(webhacking.kr) - 56번 56번 접속시 화면이다. admin 옆의 readme를 누르면 ACCESS DENIED라는 문구가 나오고, guest 옆의 hi~를 누르면 hello~ 라는 문구가 나온다. search에 hello를 넣고 제출해본다. 사진과 같이 guest 테이블만 출력되는 것을 알 수 있다. 이를 통해 search에 입력되는 값은 subject 파일에 포함된 문자열을 뜻한다고 추측할 수 있다. SQL injection이 가능한지 확인해본다. hello' and 1=1#' hello' or 1=1#' hello' && 1 LIKE 1#' 모두 공백 화면이 나온다. 즉 SQL injection으로 푸는 문제는 아니라고 추측할 수 있다. webhacking.kr 사이트는 문제 해결 방식이 2가지 있다. 1. 문제를 풀면(a.. 2023. 2. 15.
웹해킹(webhacking.kr) - 8번 접속해보면 hi guest 라는 문구와 함께 view-source가 있다. view-source를 클릭해 php 소스를 확인해본다. $agent는 USER_AGENT에 관한 데이터고, $ip는 현재 User가 접속한 IP를 뜻한다. $agent에 from은 preg_match에 의해 필터링 됐다. if($ck) 분기문에서 admin id로 로그인했을 시 문제가 풀리는 걸 확인할 수 있다. if(!$ck) 분기문에서 insert into를 활용해 agent, ip, id 값을 value로 DB에 넣는 것을 확인할 수 있다. $ip의 값은 조작할 수 없으므로 $agent 값을 proxy를 활용해 SQL INJECTION 문으로 변형해야한다. agent에 qwer', '내 IP', 'admin')#' 를 넣는.. 2023. 2. 14.
웹해킹(webhacking.kr) - 35번 안녕하세요?? 자운대 고라니입니다. 오늘은 wargame.kr old-35번 문제를 풀어보겠습니다. 문제의 첫 화면이다. 간단하게 phone을 적으라는 text박스가 있다. 일단 view-source를 이용하여 소스코드를 확인해봤다. 소스코드 중 중요한 부분을 캡처하였다. 일단 phone에 아무런 값을 넣어봤는데, 위의 사진처럼 id=guest로 고정돼있다. 풀이의 조건은 phone에 어떠한 값을 넣으면 insert into chall35(id,ip,phone) value..... 를 이용하여 데이터베이스에 값을 저장한 후, id=admin and ip=myip 라는 값을 가진 데이터가 있다면, 문제가 풀린다. 하지만 preg_match와 strlen 함수를 활용하여서 id에는 'admin'이란 값을 넣.. 2020. 11. 30.
웹해킹(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.
반응형