'Limit'에 해당되는 글 2건

반응형

0. 개요

가끔 난이도 높은 SQL injection 문제에서 where 키워드가 필터링될 경우가 존재한다.

이럴 때 해당 기법을 이용해서 필터를 우회할 수 있다.


일단 다음과 같이 test2 테이블에서 flag가 123123인 id 값을 원한다고 가정하자.

이것에 대한 쿼리를 작성하면 다음과 같다.

select id from test2 where flag=123123;


여기서 where가 필터링되었을 때 다음과 같이 작성하면 비슷한 결과가 출력된다.

(같지 않고 비슷하다는 것은 아래 좀 더 자세히 설명하겠다)

select if(flag=123123,id,null) from test2;


실제 출력 결과를 확인해보자.


출력 결과를 확인해보면 where 절을 이용하였을 때는 정확히 해당 조건에 맞는 row의 id만 출력되는 것을 볼 수 있는 반면, if 구문을 이용한 경우에는 나머지 데이터들이 조건에 맞지 않아 null이 출력됨을 확인할 수 있다.


이러한 이유로 인해 이전에 결과가 동일하지 않고 비슷하다고 한 것이다.


1. 활용

그렇다면 해당 기법을 어떤 식으로 이용해야 할까?


1) 데이터 수 확인

 : 아래 출력 결과를 보면 where 절을 이용한 것과 if 구문을 이용한 것의 count 결과가 동일하게 1건이라고 출력됨을 볼 수 있다.

이를 통해 우리가 원하는 데이터가 몇 개 있는지 알 수 있다.



2) 데이터 추출

 : 실제 데이터는 다음과 같이 MAX와 같은 함수를 이용하여 출력시키거나 limit keyword를 이용하여 원하는 데이터를 찾을 수 있다.




반응형
블로그 이미지

rootable

,

HTTP 인증 우회

Hacking/Web 2019. 12. 16. 18:58
반응형

1. HTTP 인증 설정

 (1) /etc/apache2/apache2.conf 내 AllowOverride를 None에서 AuthConfig 수정

 (2) [htpasswd -cb .htpasswd (아이디) (패스워드)] 명령어를 통해 .htpasswd 파일 생성

 (3) .htaccess 파일에 아래와 같이 입력

AuthUserFile /var/www/html/.htpasswd

AuthName "Protected Area"

AuthType Basic


<Limit GET POST>

Require valid-user

</Limit>


2. HTTP 인증 우회

 - 설정을 완료할 경우 아래와 같이 해당 디렉토리 내의 파일에 접근할 경우 로그인을 진행해야 한다.


 - 하지만 아래와 같이 지정되어있는 메소드가 아닌 Method로 요청을 보내면 인증을 우회하여 접근 불가능한 페이지에 접근이 가능하다.


3. 대응방안

 - /etc/apache2/apache2.conf 내 AllowOverride를 AuthConfig에서 All로 변경 (이후 service apache2 reload)

 - .htaccess 파일 내 아래의 내용을 추가해준다. 그 결과 GET과 POST를 제외한 다른 메소드의 경우 접근이 제한되어 Forbidden이 된다.

...


<LimitExcept GET POST>

        Order Allow,Deny

        Deny from all

</LimitExcept>


...



※ 에러 체크

htaccess:  order not allowed here


만약 htaccess 설정하였는데 500 Internal Server Error가 뜰 경우는 apache2.conf의 AllowOverride가 수정되지 않았기 때문이다. All로 변경한 뒤 apache2 서비스를 reload해주어야 정상적으로 작동한다.


※ 참고

https://httpd.apache.org/docs/2.4/mod/overrides.html

반응형

'Hacking > Web' 카테고리의 다른 글

open_basedir setting and bypass  (0) 2019.12.31
Sqlite Sql Injection Prevention  (0) 2019.12.30
데이터 평문전송 대응방안  (2) 2019.12.06
0.0.0.0 의 의미  (0) 2019.11.20
Mysql Special Comment  (0) 2019.11.20
블로그 이미지

rootable

,