关于注入攻击案例中的问题

关于注入攻击案例中的问题

在讲解注入攻击案例时,一开始使用了加号来拼接字符串,不会因为单引号或双引号而导致无法正确解析SQL吗
http://img1.sycdn.imooc.com//climg/5f5b3e35084bf2ab07480360.jpg
本来的SQL语句,应该是username="1 or 1=1",直接加上去,"1 or 1=1"的双引号不就相当于没有了吗,变成select count(*) from t_user where username=1 or 1=1,虽然说不影响结果,因为1是数字,username=1依然可以执行,正常情况下要怎么写呢,正常传入一个用户名,如admin?用加号的话,不用%s

注入攻击是不是要先知道表名以及字段啊?如果表名不被知道,注入攻击的风险也会降低一点?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕元宝 2020-09-11 18:06:59

同学你好:

1、python中单双引号都是字符串不作为特别区分,同学所说的正常情况是指正常查询username语句吗?可以传入一个用户明admin,username="admin"代表查询username为admin的语句,但是对于sql注入攻击老师讲解的就是最常用的方式。

2、同学理解是正确的,是需要知道表名的

如果我的回答解决了同学的疑惑,欢迎采纳,祝同学学习愉快!

  • 提问者 慕粉4079888 #1
    但是正常的应该是username ="admin",admin是要用双引号的,比如,如果在navicat中不用双引号标识,就是当成字段,不是这样吗
    2020-09-11 18:36:19
  • 好帮手慕元宝 回复 提问者 慕粉4079888 #2
    是的同学,同学理解是正常的,为同学点赞! 祝学习愉快!
    2020-09-11 18:51:50
  • 提问者 慕粉4079888 回复 好帮手慕元宝 #3
    所以,如果要用加号来拼接SQL语句,要变成"select count(*) from t_user where username='"+username+"';",这样吗?单双引号嵌套?没有其他办法吗?
    2020-09-11 18:54:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师