하는 SQLMaps 변조 스크립트 개발 (바이 패스 IPS)

우선 먼저 어떤 라이브러리 또는 알고리즘을 호출하는 SQLMaps 변조 종속성이없는 경우 확인하기 위해 두 개의 변조 스크립트를 비교 제공됩니다.

변조는 우리가 개발 한 있도록 가져온 후 스크립트의 함수를 호출하는 것입니다 이러한 호출로 변조 스크립트는 사용하는 함수 호출을 가져야한다 주로 알고리즘 오른쪽 케케을보고

base64encode.py에서 살펴 보자

# !는 / usr / 빈 / ENV 파이썬

"" "
저작권 (C) 2006-2019하는 SQLMaps 개발자 (http://sqlmap.org/)
복사 권한에 대한 파일 '라이센스'를 참조하십시오
"" "

에서 lib.core.convert 수입 encodeBase64
 에서 lib.core.enums의 수입 PRIORITY

__priority__ = PRIORITY.LOW

DEF 종속성 () :
     패스

데프 변조 (페이로드, ** kwargs로) :
     "" "
    주어진 페이로드에있는 모든 문자를 Base64로는-인코딩

    >>> 탬퍼 ( '1'AND SLEEP (5) # ")
    'MScgQU5EIFNMRUVQKDUpIw =='
    "" "

    반환 encodeBase64 (페이로드, 이진은 거짓 =) 의 경우 페이로드 다른 페이로드

charencode.py에서 봐

# !는 / usr / 빈 / ENV 파이썬

"" "
저작권 (C) 2006-2019하는 SQLMaps 개발자 (http://sqlmap.org/)
복사 권한에 대한 파일 '라이센스'를 참조하십시오
"" "

수입 문자열

에서 lib.core.enums의 수입 PRIORITY

__priority__ = PRIORITY.LOWEST

DEF 종속성 () :
     패스

데프 변조 (페이로드, ** kwargs로) :
     "" "
    주어진 페이로드에있는 모든 캐릭터 (이미 부호화 처리하고 있지 () -> % 53 % 45 %도 4c % 45 % 43 % 54 예 SELECT) URL은 부호화하여

    에 대한 테스트 :
        * 마이크로 소프트 SQL 서버 2005
        * MySQL은 4, 5.0 및 5.5
        * 오라클 10g
        * PostgreSQL의 8.3, 8.4, 9.0

    노트:
        * 그 룰 통해 처리하기 전에하지 URL 디코드에게 요청을 우회 미약 웹 어플리케이션 방화벽 유용
        * 웹 서버 어쨌든 따라서는 어떤 DBMS에 반대한다, 뒤에 URL 복호화 된 버전을 전달합니다

    >>> 탬퍼 ( '% 20TABLE FROM SELECT FIELD')
    '% 53 % 45 %도 4c % 45 % 43 % 54 % 20 % 46 % 49 % 45 %도 4c % 44 % 20 % 46 % 52 % 4F % 4D % 20 % 54 % 41 % 42 % (c)의 45 % "
    "" "

    RETVAL = 페이

    경우 페이로드 :
        RETVAL = "" 
        나는 = 0

        반면 I < 렌 (페이로드)
             의 경우 페이로드 [I] == ' % '   (I <렌 (페이로드) - 2)  페이로드 [I + 1 + I 2 에서 string.hexdigits  페이로드 [내가 + 2 : 나 3] + 에서 string.hexdigits :
                RETVAL + = 페이로드 [I : I + 3 ]
                에서 + 3 =
             유무 :
                RETVAL + = " %%%. 2X ' %의 워드 (페이로드 [I])
                I + = 1

    반환 RETVAL

우리는 몇 가지 일반적인 스크립트가있는 것을 발견

1. 우선 라이브러리가 라이브러리에 도입하는 것은 lib.core.enums 모듈, 참조에서 우선 순위를 보인다

에서 lib.core.enums의 수입 PRIORITY

2. __priority__ 상기 우선 순위 속성을 정의하는 변수를 할당하는 기준

에서 base64encode.py

__priority__ = PRIORITY.LOW

에서 charencode.py

__priority__ = PRIORITY.LOWEST

3. 함수 본체 패스, 참조하는 함수 의존성이라는 코드를 정의

DEF 종속성 () :
     패스

4.라는 함수를 정의 탬퍼, 함수는 두 개의 변수, 페이로드를 수신하고, 페이로드를 처리하지 않은, 키 파라미터를 수신하는 ** kwargs로 - 배열의 값

우리는 페이로드를받은 후 처리 적절한 알고리즘을 수행 한 후, 반환 페이로드는 잘 처리 할 수 ​​있습니다

공통 작성 및 예시에 따라, 다음과 같습니다 :

# !를 / usr / 빈 / ENV 파이썬 
에서 lib.core.enums 가져 오기 우선
 __priority__ = PRIORITY.LOW # 여기에서 당신은 당신의 자신의 우선 순위를 정의 할 수 있습니다
 DEF 종속성 () :
     패스 
DEF 탬퍼 (페이로드, ** kwargs로) :
     반환  #의 후 처리 문자열 페이로드

무단 변경 디렉토리에 작성하는하는 SQLMaps 수 있습니다 후

추천

출처www.cnblogs.com/V-Sec/p/12050605.html