목록WarGame (84)
DoR@Hee의 끄적끄적
"select id from prob_troll where id = " 쿼리에 결과값이 admin 일 경우 slove() 하는 문제이다. 1. '를 필터링 하고 있다. > '를 우회한다.2. admin 문자열 자체를 필터링 하고있다. > admin문자열을 우회한다. 처음에 우회를 진행하기위해 아스키코드로 admin을 작성 후 char를 이용 값을 넣어봤더니 거짓값인거 같다. 아스키코드 , hex값 둘 다 이용했을 때 문제를 풀 수 없어서 좀 더 생각을 해본 결과 admin 문자열을 점검하는 함수가 ereg 함수였다 여기서 ereg 함수란?ereg('찾고자 하는 문자', '필터링 할 문자열') 대,소문자를 구문하는 함수로 찾고자 하는 문자가 있으면 True, 없으면 False를 출력한다. eregi('찾고..
문제 화면or and 입력 시 hehe가 나온고쿼리 결과값에 따라 id 와 pw에 따른 값 을 나타낸다.$result['pw'] 와 $_GET['pw']에 값이 같을 경우 solve() 결론적으로 1. or, and를 필터링하고있다 > || &&를 이용 우회한다.2. admin pw의 길이와 값을 알아야한다. or 구문을 이용해서 쿼리문이 항상 참이 되게 한다. admin에 pw에 길이를 알기위해서 length(pw) =1을 입력 했을 때 false admin에 pw에 길이를 알기위해서 length(pw) =8을 입력 했을 때 True 즉 admin pw 의 길이는 8자리 정확한 admin pw에 값을 알기위해서 ascii(substr(pw,1,1))=54-- 을 입력 했을 때 참 이러한 정보를 이용해서..
이 문제는 or , and 문자열을 필터링 하고있다 or, and 를 문자열을 우회하는 방법을 이용해서 문제를 풀도록 한다 or = ||and = &&로 치환해서 입력 할 수있다. 쿼리값을 다음과 같이 입력해주면 성공
wolfman 문제 이 문제는 " " 공백을 입력 No whitespace ~_~가 나온다즉 " " 공백 우회기법을 사용해서 공백을 우회해야한다. mysql에서 공백 우회방법은 - /**/ - 주석- %09 - tab- %0d - creturn- %0a - inefeed creturn 과 inefeed 는 개행문자라고도 불리기 때문에 " " space와 같은 역할을 한다. %09 - tab으로 공백을 넣은 후 쿼리값을 항상 참으로 해주면 성공
ORC 문제 $_GET[pw]를 이용해서 pw의 값을 받고 있고 pw 파라미터에 prob 가 들어가면 "No Hack ~_~"가 나타난다 입력받은 pw를 쿼리문에 넣어서 쿼리문에 따른 값이 나오고 있다. 그리고 값은 값을 addslashes 함수를 이용해서 ' ' 등이 나오면 \로 이스케이프 하고있다. result['pw'] 즉 admin 비밀번호와 입력받은 pw가 맞으면 solve() 일단 쿼리문을 무조건 참 값을 만들기위해 '1 pw or 1=1-- %20을 입력 "Hello admin"이라는 문자열이 나온다. pw의 길이를 알아내기 위해서 1 or length(pw)=1 입력일단 한자리는 아니라는것을 알 수 있다.이유는 참값이 나오면 "Hello admin" 문자열이 나타나야하기 ㄸ '1 or le..
hint1. /usr/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp라는 이름의 임시파일을 생성한다 tmp 폴더관련 문제인거 봐서는 스티키비트(1) 관련 문제인거 같다 ※스티키 비트(sticky bit) 는 해당 폴더를 공유폴더로 이용함으로써 자유롭게 이용할려고 만드는 권한이며디렉터리 생성은 가능하나 슈퍼유저, 파일 소유자를 제외하고는 파일 삭제를 못하는 권한이다. tmp는 역시 스티키비트가 설정되어있다. 일단 /usr/bin 폴더에 level5를 실행한 다음 임시디렉터리인 tmp폴더를 봤는대 아무것도 없다 삽질을 해본 결과 해당 tmp파일을 만들긴 하지만 바로 삭제하는 거같다. 그래서 level5.tmp라는 파일을 일단 만들고 다시 level5 를 실행해서 level5.tmp를 보..
hint를 보면"누군구 /etc/xinetd.d에 백도어를 심어 놓았다." 여기서 xinetd는 오픈 소스 슈퍼 서버 데몬으로 인터넷 기반 연결을 관리한다.여기서 .d가 붙었으니 그걸 관리하는 디렉터리이다. 해당 디렉터리로 이동해보면 backdoor이라는 파일이 보인다.확인해보면 finger서비를 사용하고있다. 여기서 finger서비스란로그인 정보, 이메일, 예약 작업 정보 등을 볼 수 있는 명령어이다. finger 명령어에 대한 자세한 설명은http://www.linuxlab.co.kr/docs/01-06-5.htm여기에 설명이 잘 돼있다. 이런식으로 사용자의 정보를 볼 수 있다. server가 가르키는곳 /home/level4/tmp/backdoor를 찾아본 결과 아무것도 존재 하지 않는다.아마 로컬..
hint파일을 보도록 하자cat hint "텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데..."라고 되어있는걸봐선텍스트 파일 편집 기능이 있는vi, vim을 이용해서 푸는 문제인거 같다. 1번 문제와 마찬가지로 setuid 나 setgid가 설정돼있는 파일을 확인하기위해find / -perm +6000 -user level3 입력/usr/bin/editor 파일이 나왔다. 위와 같이 4750으로 권한이 설정돼있고 파일을 실행해보자 vim에디터가 나왔다.리눅스에는 많은 기능이 존재하는 에디터들이 존재하는데그 중에 vi에디터가 문제해답을 가져다 줄 거 같다. vi에디터에는 3가지 모드가 있다1. 입력 모드 - i, a, o, I, A, O를 누른 후 텍스트를 입력할 수 있는 상태 2. 명령 모드 -..