본문 바로가기

개발/Python

Python(파이썬)으로 blind sql 공격

blind sql은 쿼리의 에러를 웹페이지에서 확인할 수 없고

단순히 쿼리를 던져서 그 응답을 확인하는 것이다.

웹페이지는 참/거짓으로 반응할 것이다.

(예) 참일 경우 기존 데이터를 보여줄 것이고 거짓일 경우 아무런 데이터도 보여주지 않을 것이다.

 

좀더 빠르게 파이썬으로 구현할 경우

응답에 특이 문자열이 있다는 조건을 넣고

해당 조건이 나올 때 이 쿼리는 참이라고 생각하고

아닐 경우 거짓이라고 생각한다

 

1. 우선 로그인을 한후 세션을 생성한 뒤 넣어준다.

2. 프록시가 필요할 경우(버프에서 입력받고자할 경우) 주석을 풀어준다

3, 뭐든지 공격은 길이부터 알아야한다.

4. 여기서는 Get방식으로 통신한다.

5. 웹페이지의 검색어가 특수문자 입력제한으로 막혀있을 경우 기본적엔 테이블을 확인하자.

6. 예를들어 검색이 아닌 단순 게시판을 볼 경우 get 방식으로 다음과 같이 메시지를 날릴 수있다.

  'gubun=1&table=B'

5. 게시판번호가 1번이라는 뜻인데 이럴 때 이 사이에 공격코드를 넣어 디비정보를 확인한다.

   attackText = 'gubun=1+and+' + query + '&table=B'

6. 디비정보->테이블이름->칼럼이름->데이터어택땅!