정보보안 썸네일형 리스트형 bandit10->16 10->11 dreamhack tool을 이용하여 base64 변환을 할 수 있다. 11->12 코드로 짜려고 했는데 검색해보니 카이저 암호 변형해주는 프로그램도 존재했다. 12->13 압축을 해제하는 법을 배우는 문제인가 매우 귀찮았던것 같다. 13->14 이부분은 처음 보는 부분이라서 검색을 꽤나 했다. sshkey 공개키 , 개인키는 무엇이고 어떻게 로그인 하는지 등을 알 수 있다. 14->15 문제 설명만 듣고는 뭘 해야되는지 알 수가 없어서 검색을 했다. ssh와 다르게 nc 로 접속한다. nc는 netcat으로 포트가 열려있는지 확인한다. 15->16 이 부분 역시 문제만 읽고는 막혀서 답안을 참고했다. openssl 명령어를 이용하면 ssl암호화를 진행할 수 있는것 같다. ssh, nc, o.. bandit0->10 0->1 ssh 접속하기 1->2 ssh 접속후 이름이 - 로 되어있는 파일 보기 2->3 공간있는 파일 이름 보기 3->4 숨겨진 파일 이름 보기 4->5 사람이 읽을 수 있는 문자로 된 파일 보기인데 그냥 하나하나 다 열어봤다. 5->6 특정 사이즈의 파일 찾기 6->7 특정 조건을 가진 파일 찾기 (-user -group) 7->8 파일 내에 특정 문자 찾기 8->9 중복되지 않은 무언가 만 찾기 9->10 7->8과 동일한 내용으로 보임 05[Webhacking.kr] 우선은 이곳저곳 눌러보면서 분석을 해보았다. Join을 눌렀을때는 접근할수 없다는 알림이 나왔고 Login은 로그인 부분이 있어 sqlinjection인가 생각도 해보았다. 다른페이지도 없어보이고 join에 들어간다음 스크립트를 보니 l='a';ll='b';lll='c';llll='d';lllll='e';llllll='f';lllllll='g';llllllll='h';lllllllll='i';llllllllll='j';lllllllllll='k';llllllllllll='l';lllllllllllll='m';llllllllllllll='n';lllllllllllllll='o';llllllllllllllll='p';lllllllllllllllll='q';llllllllllllllllll='r';llllll.. 04[Webhacking.kr] 흠 뭔가 암호화 된것같은 내용과 Password 불안감이 목을 지나친다. 10000000~99999999 중 랜덤으로 숫자 하나를골라서 salt_for_you와 결합한후 sha1() 암호화를 500번 지난 값이 위에 나온다. 이 숫자를 구하는것이 답일것이다. import hashlib f = open("ans.txt",'w') tmp = "" for i in range(10000000,99999999) : tmp = str(i) + "salt_for_you" for j in range(0,500) : tmp = hashlib.sha1(tmp.encode('utf-8')) tmp = tmp.hexdigest() f.write(f'{i} : tmp {tmp}\n') f.close() 일단 이렇게 답을 구하고.. 09[Basic RCE] stolenbyte를 찾으라고 한다. stolenbyte는 처음들어보는 상태로 문제를 직면한다. upx로 패킹 되어있으니 전 문제처럼 언패킹하면 글씨가 다깨지고 이상해진다. 그리고 stolenbyte에 대해서 알아보니 stolenbyte는 언패킹의 원리를 이용하여 OEP를 찾아서 패킹하는 것을 OEP이전에 코드를 놔둬서 고장나게 만드는 것 같다. 위는 패킹 되지 않은 코드를 디버깅할때 pushad, popad 부분을 본다. popad 뒤의 3개의 push문이 우선 답이다. 언패킹한 프로그램의 비어있는부분과 정확하게 크기가 일치한다. 08[Basic RCE] 파일을 다운받아 DIE로 분석해보니 패킹된 프로그램이다. upx로 언팩한다음 다시 DIE로 Entrypoint를 확인할 수 있었다. 프로그램은 실행도 안해봤다. 03[Webhacking.kr] 갑자기 노노그램을 가져둬 줘서 코딩을 통해 풀어야 하나 그런 생각도 들었다. 노노그램을 풀면 다음창으로 넘어가진다. 클리어한 이름과 정답을 저장할 수 있다. 이곳 저곳 살펴봤지만 위의 함수는 정답을 일치시키는 버튼의 함수인것 같다. 즉 입력을 통해 log를 남기는 위의 부분이 가장 수상했었다. 하지만 ' 나 or 등을 넣어도 아무런 오류도 내뱉지 않았다. burpsuite를 이용하여 다음과 같이 요청을 보내서야 query error를 내뱉었다. 이는 sql injection을 이용하라는 뜻인듯 하다. 필터링 때문에 특정 방식을 이용하는것같다. 무슨짓을 해도 안되서 답을 참고해보니 띄어쓰기만 하면 된다고해서 하여 정답을 얻을 수 있었다. 07[Basic RCE] 문제 내용은 다음과 같다. 먼저 string 검색으로 분기점을 찾아낸후 breakpoint 건 부분들을 살펴보면 GetVolume~~ 함수에서 드라이브의 이름을 가져오고 이를 이용해서 암호를 만드는것 같다. Drive의 이름을 가져와서 07.40225C에 저장하기 때문에 401099가 호출된 이후에 해당 메모리를 CodeEngn으로 수정한후 코드를 실행하면 주석 되어있는 부분처럼 시리얼 넘버도 나오고 CodeEngn -> ????Engn으로 바뀌었는가가 문제가 물어보는 바이다. 이전 1 2 3 4 ··· 13 다음