분류 전체보기
-
<WEB Hacking> NoSQL InjectionWEB Hacking 2021. 12. 20. 11:41
■NoSQL(Not Only SQL) · SQL을 사용하지 않고 복잡하지 않은 데이터를 저장해 단순 검색 및 추가 검색 작업을 위해 매우 최적화된 저장 공간임 · 키-값을 사용해 데이터를 저장 · RDBMS는 SQL이라는 정해진 문법을 사용하는 반면에 NoSQL은 다양한 DBMS마다 각각의 구조와 사용 문법이 다름 ■NoSQL Injection · 취약점은 주로 이용자의 입력값에 대한 타입 검증이 불충분할 때 발생 · SQL은 데이터의 자료형으로 문자열, 정수, 날짜, 실수 등을 사용할 수 있음 · MongoDB는 이외에도 오브젝트, 배열 타입을 사용할 수 있음 http://localhost:3000/?data=1234 data: 1234 type: string http://localhost:3000/?..
-
<WEB Hacking> SQL InjectionWEB Hacking 2021. 12. 20. 11:18
DBMS에서 사용하는 쿼리를 임의로 조작해 데이터베이스의 정보를 획득하는 기법 ■Simple SQL Injection user_table uid upw guest guest admin ********** 로그인할 때 사용되는 쿼리 SELECT uid from user_table where uid='' and upw=''; admin의 비밀번호를 찾기 위한 쿼리 SELECT uid FROM user_table WHERE uid='' UNION SELECT upw FROM user_table WHERE uid='admin'#' and upw=''; ■Blind SQL Injection 질의 결과를 이용자가 화면에서 직접 확인하지 못할 때, 참/거짓 반환 결과로 데이터를 획득하는 기법 로그인할 때 사용되는 쿼..
-
<Root-me> Javascript - Obfuscation 2Wargame/Root-me = Web - Client 2021. 12. 19. 17:35
빈 페이지만 출력된다. 페이지 소스 코드를 살펴보면 var pass = unescape("unescape%28%22String.fromCharCode%2528104%252C68%252C117%252C102%252C106%252C100%252C107%252C105%252C49%252C53%252C54%2529%22%29"); 개발자 도구 Console 탭에 unescape()문을 그대로 입력하면 결과로 나온 문자열에서 다시 unescape()문을 Console 탭에 입력하면 String.fromCharCode()문을 Console 탭에 입력하면 더이상 함수의 형태가 아닌 일반 문자열이 출력된다. 이 값을 문제 페이지에 입력하면 문제를 해결할 수 있다. ※ unescape() : URL 인코딩 문자열을 AS..
-
<Root-me> Javascript - Obfuscation 1Wargame/Root-me = Web - Client 2021. 12. 19. 17:17
비밀번호를 입력하라고 한다. 페이지 소스 코드를 살펴보면 /* */ h는 입력받는 값이다. 이 h가 unescape(pass)와 같으면 "패스워드가 승인되었다"라는 메시지를 띄우는 것으로 보아 unescape(pass)가 찾는 비밀번호인 것 같다. unescape(pass)를 해보면 "cpasbiendurpassword"이 나온다. 이 값을 문제 페이지에 입력해보면 문제가 해결된다.
-
<Root-me> Javascript - WebpackWargame/Root-me = Web - Client 2021. 12. 19. 16:16
오리와 원앙 사진을 볼 수 있다. 문제 제목으로 보아 Webpack에 관련된 문제인 것 같다. Webpack은 모듈 번들러로, 각각의 리소스 파일을 합쳐서 사용자에게 전달하기 좋은 형태로 만들어주는 역할을 한다. 모듈은 각 리소스 파일을 뜻하고, 번들은 웹 팩 실행한 후 나오는 결과 파일을 말한다. 개발자 도구 Sources 탭을 보면 webpack:// 부분을 찾을 수 있다. 그리고 내부에 "YouWillNotFoundThisRouteBecauseItIsHidden.vue"라는 파일을 찾을 수 있다. 그리고 빨간 줄 부분에 flag 값이 들어있다. 이 값을 이용해 문제 페이지에서 입력하면 문제를 해결할 수 있다.
-
<Webhacking.kr> old-25Wargame/Webhacking.kr 2021. 12. 19. 01:45
old-25 위 내용은 리눅스에서 "ls -l"을 사용한 것으로 보인다. URL Query에 "?file=hello"으로 보아 GET 방식으로 파일명을 전달하는 것 같다. URL Query에 "?file=flag"을 입력하면 FLAG가 코드 안에 있다는 메시지를 출력한다. php 코드는 서버 내에 저장되어 있다. 이런 경우 "LFI vulnerability" 기법을 수행할 수 있다. LFI(Local File Inclusion) 취약점은 파일이 공격 대상의 서버에 위치할 때 사용할 수 있는 방법이다. 해당 취약점은 php로 만들어진 웹 사이트에서 include, require, fopen 등의 함수를 사용해 받아온 입력값을 경로에 추가하기 때문에 발생한다. PHP 버전 5 전에는 경로 값에 NULL By..
-
<Root-me> Javascript - Authentication 2Wargame/Root-me = Web - Client 2021. 12. 18. 23:39
로그인 버튼을 누르면 username을 입력하는 창이 뜬다. 페이지 소스 코드를 살펴보면 "login.js"를 찾을 수 있다. "login.js"를 살펴보면 function connexion(){ var username = prompt("Username :", ""); var password = prompt("Password :", ""); var TheLists = ["GOD:HIDDEN"]; for (i = 0; i < TheLists.length; i++) { if (TheLists[i].indexOf(username) == 0) { var TheSplit = TheLists[i].split(":"); var TheUsername = TheSplit[0]; var ThePassword = TheSp..