분류 전체보기
-
[Webhacking.kr] 40번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 19:01
login 버튼을 누르면 get 방식으로 no, id, pw 값이 전송되고, 페이지에 Success - guest가 출력되며, 조금 뒤 원래 페이지로 돌아온다. 이 문제는 php 소스가 주어지지 않았기때문에 추측해서 풀어야한다. 추측을 위해 no의 값을 2로 변경하고 login 버튼을 눌러보았다. Failure or을 이용하여 no=2||no=1을 입력해보았더니 guest로 로그인하는데 성공하였다. no의 값을 이용하여 관리자의 아이디와 비밀번호를 알아낼 수 있을 것 같다. magic_quote_gpc 옵션이 켜져 있기때문에 no=0||id=admin을 입력하기 위해 char함수를 이용하였다. admin : char(97, 100, 109, 105, 110) char이 필터링되어 있는 것 같다. hex ..
-
[Webhacking.kr] 39번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 18:45
덩그러니 입력칸만 준다.소스를 보았다. 쿼리문의 결과 값이 good이 나오면 문제가 풀린다. 쿼리문을 보니 쿼터가 제대로 닫혀있지 않다.쿼터를 닫아주고 테이블에 존재하는 id 값을 입력해주면 문제가 쉽게 풀릴 것 같다. \\를 공백으로, '를 ''로 치환한다.따라서, 내가 '를 입력해 쿼리문을 닫으려해도 ''로 바뀌어 쿼리 에러가 발생한다. 하.지.만substr함수에 의해 15글자로 잘라준다.이 함수를 이용하여 '를 15번째 자리에 두면, ''로 바뀌어도 뒤의 '는 잘리게 된다. admin '(admin 대신 내 아이디를 이용해도 된다.) 문제가 풀렸다. 왜 공백을 넣어도 동일한 아이디로 인식하는지 알아보았다. char : 고정 길이 문자열char(10)으로 지정하면, "aa"와 "aa "를 비교할 때 ..
-
[Webhacking.kr] 38번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 18:19
Log Injection 문제이다. Log Injection : SQL Injection과 같이 파라미터를 통해 Logging을 조절하는 공격Logging : 시스템 동작 시 시스템 상태/작동 정보를 시간의 경과에 따라 기록하는 것Log : 기록된 기록Log Injection을 통해 허가받지 않은 사용자가 권한을 획득할 수 있다. [ 예시 ]로그인 시 Log 입력형태 (가정)Sep 11:2018:01:07:13: ApplicationName:Failed Login, Id=admin Log Injection을 통한 로그 위조id : foo\r\nSep 11:2018:01:07:13: ApplicationName:Successful Login, Id=admin LogSep 11:2018:01:07:13: A..
-
[Webhacking.kr] 37번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 18:04
test.txt 파일을 업로드 해보았다. test.txt 가 출력되었다. tmp-15~~ 이것도 파일이름인 것 같다.소스 코드를 보았다. 소스를 해석해보면,\$time에 현재시간의 timestamp가 저장되고, tmp/tmp-\$time 파일 내용은 127.0.0.1가 된다..number 파일 내용은 tmp 디렉터리 내의 파일 개수가 적히고, 파일이 생성될 때마다 갱신된다. 파일을 업로드하면 그 파일의 이름에 몇몇 문자를 공백문자로 치환해주고해당 파일의 내용으로 나의 IP가 들어간다. scandir 함수지정된 경로에 있는 파일 및 디렉터리 반환 현재 시간과 일치하는 timestamp가 포함된 이름을 가진 파일에 적힌 IP주소의7777번 포트로 비밀번호를 전송해준다.tmp 디렉터리의 파일 개수가 30개 이..
-
[Webhacking.kr] 35번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 17:34
우선 소스코드~ 소스 코드를 해석해보면,get 방식으로 phone의 값을 전송한 후 문자열을 필터링하고, insert문을 이용하여 값을 DB에 삽입한다. admin의 ip주소값과 $_SERVER[REMOTE_ADDR]의 값이 같으면 문제가 풀린다.insert 구문을 이용하여 id : admin, ip : 나의 ip주소 로 데이터를 삽입해주어야 하는 문제이다. insert 구문을 보면, value가 아닌 values로 되어 있다. 이는 여러개의 데이터를 한 번에 삽입할 수 있다.(phone은 '가 없는 것을 보니 int형으로 추측해본다.) insert into challenge35_list(id, ip, phone) values('session_id', '내IP', 1),('admin', '내IP',2) ..