728x90
반응형

분류 전체보기 335

시스템해킹 워게임 / 시스템해킹 입문 / 시스템해킹 초보 OverTheWire [Bandit Level 0]

Bandit 은 기초적인 리눅스 기반의 시스템해킹 워게임입니다. 비교적 크게 어렵지 않아 초보자들이 시스템해킹을 시작하기 좋다고 생각합니다. 저는 지금 OverTheWire에서 나온 Natas라는 웹해킹 워게임도 진행하고 있는데, 시스템해킹도 도전하고 싶어 글을 올리게 되었습니다. https://overthewire.org/wargames/bandit/bandit0.html OverTheWire: Level Goal We're hackers, and we are good-looking. We are the 1%. Level Goal The goal of this level is for you to log into the game using SSH. The host to which you need to c..

OverTheWire [Natas Level 18]

Natas Level 18 입니다. 어느새 총 34단계 중 절반을 넘어섰네요. 어렵지만 확실히 많이 배우고 있습니다. Level 18 메인 페이지 입니다. natas19의 password를 획득하기 위해선, admin 계정으로 로그인 하라고 합니다. SQL Injection 인가 싶어, 인증우회 구문을 입력해 봤습니다. " or 1=1 # 입력했습니다. 실패했습니다. 일반유저로 로그인 되었다고 합니다. 이후에도 admin" or 1=1 # 등으로 여러가지 시도해 봤지만 실패했습니다. SQL Injection 공격이 아닌걸까요? 소스코드입니다. 좀 기네요. 중요한 부분을 살펴봅시다. COOKIE에서 PHPSESSID 값을 확인하는 것 같은데요.. 아래쪽도 보시면 사용자 세션을 확인해서, admin 계정일 ..

Hacking/[Web]Natas 2023.03.29

OverTheWire [Natas Level 17]

Natas Level 17 입니다. 15레벨과 비슷한 Blind SQL Injection 문제입니다. 메인 페이지 입니다. Level 15와 같이, 입력값과 일치하는 계정이 존재하는지 확인하는 기능입니다. 소스코드 입니다. Level 15와 전체적으로 완전히 같으나, 딱 하나 다릅니다. 바로 최종적으로 유저가 존재하는지 아닌지 알려주는 출력구문이 주석처리 되어 있습니다. 쿼리 오류도 마찬가지입니다. 즉, 우리의 입력값에 대한 서버의 반응을 전혀 알 수 없다는 것입니다. 무엇을 입력하든, 이렇게 아무것도 알려주질 않습니다. 아무것도 알 수가 없는데, 어떻게 해야 할까요? 소스코드를 보시면, 출력문이 주석처리 되어있을 뿐이지 기능 자체는 완전히 같습니다. 그렇다는 것은, 우리가 입력한 쿼리는 여전히 정상작동..

Hacking/[Web]Natas 2023.03.29

OverTheWire [Natas Level 16]

Natas Level 16 입니다. command injection 기법을 이용한 문제입니다. 이번 문제입니다. 보안상의 이유로, 더 많은 문자를 필터링 하고 있다고 합니다. 해당 폼엔 사용자가 입력한 단어를 찾아주는 기능이 있습니다. 소스코드입니다. 예전에 나왔던 grep 문제에서, 필터링이 한층 업그레이드 되었군요. [ ; | & ` \ ' " ] 문자들을 필터링 하고 있고 ( 웬만한건 다 필터링 하는군요 ) grep 명령문에서, 입력값이 \"$key\" 형태로 더블쿼터로 묶여 있습니다. 이래선 개행문자를 이용한 우회도 먹히질 않죠. 우리가 무슨 입력값을 어떻게 넣든 간에, 반드시 grep dictionary.txt 의 인자로 들어가게 됩니다. 우리는 해당 명령문을 정상적으로 이용하면서 답을 찾아내야..

Hacking/[Web]Natas 2023.03.28

OverTheWire [Natas Level 15]

Natas Level 15 입니다. Username을 적는 칸이 있군요. 아무거나 적고 Check existence를 눌러보면, 사용자가 존재하지 않는다고 뜹니다. 입력값과 일치하는 사용자가 DB에 존재하는지 확인하는 기능인 것 같습니다. 소스코드입니다. 입력값을 확인해서 DB에 해당 계정이 존재하는지 확인해주는 기능인 것 같습니다. 쿼리에 문제가 있으면, 문제가 있다는 사실도 알려주고 있구요. 일단 코드 자체에 natas16의 password를 출력해주는 기능은 없군요. 그렇다면 우리가 직접 탈취해야 한다는 뜻이죠. 맨위 주석부분을 보시면 "users" 테이블을 만든 후, "username" , "password" 컬럼을 추가하고 있습니다. 아마 users 테이블 안에 natas16의 password가..

Hacking/[Web]Natas 2023.03.27

OverTheWire [Natas Level 14]

Natas Level 14 입니다. ID와 패스워드 입력란이 보입니다. 로그인 폼 문제는 Natas에서 처음 나왔죠? 따라서 SQL Injection 문제일 것 같은 예감이 팍 듭니다. ( 대중적이며 강력한 공격기법이므로 ) 일단 소스코드를 확인하겠습니다. 일단 로그인 기능을 하는 소스코드인 것 같은데요.. 우리가 ID와 패스워드 칸에 입력한 값을 SQL 쿼리에 대입하여 실행하고 있습니다. mysqli_num_rows 함수를 이용해 로그인 성공여부를 판단하네요. 해당 함수는 쿼리에 대한 결과값 레코드의 개수를 반환하는 함수인데, 해당 값이 1이상이라면 우리가 입력한 아이디와 패스워드와 일치하는 계정이 있다는 소리이니 로그인 성공으로 판단하게 되는 것입니다. 그렇다면 방법은 둘중 하나입니다. 1. 인증과정..

Hacking/[Web]Natas 2023.03.25

첫 토익 결과발표 ( 2023.03.12 시행 )

저의 첫 토익 결과가 나왔습니다. 바로 공개합니다. LC 195점, RC 125점으로 총점 320점 입니다. 점수는 형편없지만... 뭐 개인적으론 나름 만족합니다 300점도 안나올 줄 알았는데 300점은 넘겼고.. 고등학교 시절과 비교했을 때 실력이 늘은 건 확실히 느껴지기 때문입니다. 확실히 영어는 "언어"이다 보니 IT과목에 비해 딱딱 들어맞지가 않고, 변수도 많아서 그냥 꾸준히 접하고 문제를 많이 풀어보는 것 밖엔 없는 것 같습니다. 320점이 어느 정도 수준이냐면, 토익 점수 환산기로 대충 파악할 수 있습니다. LC는 195점이므로, 100문제중 대략 50문제를 맞았습니다. RC는 125점이니, 100문제중 28문제를 맞았군요.. 시간관계상 마지막 30문제를 찍긴 했습니다만 RC를 LC보다 잘 봤..

자유 2023.03.25

OverTheWire [Natas Level 13]

Natas Level 13 입니다. 뻘짓을 좀 많이 한 문제입니다.. 이미지 파일의 업로드만 허용한다고 합니다. 이미지 파일이 아닐 경우, 이와 같이 이미지 파일이 아니라고 뜹니다. 소스코드를 봐볼까요? 전체적인 코드는 Level 12와 비슷합니다만, 이미지 파일을 필터링하는 과정이 조금 특별합니다. 파일명 뒤에 붙은 확장자 기준이 아니라, 직접 파일의 시그니처를 확인하고 있습니다. 확장자별로 고유의 시그니처가 있는데요, 해당 코드는 업로드 파일이 이미지 파일의 시그니처인지 직접 확인하고 있습니다. 그렇다는 것은, 단순히 파일명 뒤의 확장자를 바꾸어선 아무런 소용이 없다는 뜻입니다. 따라서 파일의 시그니처를 직접 바꾸어야, 이 필터링을 우회할 수 있습니다. 그러기 위해선 "HxD" 라는 프로그램이 필요합..

Hacking/[Web]Natas 2023.03.17

OverTheWire [Natas Level 12]

Natas Level 12 입니다. Level 12 메인 페이지 입니다. 업로드할 JPEG 파일을 선택하라.. 최대크기는 1KB 로군요. 1KB면 메모장에 글 몇줄만 써도 넘어버리는 작은 크기죠. 파일 업로드 기능을 이용해서 password를 찾아야 할 것 같네요. 소스코드부터 봐봅시다. 해당 문제 소스코드 입니다. 대충 보니.. 파일 크기를 제한하는 조건문과 랜덤한 문자열을 생성하는 함수도 보이네요. 하지만, 여기에 password를 출력하는 코드는 없네요. 그렇다는 건, 우리가 /etc/natas_webpass/natas13 파일을 직접 조회해야 한다는 걸 의미합니다. 일단 업로드 기능부터 직접 살펴봅시다. dd.txt 파일을 업로드 해보겠습니다. 해당 파일은 제가 만들었으며 메모장에 딱 한글자만 적..

Hacking/[Web]Natas 2023.03.16

OverTheWire [Natas Level 11]

Natas Level 11 입니다. Level 11 메인 페이지 입니다. ..꽤 끔찍한 문제였습니다. 쿠키는 XOR 암호화로 보호되고 있다. 라네요. 소스코드부터 봐봅시다. 굉장히 길고 끔찍하군요.. 일단 맨 마지막 코드를 보아, data배열의 showpassword값이 yes이면 password가 출력된다는 걸 알 수 있습니다. 하나씩 설명을 드리자면, xor_encrypt() : key와 입력받은 인자를 xor 연산 진행하는 함수 loadData() : 현재 Cookie의 data 부분 값을 복호화하여 가지고 오는 함수 saveData() : 인자로 받은 값을 암호화하여 Cookie의 data부분 값을 셋팅하는 함수 이렇게 됩니다. 현재 마지막 조건문에서는, data배열의 showpassword 값이..

Hacking/[Web]Natas 2023.03.16
728x90
반응형