lord of sql45 LOS : cthulhu, death, godzilla, cyclops 해당 4개의 문제는 모두 bypass the WAF문제입니다. 또한 모두 약한 필터링을 하므로 WAF를 우회하는 방법만 알고 있으면 아주 쉽게 풀 수 있는 문제들이 입니다. cthulhu 문제를 보면 맨 위에 어떤 WAF를 사용하는지 알려줍니다. (ModSecurity Core Rule Set v3.1.0을 사용합니다.) ModSecurity Core Rule Set v3.1.0 취약점, ModSecurity Core Rule Set v3.1.0 우회하기, ModSecurity Core Rule Set v3.1.0 bypass 등등을 검색하면 쉽게 우회하는 방법에 대하여 정보를 쉽게 구할 수 있습니다. 정보 출처 : github.com/SpiderLabs/owasp-modsecurity-crs/issue.. 2020. 11. 5. LOS : alien 상당히 깁니다. 해석하면 다음과 같습니다. 필터링 1. admin => 0x61646d696e 로 우회 가능합니다. 2. if, case => 조건절을 사용할 수 없습니다. 3. and , or => %26%26(&&), || 로 우회 가능합니다. 4. time => 처음 보는 필터링입니다. 문제 요구 조건 쿼리를 총 4번 실행합니다. 첫 번째 실행결과 : admin 이여야 합니다. 두 번째 실행결과 : admin 아니 여야 합니다. 세 번째 실행결과 : admin 아니 여야 합니다. 마지막 실행결과 : admin 이여야 합니다. 이는 같은 no의 값을 가지고 쿼리를 실행하는데 결과가 매번 바뀌어야 합니다. 즉, 조건문 없이 출력하는 결과 값이 달라야 합니다. 또한 query와 query2의 차이를 보면.. 2020. 11. 4. LOS : zombie 문제를 보니 ouroboros 문제와 아주 유사한 형태의 코드입니다. 필터링을 보니 _ 대신 ace가 필터링되는 것을 확인할 수 있습니다. ace로 통하여 replace 함수가 필터링되는 것을 확인할 수 있습니다. 즉, 이 문제는 ouroboros에서 언급한 information_schema db의 processlist table의 info 컬럼을 사용하면 됩니다. information_schema.processlist.info => 해당 컬럼은 현재 수행중인 쿼리가 저장됩니다. 따라서 substr함수를 이용하여 필요한 부분만 union하면 쉽게 quine이 완성할 수있습니다. 페이로드 : ?pw=' union select substr(info,38,70) from information_schema.pr.. 2020. 11. 4. LOS : ouroboros 필터링을 보았을 때 아주 간단해 보입니다. ?pw=' or 1=1--+- 통하여 쉽게 pw 값을 구하지 않을까 싶었습니다. 이 처럼 아무것도 출력되지 않는 것을 확인할 수 있습니다. 이를 통하여 빈 table이라고 판단하였습니다. 따라서 해당 문제는 입력한 pw의 값과 쿼리의 실행결과가 같야 합니다. 떠오르는 것은 quine이었습니다. (quine : 입력 없이 자기자신의 소스 코드를 출력하는 프로그램을 의미합니다.) information_schema db의 processlsit table의 infor 칼럼을 사용하면 될 거라고 생각하였지만 _가 필터링되어있습니다. 따라서 mysql quine을 검색하니 substr함수를 이용하여 quine을 만들 수 있었습니다. 페이로드 : ' union select .. 2020. 11. 4. 이전 1 2 3 4 5 6 7 ··· 12 다음