Los

Web Hacking/LOS

Lord of SQL Injection - nessie

이번에는 mssql 환경의 문제이다. 필터링에서 'master' 문자열이 있는 것으로 보아 메타데이터를 사용할 수 없게 만들었다. 강력한 무기가 사라졌다. 그러나 코드를 약간만 더 읽다보면 첫 번째 paragraph 끝 줄에 Error Page 로 exit 시키는 코드라인이 있다. Error-Based SQL Injection 을 수행하면 될 것 같다. 또한 solve 하기 위해서는 admin의 pw도 구해야 한다. Blind SQL Injection 도 수행해야할 것 같다. 일단 오류 페이지가 어떻게 생겼는지 보자. Solution #1 id=' id 에 싱글쿼터(')만을 던져주었다. Error 메세지의 상태를 보아하니 어느 부분에서 오류가 발생하였는지 아주 자세하게 알려주고 있다. 이번에는 문제의 정..

Web Hacking/LOS

Lord of SQL Injection - yeti

'waitfor' 이라는 문자열의 필터링이 사라졌다. Time Based SQL Injection 을 수행하면 될 것 같다. MSSQL 에서는 sleep 함수 대신에 waitfor dealy 문을 사용한다고 한다. pw=' or id='admin' and iif(len(pw)>0,waitfor delay '00:00:02',1)-- waitfor delay 는 명령어이기 때문에 iif 조건문에 들어가지 않는 것 같다. 일반 if 조건문으로 exploit 코드를 짜면 될 것 같다. import requests import time requests.packages.urllib3.disable_warnings() org_url = "https://los.rubiya.kr/chall/yeti_e6afc70b89..

Web Hacking/LOS

Lord of SQL Injection - mummy

필터링에서 괄호와 슬래시를 사용하지 못하게 막아놨다. 또한 query 에서 0x01 ~ 0x20 값이 인식되면 exit 된다. 이번에는 신기하게 query 전체를 내가 구성할 수 있게 되었다. 공백을 우회하는 문제와 Blind SQL Injection 문제가 융합된 형식인 것 같다. $result[0] 이 무슨 의미인지 궁금해서 sqlsrv_fetch_array 함수의 return 값을 검색해 보았다. success 할 경우에는 나오는 데이터를 array 형식으로 return 하고, fail 한다면 NULL 값을 반환한다. query 자체를 참으로만 만들면 'Hello anonymous'라는 문자열이 출력된다. 간단한 문제인 것 같다. 앞선 문제에서 column 명이 특수문자를 포함하거나 숫자로 시작할 ..

Web Hacking/LOS

Lord of SQL Injection - siren

mongo db 가 한 번 더 등장해주었다. Blind SQL Injection 을 수행해야 한다. 저번 연산자 중에서 하나 빼먹은 것이 있다. '$regex' 라는 친구다. 이 친구는 정규표현식을 이용하여 원하는 데이터와 비교할 수 있다. 자세한 내용은 아래에서 볼 수 있다. https://docs.mongodb.com/manual/reference/operator/query/regex/ MySQL에서는 like 문을 사용할 때, 'a'로 시작하는 문자열을 'a%'과 같이 작성하였다. NoSQL 에서는 정규표현식을 이용, 즉 '^a' 가 된다. 이외에도 위 문서를 보면 '$'는 특정 문자로 끝나는 문자열을 나타내기도 한다. 간단하게 테스트를 하나 해보자. 굳이 안 해도 되지만. id=admin&pw[$..

Lucvs
'Los' 태그의 글 목록