Python MySQL注入
2021/5/18 19:25:39
本文主要是介绍Python MySQL注入,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一
利用SQL “#” 的注释功能更改原SQL语句来实现
存在SQL注入问题的代码:
#! /usr/bin/python3 # -*- encoding:utf8 -*- import pymysql import hashlib dbserver = input('输入服务器地址:') username = input('请输入用户帐号:') passwd = input('请输入帐号密码:') dbname = input('输入数据库名:') # 使用md5进行明文密码加密 md5 = hashlib.md5() md5.update(passwd.encode('utf8')) passwd = md5.hexdigest() sql = 'select * from user where name = "%s" and passwd = "%s";' % (username,passwd) db = pymysql.connect( host=dbserver, user=username, passwd=passwd, database=dbname ) cursor = db.cursor() cursor.execute(sql) result = cursor.fetchall() if not result: print('用户名密码不匹配') else: print('欢迎{}回来,你的信息是:\n{}'.format(username, result))
SQL注入问题修正
#! /usr/bin/python3 # -*- encoding:utf8 -*- import pymysql import hashlib dbserver = input('输入服务器地址:') username = input('请输入用户帐号:') password = input('请输入帐号密码:') dbname = input('输入数据库名:') # 使用md5进行明文密码加密 md5 = hashlib.md5() md5.update(password.encode('utf8')) password = md5.hexdigest() sql = 'select * from user where name = %s and passwd = %s;' print(sql.format(username, password)) db = pymysql.connect( host=dbserver, user=username', passwd=password, database=dbname ) cursor = db.cursor() print(password) cursor.execute(sql, (username, password)) result = cursor.fetchall() if not result: print('用户名密码不匹配') else: print('欢迎{}回来,你的信息是:\n{}'.format(username, result))
这篇关于Python MySQL注入的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享