White Security
los.eagle-jump.org의 4번째 문제입니다.이번 문제의 특징은 whitespace를 막고 있다는 점입니다. 사실 no whitespace 라고 되어있지만실제로 막혀 있는 것은 0x20 (Space) 뿐입니다. 따라서 탭 문자 등을 대신 사용하는 것으로문제를 해결할 수 있습니다. 주석문인 /**/ 을 사용해도 같은 효과를 얻을 수 있는데요.탭 문자 등 모든 공백문자들이 막혀 있을 경우 사용해도 좋겠습니다. id를 admin으로 지정하는 것으로 클리어가 가능합니다.
los.eagle-jump.org의 세번째 문제입니다. 이번 문제의 특징은 로그인에 성공해도 출력되는 것이 Hello admin 이라는 문자열로 고정되어 있다는 점입니다. 또한 1차로 로그인에 성공해도 2차로 addslashes를 적용한 쿼리 결과값과도 일치해야 하므로 결국은 첫번째 쿼리를 이용해 pw값을 찾아내어 두번째 쿼리를 통과해내는 문제라고 할 수 있겠습니다. pw 값을 변조하여 로그인에 성공해도 $result['id'] 값이 직접적으로 표시되지 않고 조건문 분기에만 사용되므로 Blind SQL Injection 기법을 사용하여야 합니다. from urllib import request, parse import math, sys def check_true(response): return (resp..
los.eagle-jump.org의 세번째 문제입니다.이번 문제의 특징은 쿼트를 막고 있다는 점입니다. 하지만 mysql 에서는 hex 형태로 문자열을 대체할 수 있기에쿼트가 붙지 않은 hex 값을 계산해 사용하면클리어가 가능합니다.
los.eagle-jump.org의 두번째 문제입니다.이전 문제와 비슷하지만 pw를 해시화해서 저장하고 있군요. 하지만 id 값을 이용해 pw 비교부분을 주석화시키면해결될 것으로 보입니다. 로그인에 성공했지만 admin 계정이어야만 한다는군요.이럴때는 limit 문을 이용해 다음 행을 확인해 보아도 되고id 값을 예측할 수 있다면, id='admin' 등을 통해 찾아낼 수도 있습니다. id='admin'인 줄을 찾아 가져오고 뒷 부분을 주석화 시키는 것으로 해결했습니다.
`los.eagle-jump.org의 첫번째 문제입니다.소스를 간략화해서학습에 도움이 될 수 있도록 한 부분이 마음에 드네요. '/prob|_|\.|\(\)|/i' 부분이 눈에 띄는데information_schema를 통해타 테이블 접근을 방지하는 용도로 쓰여진 것으로 보입니다. 문제 자체에는 아무것도 적용된 기법이 없기에id 파라미터에 or 1을 넣어항상 true를 반환하도록 하고뒷 부분을 주석처리 해 주는 것으로 가뿐하게 클리어가 가능합니다.
wargame.kr 사이트의 마지막 웹 문제입니다. SQL 인젝션 문제입니다 접속하자마자 소스가 표시되는데 pw, flags 값이 사전 계산된 값과 동일하면 플래그를 출력하고 그렇지 않은경우 id 컬럼만 표시하고 있네요. id 컬럼 출력 부분을 활용해서 정보를 가져올 수 있을 것으로 보입니다. http://wargame.kr:8080/adm1nkyj/?id=admin&pw='+and+0+union+select+1,@@version,3,4,5--+- http://wargame.kr:8080/adm1nkyj/?id='+or+1+order+by+5--+- id 파라미터에 order by 절을 사용해 findflag_2 테이블의 컬럼이 5개라는 것을 알 수 있었습니다. http://wargame.kr:8080/..
wargame.kr 사이트의 30번째 문제입니다. Error based SQLi Challenge 링크에 접속하면 로그인 화면을 볼 수 있습니다.ID는 본인 아이피로 고정되어 있으며변경하여도 서버에서 검증하기에 의미가 없습니다. 모든 파라미터는mysql_real_escape_string 함수를 거쳐 사용되며유일하게 type 파라미터만이 쿼트가 없습니다. 따라서 type 뒤에 or으로 조건식을덧붙여주면 로그인이 가능합니다. 하지만 Flag를 얻으려면실제 ps 파라미터가 검증되어야 하므로우리는 ps 값을 알아낼 필요가 있습니다. extractvalue 함수를 사용해서error based sql injection을 시도해 보았지만t_user 는 임시테이블이기에 다중 접속이 불가하고all_user_account..
wargame.kr 사이트의 29번째 문제입니다. 쉬어가는 문제입니다찾아보니 jff3는 CTF 이름이네요. 링크에 접속하면 alert이 반겨줍고 있습니다. 아직 개발이 완료되지 않았다며 자바스크립트를 통해 이전 페이지로 돌아갑니다. 좌측에 멤버 목록으로 Cd80 Orange Comma 가 있고 우측에는 로그인 폼이 존재합니다. 로그인을 시도할 시에 비밀번호 해시값을 보여주는데 이를 통해 해시 타입을 유추해 볼 수 있었습니다. 위는 haval 128,5 해시입니다. 자바스크립트를 차단하고 멤버 목록을 선택해 보면 이름이 나타납니다. 여기서 no 인자값을 0으로 바꾸어보면 유저명이 admin 으로 나타납니다. 인젝션을 시도하면 거의 모든 구문들이 차단되어 있는 것을 확인할 수 있습니다. if 함수는 차단되었..