본문 바로가기

전체 글

(53)
[wargame.kr] DB is really GOOD 이제 슬슬 모르는 분야가 나온다 user name과 db의 연관성을 찾으라고 한다. 링크로 들어가면 이런 화면이 나온다. 로그인을 하면 이런 화면이 나온다. name으로 user를 구분하고 메모를 하는 방식 콘솔창을 보면 GET으로 db에 있는 메모를 갖고오고, POST로 write하는 것 같다. database 종류과 관련해서 서치를 해봤더니 mysql injection 공격으로 db 정보를 알 수 있는 것 같았다. 일단 admin으로는 로그인이 안된다. 그냥 막 'or 1=1--같은 쿼리문을 넣어보거나 특수문자를 넣어봤는데 write에서 뭘 할 수 있는건 아닌것 같았다. user login할 때 관련이 있다고 생각했다. /dare로 로그인했더니 저런 화면이 나왔다. 내가 /dare로 했을 때 open..
[wargame.kr] strcmp 오늘도 새로운 문제~ 생긴건 역시 간단하고 소스코드를 보자 일단, password를 strcmp로 검사하는 간단한 코드이다. 여태껏 그래왔듯이 strcmp에 취약점이 있을 것이라고 생각해서 찾아봤다. strcmp는 보통 strcmp(string1, string2) 이런방식으로 사용해야한다. 하지만 strcmp(string, array[])가 가능하다. php 5.2 버전까지는 1 또는 -1로 정수값이 return 됐는데, php 5.3 버전 이상부터는 NULL값을 return 한다고 한다. == 연산자를 사용했을 때 NULL==0이 되므로 아마 입력하는 password에 배열을 인자로 주면 strcmp($_POST['password'], $password)==0 을 만족할 수 있을 것 같다. postbi..
[wargame.kr] md5 password 오늘도 한 문제 이런 화면이 나오고 소스코드를 준다 일단 무슨말인지 모르겠다. password를 틀리게 입력하면 위에 wrong이라고 뜬다. 소스코드에서 눈에띄는점은 md5($ps, true)인데, 이게 뭔지 몰라서 찾아봤다. md5('value')로 하면 해쉬값을 반환해주고, md5('value', true)로 하면 결과값을 바이너리 형식으로 돌려준다. 너무 어이없었던게 md5(true)라고 서치하니까 바로 취약점이 떴다.. md5 해시 결과값에 '가 들어갈 수 있으므로 md5 함수에 들어가는 값이 해시함수를 적용했을 때, 1' or '1 같은 query가 나오면 되는 값을 찾으면 되는것, 129581926211651571912466741651878684928가 예시로 있어서 바로 적용했더니 풀렸다. ..
[wargame.kr] login filtering 가을에 풀다가 접은 문제 sql injection 문제라고 생각했다. 위가 소스코드고, 아래는 주석처리 돼있던 부분 아이디를 admin으로 해서 패스워드를 브루트포싱하는 건가 했는데 패스워드가 md5 해시돼서 저장되기 때문에 패스워드를 예측하기에는 너무 크립토같아서 제꼈다. 그럼 guest나 blueh4g1234ps로 얻어낼 수 있어야 할 것 == 연산자에 대해서 찾다가 얼마전 ctf문제에서 ===연산자가 나왔던 게 생각났다. ===는 데이터 타입까지 비교한다는게 기억이 나서 차이점을 찾아보니 ==은 1과 '1'을 같다고 취급하고, ===는 다르다고 취급한다. 따라서 차이점을 언급한 글들 에서는 변수값을 비교할 때 ===을 사용하는 것을 권장했다. (이 문제가 '변수 비교에 ===를 쓰지 않았다' 가 포..
PE 포맷 공부 목적으로 적는 글 PE 파일: Portable Excutable. 윈도우 운영체제에서 사용되는 실행파일. dll, obj코드, FON 폰트 파일 등을 위한 파일 형식. 즉, 실행 가능한 파일 형식을 말한다. PE 구조는 크게 PE Header와 PE Body로 나눌 수 있다. 헤더는 DOS Header, DOS Stub, NT Header, 그리고 Section Header들로 이루어져있고, PE Body는 Section들로 이루어져있다.PE Header의 끝부분과 각 section사이에는 Null Padding 영역이 존재하는데컴퓨터에서 파일, 메모리, 네트워크 패킷 등을 처리할 때 효율을 높이기 위해 최소 기본 단위 개념을 사용하는데 이 개념을 PE 파일에도 적용한 것. CFF explorer로..