본문 바로가기

computer27

[LOS] prob_giant LOS 14번 문제인 giant이다!드디어 블라인드를 벗어났따 이번엔 상당히 쉬워보인다. 쉼터 같았다. 곧바로 지나쳤다. 문제는 fromprob 사이의 공백을 만들어주어 띄워줘야 한다. from prob처럼 말이다. 받는 문자를 보면 길이가 1을 초과하면 안되며 개행 문자와 탭, 캐리지 리턴(Carriage return) 문자를 필터링한다.%0a는 \n에 해당한다. %0d는 캐리지 리턴이다. 따라서 사용할 수 없다.. 우리는 그래서 약간의 꼼수?를 사용해볼 것이다. 저기 보이는 form feed와 vertical tab이 있다. form feed는 뭔가 line feed와 비슷해보인다! form feed는 서식 문자의 하나로 프린터의 용지를 넘기는 역할을 한다고 한다. (자세히는 몰름) vertical .. 2018. 4. 30.
[LOS] prob_bugbear LOS 13번 문제인 bugbear이다!! 아니 근데 무슨 블라인드 SQL만 나옴미까!!!! 이번엔 상당히 많은 것을 필터링한다.substr, ascii, or, and, like 문자열0x, '(single quote), =(equals), 공백까지 필터링한다. 띠용- substr, ascii, or, and는 이전 문제에 사용했던 것들을 사용하면 된다.0x는 뭘 의미한 건지 아직 잘 모르겠다. 하지만 나는 이거 신경 쓰지 않고 풀었다.나중에 다시 풀어볼 때 알아봐야겠군.공백은 딱히 신경 안 써도 된다. 우리에겐 많은 해결법이 있으니! like는 어떻게 해야할까. 이퀄까지 필터링하니 어떻게 비교를 해야할까.작은 꺽쇠로 해도 되긴 하다. 만약 50이라면 pw < 51은 참이지만 pw < 50은 거짓이겠지.. 2018. 4. 30.
[LOS] prob_darkknight LOS 12번 문제인 darkknight이다!! 오, 검은색 박스를 입히니 조금 더 깔끔해보인다!음, 이번 문제는 조금 더 까다로워 보인다. 이것도 Blind SQL Injection으로 보인다!! 필터링 하는 것은' (single quote)와 =(equals) 그리고 substr, ascii 문자열 필터링하는 것으로 보인다. 흠싱글 쿼트는 괄호나 더블 쿼트를 사용해주면 될 것 같고이퀄은 like를 사용해주면 될 것 같다. substr은 이전 문제처럼 mid 함수를 사용하고ascii는 ord함수를 사용해볼 것이다!이번엔 pw에 값을 넣지 않을 것이다.풀어보면 알겠지만 저 쿼트를 닫아주는게 조금 까다롭다. 그러니 그냥 no에 보내보자~! 일단 길이를 구해보았다.기분탓인진 모르겠지만 여기까지 풀면서 느낀게.. 2018. 4. 30.
[LOS] prob_golem LOS 11번 문제인 golem이다. 이것도 Blind SQL Injection 문제인듯 싶다.여기서는 or, and, substr( 문자열과 = 기호를 필터링한다. 이전에도 사용했듯, or, and는 ||과 &&으로 사용해 볼 것이다.substr(을 필터링하니 그와 비슷한 특성(?)처럼 사용할 수 있는 mid() 함수를 사용해볼 것이다.그리고는 앞의 블라인으 SQL INJECTION 문제와 동일하게 풀면 된다! 일단 패스워드의 길이를 알아내야 한다.length(pw) like 8을 통해 패스워드의 길이는 8인 것을 알 수 있다. 좀 더 자세히 살펴보자면query : select id from prob_golem where id='guest' and pw='' || id like 'admin' && le.. 2018. 4. 30.
[LOS] prob_skeleton LOS 10번 문제인 skeleton이다.DB의 반환값 중 id가 admin이어야 한다는 것이다. 그런데 pw값만 받고 있고 맨 뒤의 쿼리에서는 and 1=0 으로 모든 값을 거짓으로 만들고 있다. 따라서 암만 앞에서 참을 만들어 주어도 저 쿼리는 반환값이 없을 것이다. 뒤의 문장을 지우는 것은 간단하다.. 이전에 사용했었던 그 주석을 그대로 써주자. ?pw=' or id='admin'%23여기서 뒤의 %23 은 #에 해당하는 URL ENCODE 값이다.주석 처리를 하면서 뒤의 and 1=0은 주석 처리가 된다. 아마 쿼리엔 아래와 같이 삽입될 것이다.select id from prob_skeleton where id='guest' and pw='' or id='admin' # ' and 1=0 결과는 .. 2018. 4. 28.
[LOS] prob_vampire LOS 9번 문제인 vampire이다.직전 문제는 ereg 함수에 대한 내용이었다.. 이번엔 str_replace 함수를 알고 있느냐가 문제이다. str_replace는 해당 문자열을 치환한다. 이 문제에서는 str_replace("admin", "", $_GET[id]); 이니 admin을 공란으로 치환한다는 것이다. 그런데 이전 ereg와 같이 str_replace는 대소문자를 구별한다. str_ireplace를 써야 대소문자를 구별하지 않는 거시다.. 그래서 id=Admin을 하면 쉽게 풀려버리는 것이다. 2018. 4. 28.