목록Wargame Writeups/los.eagle-jump.org (22)
White Security
los.eagle-jump.org의 6번째 문제입니다.이번 문제는 or, and를 차단했다는 것이 특징인데요. ||, && 연산자로 그 역할을 완전히 대체할 수 있다는 것을생각해 보면, 거의 의미가 없는 일입니다. ( 뜻하지 않게 order by가 차단됩니다 ) or 대신에 || 연산자를 입력하여 작동을 확인하고 id를 admin으로 한정시켜주면 클리어됩니다.
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를 반환하도록 하고뒷 부분을 주석처리 해 주는 것으로 가뿐하게 클리어가 가능합니다.