본문 바로가기

웹해킹

(45)
내가 필요해서 정리한 웹 취약점 LDAP : 조직이나, 개체, 그리고 인터넷이나 기업 내의 인트라넷 등 네트워크 상에 있는 파일이나 장치들과 같은 자원 등의 위치를 찾을 수 있게 해주는 소프트웨어 프로토콜 -> *을 입력한 뒤 나오는 결과 확인 후 [*);cn;]부터)을 추가해서 에러가 나오는지 확인 SSI : HTML 페이지의 전체 코드를 수정하지 않고 공통 모듈 파일로 관리하며 동적인 내용 추가하기 위해 만들어진 파일, 적은 정보 추가 및 간단한 정보 실행할 때 사용하면 좋음 XPATH : XML 문서의 특정 요소나 속성에 접근하기 위한 경로 지정 언어 XML : 데이터를 저정하고 전달 목적으로 만든 언어 디렉터리 인덱싱 : 서버의 미흡한 설정으로 특정 디렉터리 초기페이지의 파일이 존재하지 않을 시 자동으로 디렉터리 리스트를 출력 ..
web chatting 문제를 읽어보면 SQL injection 문제라는 것을 알 수 있다. start 버튼을 누르면 다음과 같이 ID 입력 창이 나온다. ID를 아무거나 입력 한 후 join 버튼을 누르면(id에 공격 코드 넣어도 안 먹힘) 채팅창이 나온다. 채팅창에 이제 아무거나 입력을 해보자 다음과 같이 아무거나 입력 후 개발자 도구를 통해 이 채팅이 어디로 가는지 확인해 보면 된다. 개발자 도구에서 chat.php를 확인하면 chatlog.php?t=1이랑 chatview.php?t=1&ni="+ni라는 부분을 볼 수 있다. chatlog.php = 현재까지의 채팅 개수 확인하는 페이지 chatview.php = 현재까지의 채팅기록을 볼 수 있는 페이지 우선 chatlog.php 페이지를 들어가보면(/chatlog.ph..
old33 old33을 누르면 다음과 같이 나온다. 힌트를 얻기 위해서 view-source를 누른다 소스를 확인하면 GET 방식으로 'get'이라는 변수에 'hehe'라는 값이 들어가면 다음페이지로 넘어가는 무엇인가 나온다는 것 같다 GET 방식으로 변수를 저장하는 방법은 URL 뒤에 ?를 붙여 준 뒤에 변수 = 값 으로 집어 넣는다 -> ?get=hehe 다음의 값을 URL 뒤에 붙여주면 다음과 같이 wrong이 Next로 바뀌었다. 다음으로 넘어가기 위해서 Next 버튼을 눌러준다. 2단계로 넘어 왔다 2단계의 source를 확인하면 post 방식으로 변수를 받아서 그 값이 hehe랑 hehe2이면 Next 버튼을 띄어준다고 한다. 근데 POST 방식은 GET 방식 처럼 URL 뒤에 변수를 대입해서 보낼 수 ..
level3 3번문제이다. 3번문제는 id가 guest로 고정되어 있고 no에 따라 결과 값을 출력해주는 코드이다. 근데 아이러니한 것은 id가 amdin일 경우 문제가 해결된다고 한다. 일단 no값에 1을 집어 넣어보았다. 다음과 같이 hello guest라는 문구가 출력된다. 다음으로 or 1=1#이라는 injection 공격 코드를 집어 넣어보았다. 다음과 같이 hello guest라는 문구가 출력된다. 이제 no=1뒤에 admin이라는 id를 집어 넣어보았다. -> ?no=1 or id ='admin' '를 사용하지 말라는 경고 표시가 뜬다. '를 필터링 하였기 때문에 '를 사용하지 않고 '를 사용해야 한다. 다음과 같이 '를 우회하기 위해 아스키 코드를 사용하였다. 아스키 코드표 아스키 코드표를 확인하면 a..
level2 다음 문제는 id변수와 pw 변수를 받는데 pw를 md5 해시 함수를 돌려 값을 저장한다. 일단 값이 어떻게 들어가는지 확인하기 위해 id 변수와 pw 변수에 값을 집어 넣어 보았다. 다음 사진은 id, pw 변수에 값을 집어넣은 결과이다. 다음으로 ' or '1=1#을 집어 넣어 보았다. 공격이 먹히지 않는다. 어떻게 해야 고민을 하다가 & 연산자를 통해서 다음 변수로 넘겨준다는 것을 알았다. 그래서 & 연산자를 쓰지 않고 pw 변수를 불러와 받으면 될 것 같다고 생각했다. -> id=admin' pw=' 'or '1=1# 다음과 같이 입력해 보았다. 문제를 해결하였다.
level1 1번 문제이다 id변수와 pw 변수를 받아서 select문을 돌린 뒤 결과를 출력해주는 코드이다. sql injection 중에 가장 흔한 공격방식인 ' or 1=1#을 사용해서 변수에 값을 넣어주면 될 것 같다. 또한 get 방식을 통해 id와 pw를 받기 때문에 URL에 ?id = ~방식으로 집어넣으면 될 것 같다. -> ?id=admin&pw=' or '1=1# 다음과 같이 공격을 하면 1단계를 클리어 할 수 있다.
php? c? 문제를 들어가면 다음과 같은 페이지가 나온다. get source를 눌러 소스를 보았다. D1: D2: get source 코드를 햇거하면 tmp/p7 파일이 존재하지 않으면 p7.c 파일을 컴파일 하여 p7이라는 파일을 만들고 첫번째 값을 p7이라는 실행파일에 집어넣고 실행한 값을 result라는 변수에 저장한 후 result 값이 1이 아니고 d1하고 d2 값이 동일하면 flag 값을 출력하고 그렇지 않으면 try again이라는 문구를 출력하라는 것이다. 이제 p7.c라는 코드를 확인해보자 http://wargame.kr:8080/php_c/p7.c 불러오는 중입니다... 다음과 같이 입력하면 p7.c 코드가 나온다. #include #include void nono(); int main(int a..
img recovery 문제를 해석하면 PNG 이미지 파일을 복구하라고 한다. 하지만 이게 진짜 PNG 파일이냐고 물어본다, (스테가노그래피는 아니고 포렌식 챌린지 문제이다) 이제 start를 누르면 ptsd가 올 것같은 사진과 함께 find the code!!라는 문제가 있다. 뒤에 있는 사진을 복구하면 되는 것 같다. 개발자 도구를 누르면 pattern pattern이라는 파일이 있다. 이 파일을 다운 받은 후 HXD를 키고 다운 받은 파일을 열면 맨밑에 .tEXtSoftware.Japng r119라는 글자가 있다. 인터넷에 Japng라고 검색을하면 java apng라는 것을 알 수 있다. apng 파일은 .gif 파일처럼 애니메이션을 구연하였지만 기존 PNG 파일과의 호환성을 유지한 파일이다. 쉽게 말해서 png파일이지만..