1、实质

MySql语句是用户自行拼接的字符串

2、例子

import pymysql
# 获取用户输入信息
username = input("请输入用户名:")
pwd = input("请输入密码:")
# 连接数据库
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='@WSX3edc',
database='userinfo',
charset='utf8'
)
# 获取光标
cursor = conn.cursor()
sql = "select * from info where name='%s' and password='%s';" % (username, pwd)
# 执行MySql语句
print(sql)
ret = cursor.execute(sql)
if ret:
print("登录成功!")
else:
print("登录失败!")
# 关闭光标
cursor.close()
# 关闭连接
conn.close()

注入语句

输入语句
losser' or 1=1 #
输出sql语句
select * from info where name='losser' or 1=1 #' and password='';
注意:我这里用pycharm连接MySql,在pycharm中sql语句的注释是:#
如果不通过pycharm连接数据库,而是直接通过pymysql连接 注释应该是: --
select * from info where name='losser' or 1=1
1=1为永真语句
#' and password='';

3、解决注入问题->通过pymysql模块进行字符拼接

import pymysql
# 获取用户输入信息
username = input("请输入用户名:")
password = input("请输入密码:")
# 连接数据库
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='@WSX3edc',
database='userinfo',
charset='utf8'
)
# 获取光标
cursor = conn.cursor()
# sql语句
sql = 'select * from info where name=%s and password=%s;'
# 执行sql语句,通过pymysql进行sql语句拼接
ret = cursor.execute(sql, [username, password])
if ret:
print("登录成功!")
else:
print("登录失败!")
# 关闭光标
cursor.close()
# 关闭连接
conn.close()

mysql 注入问题的更多相关文章

  1. MySQL注入与防御(排版清晰内容有条理)

    为何我要在题目中明确排版清晰以及内容有条理呢? 因为我在搜相关SQL注入的随笔博客的时候,看到好多好多都是页面超级混乱的.亲爱的园友们,日后不管写博客文章还是平时写的各类文章也要多个心眼,好好注意一下 ...

  2. Mysql注入小tips --持续更新中

    学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...

  3. 史上最完整的MySQL注入

    原文作者: Insider 免责声明:本教程仅用于教育目的,以保护您自己的SQL注释代码. 在阅读本教程后,您必须对任何行动承担全部责任. 0x00 ~ 背景 这篇文章题目为“为新手完成MySQL注入 ...

  4. MySQL注入技巧性研究

    0x00 前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,本人最近针对MySQL注入做了 ...

  5. 【mysql注入】mysql注入点的技巧整合利用

    [mysql注入]mysql注入点的技巧整合利用 本文转自:i春秋社区 前言: 渗透测试所遇的情况瞬息万变,以不变应万变无谓是经验与技巧的整合 简介: 如下 mysql注入点如果权限较高的话,再知道w ...

  6. 【sql注入教程】mysql注入直接getshell

    Mysql注入直接getshell的条件相对来说比较苛刻点把 1:要知道网站绝对路径,可以通过报错,phpinfo界面,404界面等一些方式知道 2:gpc没有开启,开启了单引号被转义了,语句就不能正 ...

  7. MySQL注入与防御

    1.简介 1.1.含义 在一个应用中,数据的安全无疑是最重要的.数据的最终归宿都是数据库,因此如何保证数据库不被恶意攻击者入侵是一项重要且严肃的问题! SQL注入作为一种很流行的攻击手段,一直以来都受 ...

  8. [转载] MySQL 注入攻击与防御

    MySQL 注入攻击与防御 2017-04-21 16:19:3454921次阅读0     作者:rootclay 预估稿费:500RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页 ...

  9. MYSQL注入天书之开天辟地

    MYSQL注入天书 在线版本:xianzhi.aliyun.com 第一篇地址:https://xianzhi.aliyun.com/forum/read/314.html第二篇地址:https:// ...

  10. MYSQL注入天书之基础知识

    第一部分/page-1 Basic Challenges Background-1 基础知识 此处介绍一些mysql注入的一些基础知识. (1)注入的分类---仁者见仁,智者见智. 下面这个是阿德玛表 ...

随机推荐

  1. P1077 旅行

    题目描述 你要进行一个行程为7000KM的旅行,现在沿途有些汽车旅馆,为了安全起见,每天晚上都不开车,住在汽车旅馆,你手里现在已经有一个旅馆列表,用离起点的距离来标识,如下: 0, 990, 1010 ...

  2. H3C IPv6地址分类

  3. P1007 N钱M鸡问题

    题目描述 已知公鸡 \(5\) 元钱一只,母鸡 \(3\) 元钱一只,小鸡 \(3\) 只 \(1\) 元钱. 告诉你一个整数 \(n(1 \le n \le 1000)\) ,你现在要花 \(n\) ...

  4. H3C 递归查询

  5. linux 读者/写者自旋锁

    内核提供了一个自旋锁的读者/写者形式, 直接模仿我们在本章前面见到的读者/写者旗标. 这些锁允许任何数目的读者同时进入临界区, 但是写者必须是排他的存取. 读者写者锁有 一个类型 rwlock_t, ...

  6. linux 禁止所有中断

    如果你需要禁止所有中断如何? 在 2.6 内核, 可能关闭在当前处理器上所有中断处理, 使用任一个下面 2 个函数(定义在 <asm/system.h>): void local_irq_ ...

  7. ZR并查集专题

    ZR并查集专题 并查集,作为一个基础算法,对于初学者来说,下面的代码是维护连通性的利器 return fa[x] == x ? x : fa[x] = getf(fa[x]); 所以,但是这对并查集的 ...

  8. openwrt上wifi探针的实现----mt7620a+rt2860v2

    openwrt上wifi探针的实现----mt7620a+rt2860v2 [摘要:甚么是wifi探针 看到探针,感到很矮小上的模样,实在便是经过wifi汇集经由那个AP局限的脚机的mac地点,出有甚 ...

  9. ideaic快捷键

    Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论.每个人都有自己的最爱,想排出个理想的榜单还真是困难.以前也整理过Intellij的快捷键,这次就按 ...

  10. 【Ubuntu】16.04网卡信息配置

    ①查看操作系统版本信息: ②查看网卡信息 输入ifconfig命令查看网卡信息,下图enp0s25就是网卡名称. ifconfig ③配置网卡文件 注意:不同的linux系统,网卡配置文件是不同的,这 ...