Webhacking.kr Challenge 5
·
Wargame | CTF/Webhacking.kr
Challenge 55번 문제는 JavaScript와 SQL의 Insert문을 이용하는 문제입니다. 문제화면 입니다. Login버튼과 join버튼이 있습니다. join버튼을 누르니 Access_Denied 창이 뜹니다.login을 해보니 admin이 아니라고 뜹니다. 고로 저희는 admin아이디로 로그인을 해야할 것 같네요.우선 Join페이지를 들어가야합니다. 로그인 경로를 보면 '/mem/login.php' 입니다.여기서 Guessing의 필요성이 느껴집니다. '/mem/join.php'로 접속을 해봅시다.접속하니 검은화면만 있어서 페이지 소스를 봤습니다. 자바스크립트가 난독화되어 있군요. 비교적 쉬운 난독화에 속하니 개발자도구를 이용하여 난독화는 풀어봅시다. 이렇게 개발자도구의 콘솔을 이용하여 난독화..
Webhacking.kr Challenge 4
·
Wargame | CTF/Webhacking.kr
Challenge 4 4번 문제는 의외로 간단했습니다. Base64과 Sha-1에 대한 문제입니다.문제 화면을 보면 알수없는 문자열이 있습니다. Base64로 인코딩된 형식입니다.==를 보면 바로 알 수 있죠Base64 는 암호가 아니기에 인,디코딩을 할 수 있습니다.Base64 디코딩을 하면 위와 같은 문자열이 나오는데 Sha-1으로 암호화된 것 같습니다. Sha-1 복호화 사이트를 찾아서 복호화를 해봅시다.두번의 복호화 과정을 거치면 아래와 같이 답이 출력됩니다.test를 입력하면 문제를 클리어할 수 있습니다.
Webhacking.kr Challenge 3
·
Wargame | CTF/Webhacking.kr
Challenge 3어디서 많이 봤던 퍼즐입니다. 로직???이란 어플로 해본 것 같네요.퍼즐에 나와 있는 숫자들은 각 라인에 표시되는 숫자로 보입니다.이런 형식으로 모양을 만들고 버튼을 클릭합니다.버튼을 누르면 name을 입력하는 페이지가 나옵니다.'TEST'라는 값을 넣어보고 프록시를 이용하여 Intercept해서 어떤식으로 요청을 날리는지 확인해 봤습니다.제가 입력한 퍼즐과 'TEST'를 POST방식으로 전송하고 있습니다.결과를 보면 name, answer, ip 가 출력됩니다.Insert문을 날리고 Select문으로 다시 출력해주는 것 같습니다.Select문을 날릴 때 조건절을 참으로 만들어 전체를 출력하기 위해 위와 같은 구문을 전송하였습니다.no hack이 출력 되었습니다. 아마 특정 문자열을 ..
Webhacking.kr Challenge 2
·
Wargame | CTF/Webhacking.kr
Challenge 2 2번 문제입니다. 점수는 500점으로 1번에서 확 난이도가 높아졌습니다.문제 화면입니다. 보이는 메뉴는 6개 이나 페이지소스를 보면 숨겨진 메뉴가 하나 더 있습니다. 숨겨진 메뉴는 관리자 페이지입니다. 현제 문제 페이지를 살펴보던 중 특이점을 발견했습니다.페이지 소스를 보면 현재 날짜와 시간이 주석처리가 되어 있습니다. 쿠키에 time값으로 출력해주고 있었습니다. 이 부분이 중요합니다.각 각 쿠키의 값을 변경하여 참일 경우 와 거짓일 경우가 다르게 출력되었습니다.이 참과 거짓의 출력 값을 이용하여 Blind SQL Injection을 이용할 것입니다.현재 우리가 알아야할 패스워드가 두개 입니다.게시판에 게시글의 비밀번호 입니다.관리자 페이지의 비밀번호를 알아내어야 합니다.Blind ..
Oracle SQL Injection
·
Web Hacking
Oracle SQL Injection DB 버전 확인 : v$version 조회 SELECT banner FROM v$version WHERE banner LIKE ‘Oracle%’; SELECT banner FROM v$version WHERE banner LIKE ‘TNS%’; SELECT version FROM v$instance; 현재 DB명 확인 : global_name 조회SELECT global_name FROM global_name; SELECT name FROM v$database; SELECT instance_name FROM v$instance; SELECT SYS.DATABASE_NAME FROM DUAL; DB 리스트 확인 : SELECT DISTINCT owner FROM all..
MS SQL Injection
·
Web Hacking
MS SQL Injection정보수집1. 버전 체크 and 1=(select @@VERSION)2. DB 확인 : DB가 존재하면 에러출력, 존재하지 않으면 정상작동 sysdatabases dbid 1-6은 시스템db, 7~ 사용자db and 1=(select name from master.dbo.sysdatabases where dbid=7) 3. 현재 DB명 조회 : and 0db_name()4. 현재 유저명 조회 : and user>0 데이터베이스 구조5. 현재 테이블 조회 : ' having 1=1--6. 현재 컬럼명 조회 : ' group by users.id having 1=1--7. 컬럼 타입 조회 : ' union select sum(컬럼명) from 테이블명-- 5. 권한 체크 : 1) ..
크로스사이트스크립팅(XSS)
·
Web Hacking
1. 크로스사이트스크립트(XSS)크로스 사이트 스크립팅(영문 명칭 cross-site scripting, 영문 약어 XSS)은 웹 애플리케이션에서 많이 나타나는 취약점의 하나로 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다. 주로 여러 사용자가 보게 되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태로 이루어진다. 이 취약점은 웹 애플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 나타난다. 이 취약점으로 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 하거나 할 수 있다. 주로 다른 웹사이트와 정보를 교환하는 식으로 작동하므로 사이트 간 스크립팅이라고 한다. - 입력값 검증을 적절히 수행하지 ..