본문 바로가기

Hacking/WebHacking.kr38

Webhacking.kr : old-03 (350pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. 간단한 노노그램 문제가 보입니다. 문제를 풀고 solved를 클릭하였습니다. log를 위하여 이름을 입력하는 하는 화면이 보입니다. 또한 매개변수가 생긴 것을 확인할 수 있습니다. F12 Elements 탭에서 코드를 확인하였습니다. index.php로 hidden으로 answer 값과 입력받은 id 값을 보냅니다. 입력한 이름값, hidden 값인 answer 값, ip 값이 출력해줍니다. 여기서 뭔가 sql injection 느낌을 받아서 name값에 여러 가지 시도를 하였습니다. '(싱글 쿼터), "(더블 쿼터)가 단순 문자열로 인식하였습니다. 따라서 해당 name 입력하는 부분에는 취약점을 찾기 힘들다고 판단하여 hidden 값으로 넘어갔습니다. 사.. 2021. 2. 27.
Webhacking.kr : old-49 (300 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> old-46와 마찬가지로 SQL INJECTION 문제입니다. 바로 source를 확인하였습니다. -> lv에 다양한 필터링이 결려있습니다. -> 쿼리의 결과가 admin이면 해결되는 문제입니다. -> select가 필터링되어 있으므로 테이블에 id가 admin인 데이터가 존재합니다. 쿼리를 where lv=-1 or id='admin'으로 맞추면 문제를 해결할 수 있습니다. 1. '(싱글 쿼터), "(더블 쿼터)를 필터링합니다. 따라서 문자열을 16진수로 표현하면 됩니다. 2. or이 필터링되므로 || 로 대체할 수 있습니다. 3. (), 공백, 탭이 필터링되므로 공백 우회 기법인 Line Feed(\n, %0a)를 사용하면 됩니다. payload .. 2021. 2. 12.
Webhacking.kr : old-46 (300 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> SQL INJECTION 문제입니다. 바로 source를 확인하였습니다. -> lv를 다양하게 필터링하는 것을 확인할 수 있습니다. -> 코드를 보면 쿼리의 결과 id가 admin이면 문제를 해결할 수 있습니다. -> select가 필터링되어 테이블 자체에 id가 admin인 데이터가 존재하는 것을 알 수 있습니다. 따라서 쿼리를 lv = -1 or id = 'admin' 식으로 쿼리를 완성하면 문제를 해결할 수 있습니다. '(싱글 쿼터), "(더블 쿼터), 0x, 공백을 필터링합니다. ()를 필터링하지 않으므로 char함수를 사용하여 admin 문자열을 만들 수 있습니다. ex) char(97, 100) = 'ad' payload : ?lv=(-1).. 2021. 2. 12.
Webhacking.kr : old-11 (300 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> Wrong이라는 문자열과 함께 source가 주어집니다. 바로 source를 확인하였습니다. -> val의 값이 pat에 해당하는 패턴에 preg_match에 걸리면 문제가 해결됩니다. (즉, 정규표현식을 이해하는 문제입니다. -> 정규 표현식이 잘 정리된 사이트 : hamait.tistory.com/342 정규표현식 (Regex) 정리 정규표현식은 아주 가끔 쓰기때문에 항상 다시 볼때마다 헥깔리곤 하는데.. 주요 사용예를 정리하여 보았다. 나중에 찾아보기 편하라고~ 정규 표현식의 용어들 정규 표현식에서 사용되는 기호 hamait.tistory.com 패턴 : [1-3][a-f]{5}_.*my_ip.*\tp\ta\ts\ts [1-3] : 1 ~ 3 사.. 2021. 2. 11.