본문 바로가기
  • True knowledge exists in knowing that you know nothing. -Socrates-

Study/los14

los troll los 8번 troll 풀이 troll 문제를 보시면 ' 와 를 필터링 합니다.admin 이라는 것을 단 순히 php ereg 에서 검사를 합니다.php에서 ereg는 대소문자를 구분하기 때문에admin과 Admin은 다른 문자로 인식합니다.db로 들어가면 admin 이나 Admin 같은 걸로 봅니다. 이렇게 Admin 이라고 입력해도 문제가 해결 됩니다. 아니면 ADMIN 이라고 입력해도 풀리네요 2016. 12. 18.
los orge los 7번 (oreg)풀이 입니다. 소스 코드의 필터링은 크게 or and 를 제외 하면 문제가 될 만한 것은 없습니다. 소스코드를 보면 첫번 째로 쿼리를 날려서 반환값이 참이면 해당 아이디를 출력해줍니다. 이 부분을 이용해서 blind sqlinjection을 시도하면 되겠습니다. 반환 값이 참이기 때문에 ('1') 게스트라는 아이디를 출력해 줍니다. (or 우회 ||) 앞의 (id='guest' and pw='1') 을거짓으로 판단하게하고 || 을 수행하는 쿼리문 입니다. 블라인드 인젝션의 한 방법으로 %를 이용 했습니다. 이렇게 한글자씩 유추해 가면서 pw를 찾으면 됩니다. 참고로 (pw는 8글자 입니다.) pw 8글자를 다 찾으셨으면 pw=에 넣어주시면 됩니다.(참고로 &&를 url에 입력할 때.. 2016. 12. 6.
los darkelf los 6번 (darkelf) 풀이 쿼리를 분석해 보면 저번 문제들과 같은 유형이지만, 여기서는 or and를 필터링 합니다.google에 찾아보면 or 과 and를 우회 하는 방법이 나와 있습니다.저는 ||를 사용해서 or 을 우회 했습니다. pw=1' || 1%23를 입력해보면 Hello guest를 출력 합니다.그러므로 || 는 필터링 되지 않고 or로 인식된 겁니다. pw=1 || id='admin'이라고 입력 한다면 쉽게 풀립니다. 2016. 11. 22.
los wolfman los 5번 (wolfman) 풀이 쿼리를 해석해 보면 기존의 쿼리와 동일한데 공백을 필터링 하고있습니다.그러므로 공백을 우회 해야하는 문제 입니다. 공백을 위회하는 방법은 google에 검색 해보시면 여러 방식이 있습니다.대표적으로 + 가 있는데요 +는 해봤는데 안되더라구여 제가 성공했던 방법은 %09입니다%09는 hex로 tab 을 의미합니다.공백이 space만 되는 걸로 저는 생각했는데 ㅎ 텝도 되는 거 같습니다. (pw=-1 ' or id='admin) pw=-1%27%09or%09id=%27admin 공백을 %09로 바꾸어준 것입니다. 2016. 11. 22.
los orc los 4번 orc 문제 풀이 이번 문제는 블라인드 인젝션 문제입니다. php를 보면, 필터는 많이 없습니다. 크게 신경 쓰지 않아도 됩니다.첫 번째 query를 보면 id=admin pw=$_GET[pw]를 받아 반환 값이있으면 id 를 출력 해줍니다. 또한 진짜 일치하는 비밀 번호를 입력해야 하는 조건이 있습니다.(result['pw']) && (&result['pw']==$_GET['pw'])) 블라인드 인젝션인지도 모르고 많이 헤매인거 같습니다. 이 문제에서 사용할 블라인드 인젝션은 %를 사용합니다. %는 뒤에 어떤 문자가 상관 없이 select 해줍니다. select id from prob_orc where id='admin' and pw='1' or id='admin' and pw = '2%'.. 2016. 11. 22.
los goblin los 3번 goblin 풀이 preg_match 를 확인해 보면 ',",`,i 를 사용 못한다고 나와 있습니다.이 문제에 대해서는 id 값에 admin을 입력해야 하는데 ' 와 " 가 필터링에 걸립니다. id 값의 value가 숫자가 안기 때문에 ' 가 필요합니다. 여기서 제가 사용한 방법은 admin을 hex로 변경하여 넘겨주는 방법입니다. hex로 넘겨줄 때에는 0x를 꼭 붙여야 합니다.hex 값으로 넘겨주면 문자 admin 을 의미합니다.그러므로 ' 혹은 "를 입력하지 않아도 문자로 판단 하는 것입니다. 2016. 11. 22.