본문 바로가기

00./04. Python

SQL Injection을 위한 자동화 도구 (개발 중)

SQL Injection 공격의 취약성을 쉽게 발견하기 위한 자동화 도구


 개발 언어

 Python 

 버전

 v0.1

 기타

 개발 단계 



특정 파라미터에 다양한 특수 문자를 삽입하여 HTTP 패킷을 해당 공격 서버에 전송한다.

응답 받은 HTTP 패킷의 코드번호가 200인지 500인지 확인한다.


Method : Get 방식

특수 문자 : text 파일에 개별 저장




import sys

import urllib2


fileNM = "C:\Users\User\Desktop\quarry.txt"



addr = "http://10.1.1.3:10001"

vuln = "/db_p/board/list.php"


para = "b_name"


quarryList = []



def helpFunc():

    print '[+] Usage : python sqlInjectionGet [option]\n\n'

    exit()


def sqlInjection():

fop = open(fileNM, 'r')

for line in fop:

line = line.strip()

quarryList.append(line)

fop.close()


c = 0

while c < len(quarryList):

   url = addr + vuln + "?" + para + "=" + quarryList[c]

   response = urllib2.urlopen(url)

   response = response.read()

   response = response.find('500')

   if int(response)<0:

       print "200 correct"

   else:

       print "500 Error"

   c = c + 1




def main():

    if len(sys.argv) < 2:

        print '[-] How to use this python program. help -h '

        exit()

    elif sys.argv[1]=="-h":

        helpFunc()

        

    elif sys.argv[1]=="-I":

        sqlInjection()

        

    else:

        exit()

        


if __name__ == '__main__':

    main()

 




'00. > 04. Python' 카테고리의 다른 글

[python] Google SMTP를 이용하여 E-mail 전송  (0) 2014.03.17
python개발 Post MySQL Injection Tool v.01  (0) 2013.11.20
포트 스캐너  (0) 2013.09.04