목록전체 (42)
whois
-★- 소식들고온 시원포럼 -★-지방에 있는 학생에게 보다 더 많은 기회를 제공하기 위한 '대학생이 이끄는 보안인의 모임' 시원포럼 입니다.이번 세미나는 '부산은행'의 특별후원으로 좀 더 풍성한 내용으로 준비하였습니다.더욱 유익한 행사를 위해 운영진은 행사일까지 힘을 다해 노력하겠습니다.일시 : 2017.11.11(토) pm 1:00 ~ pm 6:30장소 : 부산은행 본점 2층 대강당주최 : 시원포럼 ( Security One )특별 후원 : BNK부산은행문의사항 : 카카오플러스친구 [시원포럼]신청링크 : https://goo.gl/forms/2W8lWznWmh9QAYh73온오프믹스 : https://onoffmix.com/event/117049[+] 기념품은 참석자 모두에게 제공하며, 경품은 추첨을 통..
[그림 1] 27번 페이지 27번을 클릭하게 되면 그림 1과 같은 웹페이지 모습을 볼 수 있다. SQL INJECTION이라는 문구를 보여주는 것으로 보아하니 텍스트 박스에 SQL Injection 공격 구문을 넣어 제출하면 문제를 해결할 수 있을 것으로 보인다. [그림 2] 27번 소스 그림 1 웹페이지에서 우클릭을 통해 소스 보기를 하면 그림 2와 같은 소스를 볼 수 있다. 실수인 척 하면서 index.phps를 주석 처리 해놓음으로 힌트를 제공하고 있다. [그림 3] index.phps 소스 그림 2에서 얻은 index.phps 소스를 보게 되면 총 3가지의 중요 요소들을 캐치 할 수 있다. ① eregi 함수로 필터링 하는 문자들② 제출 양식(공격 벡터)③ 문제 해결 조건 먼저, eregi 함수로..
[그림 1] 25번 25번 문제를 클릭하여 들어가보면 그림 1과 같은 화면을 볼 수 있다. 리눅스를 사용해 봤다면 익숙한 ls -l 쳤을 때 나오는 결과이다. uid는 oldzombie, gid는 users로 제작은 oldzombie님이 했으니 읽고 쓸 수 있는 권한을 설정해 놓았으며, 일반 유저들 그리고 나머지 기타 등등에 대해서는 읽기만 가능하다. URL 끝에 보면 file=hello라고 되어 있다. hello라는 파일을 읽겠다는 것으로 볼 수 있는데 확장자가 없는 것에 대하여 의문점이 들기는 하였다. 또한, 'password.php'라는 파일을 열어 보면 키 값이 있지 않을까라는 추측을 하였다. [그림 2] password 파일 열기(실패) 추측을 행동으로 옮기기 위해 file 변수 값에 passw..
[그림 1] /var/lib/dpkg/lock 에러 해결 Ubuntu 16.04에서 apt-get으로 apache2를 받으려고 하는데 Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) 에러가 발생한다. 다른 사용자나 자신이 apt-get을 사용할 때 발생하는 에러인데 가끔 사용하지 않을때도 발생한다고 한다. 웹서버 구축하실 때 종종 볼 수 있을듯 하다. 해당 에러는 rm /var/lib/dpkg/lock 파일을 지움으로써 해결이 가능하다.
[그림 1] CentOS 7 mysql.service not found 에러 CentOS 7에 Mysql 구축하려다가 그림 1과 같은 에러를 만나게 되었다. CentOS 6.5에서 웹 환경 구축할 때 사용했던 yum install -y httpd php php-gd php-mysql php-mbstring mysql mysql-server 명령을 그대로 집어 넣어 성공적으로 설치했다고 생각했는데 그게 아닌가 보다. 막상 mysql을 실행하면 에러가 난다. 찾아보니 CentOS 7은 기본적으로 mariadb 패키지가 설치되어 있으며, mysql은 yum으로 바로 설치가 불가능하다. 따라서, yum -y install mariadb-server 명령어를 이용해 데이터베이스 설치가 가능하다. [그림 2] Ma..
[그림 1] 26번 문제 26번 문제에 접근하게 되면 그림 1과 같이 index.phps에 링크가 걸려 있는 것을 볼 수 있다. [그림 2] 소스 코드 index.phps 소스 코드의 흐름도를 보겠다.① eregi 함수를 통해 id 변수 값에 admin이라는 문자열이 있으면 'no!'라는 문구를 출력 후 종료시킨다.② id 변수에 있는 값을 디코딩한다.③ id 변수 값이 admin이면 문제를 푼다. 따라서, id 변수에 admin 값을 잘 우회하여 만들면 되는 문제이다. [그림 3] 단순 admin 넣기 소스 코드대로 동작하는지 확인하기 위해 단순하게 admin을 id 변수에 넣고 전달해 보니 'no!'라는 문구가 출력되는 것을 볼 수 있다. [그림 4] eregi 함수 우회 저번에 풀었던 문제 중에 e..
[그림 1] 24번 level24를 클릭하게 되면 그림 1과 같이 client ip와 agent 정보를 보여주게 된다. 단순히 whois 정보를 출력하게끔 설정 해둔 것 같다. 그리고 아래에 보니 'Wrong IP!'라는 문구가 보이는 것으로 보아 IP를 맞춰줘야 하는 문제인듯 하다. [그림 2] 문제 소스 문제 소스를 보니 주석처리로 된 source : index.phps가 있다. 힌트이니 24번의 URL에 index.phps를 붙여 들어가 보기로 한다. [그림 3] index.phps 코드 흐름을 살펴 보겠다.① 서버와 쿠키 변수를 추출한다.② REMOTE_ADDR 변수 값이 없으면 서버의 REMOTE_ADDR 값을 REMOTE_ADDR 변수에 넣는다.③ REMOTE_ADDR 값을 ip 변수에 담고 ..
[그림 1] 18번 18번을 클릭하게 되면 그림 1과 같은 웹 페이지가 보인다. 큰 제목으로 'SQL INJECTION'이라는 문구를 박아논 걸 보니 SQL 인젝션 공격을 통해 문제를 풀 수 있다는 것을 알 수 있다. 그리고 index.phps를 클릭하게 유도하여 소스까지 힌트로 주고 있다. [그림 2] 문제 소스 그림 1에서 보이는 index.phps를 클릭하게 되면 그림 2와 같은 문제 소스를 볼 수 있다. 소스 코드의 흐름부터 분석해 보겠다.① no라는 변수를 GET 메서드로 받는다.② eregi 함수를 통해 no 변수 값에 /, \, (,\), \t, |, &, union, select, from, 공백이 있다면 no hack이라는 문자열을 출력하고 종료한다.③ mysql_query를 이용해 쿼리..
[그림 1] 14번 14번를 클릭하게 되면 그림 1과 같은 웹 페이지를 볼 수 있다. 단순히 text 박스와 check 버튼밖에 보이지 않는다. 문제의 의도를 추측하자면 클라이언트 쪽에서 보내는 값과 서버의 값을 비교하여 같으면 문제를 풀 수 있을 것 같다. [그림 2] 소스 여느 때와 다름없이 14번의 웹페이지에서 소스를 보니 URL에서 .kr이라는 문자열을 찾아 ul이라는 변수에 반환 값을 저장하고 30을 곱한 값을 가지는 것으로 보인다. 이 ul 값과 pw.input_pwd.value 값을 비교하여 같으면 패스워드를 보여주는 코드인 것을 알 수 있다. 여기서 pw.input_pwd.value는 클라이언트가 입력한 값임을 추측할 수 있다. [그림 3] indexOf 반환 값 가장 중요한 것은 inde..
[그림 1] 23번 23번 문제를 클릭하게 되면 그림 1과 같은 웹 페이지를 볼 수 있다. 너의 미션은 를 주입시키는 거라고 하는 문장과 함께 텍스트를 넣을 수 있는 박스와 제출 버튼이 보인다. XSS(Cross-site Scripting) 우회를 하라는 문제인 듯 하다. [그림 2] 제출 아래에 있는 문자열을 그대로 넣고 제출하니 그림 2와 같이 no hack이라는 문자열을 반환한다. 추측했다시피 바로 공격이 먹히는 것이 아닌 한 번 우회를 해야 되는 듯 하다. [그림 3]