关于注入攻击的问题

关于注入攻击的问题

课堂中演示的注入攻击前提是知道用户名、密码等连接信息。

那么连接之后的注入攻击实质上和正常查询有什么区别呢?(可能是我还没有太理解注入攻击的含义)

正在回答

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

1回答

同学,你好!

1、注入攻击前提可以不知道用户名和密码,可以直接在传递参数的时候在参数上做变化,如:1 OR 1=1,这样1=1永远成立,即验证成功,是可以看到所有信息的,如下图

https://img1.sycdn.imooc.com//climg/6131880509cf937e08490787.jpg

2、正常查询只会查询出where条件中字段对应值的记录,如下图

https://img1.sycdn.imooc.com//climg/61318aaa09d2db7108270351.jpg

祝学习愉快!

  • 坻屿 提问者 #1

    可是这样的情况的前提不也是需要通过

    con.mysql.connector.connect(……)

    去创建mysql的连接吗?

    我的意思是既然都已经能通过mysql的各种host、port、user、password、database参数连接到了mysql,那这种情况下注入攻击似乎没有什么特殊的存在意义?(直接用sql语句查询不数据就好了吗)

    2021-09-03 11:05:18
  • 好帮手慕念 回复 提问者 坻屿 #2

    同学,你好!

    1、注入攻击是从正常的前台页面通过对页面请求访问时的操作,不需要用管理员身份进入数据库,就和登录网站一样,直接输入用户名和密码就可以了,可参考下图的代码与终端结果会更好理解一些

    https://img1.sycdn.imooc.com//climg/61319e980916933f08200801.jpg

    2、课程中讲解的是比较简单的注入攻击,老师主要演示用户名1 OR 1=1以及密码1 OR 1=1的情况下,可以获取到所有的用户数据,实际上用户数据不应该被获取到,因此要预防SQL注入攻击

    祝学习愉快!

    2021-09-03 12:03:49
  • config = {
        :,
        :,
        :,
        :,
        :}

    如果这个config里面的user和password 是错的,那执行后面的这一串username="1 or 1=1"还有用吗?我看视频理解的就是我已经先连接上了这个库了,那我后面查什么不都查出来了吗。

    2022-01-05 16:20:18
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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