Web Hacking

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[$..

Web Hacking/LOS

Lord of SQL Injection - revenant

이번에도 mssql 환경이다. 필터링은 이전 문제와 비슷한 것 같다. Error 처리하는 부분이 있어서 이번 문제도 Error Based SQL Injection 일 수도 있겠다. 마지막 solve 부분에 다음과 같은 주석이 달려있다. // you have to pwn 5th column 우리가 원하는 pw 값은 테이블의 5번째 열에 있는 것 같다. 5번째 열의 이름을 반드시 알아내야만 한다. 우선 가장 중요한 점은 query 의 select 뒤에 *(asterisk)가 있다는 것이다. 모든 column 의 데이터를 뽑겠다는 것이다. 또한 group by 를 이용하여 데이터들을 그룹화하여 뽑아낼 때 흔히 범하는 실수들이 있다. group by 를 쓰겠다는 이야기는 select 로 선택한 column 들에..

Lucvs
'Web Hacking' 카테고리의 글 목록 (2 Page)