【题目讲解】初步认识SQL注入 my-first-sqli

【题目讲解】初步认识SQL注入 my-first-sqli

题目详解

题目涉及的知识点:一个基础的sql注入语句

题目链接:my-first-sqli – Bugku CTF

根据这道题,你将学会什么是基础的sql注入。(好奇心强的你将可以自行研究深入理解sql注入的原理与过程,后续涉及到的复杂知识点我可能会进行单独扩展来讲)

image

这道题提示你这是个注入题,那么将打开网站进行第一步

image

你会发现这是一个登录界面,只要输入账号密码就行了,英语好的你们我就不进行翻译了

第一步:账号输入admin‘,密码随便输入。(来进行判断是否存在注入)

image

image

你会发现返回一个语法错误,这时说明存在一个逻辑型可注入点SQL注入是一种利用Web应用程序对数据库进行未授权访问的技术。攻击者通过在Web表单或其他输入字段中插入或“注入”SQL查询,从而欺骗应用程序执行非预期的数据库命令。

第二步:根据逻辑型语法输入账户处输入 admin’ or 1=1 –+

image

点击确认

image

这个就是你想要的答案辣!!!

接下来分析SQL语句“’admin’ or 1=1 –+”

  • ‘admin’ 是一个用户名,攻击者假设“admin”是管理员的用户名。
  • or 1=1 是一个逻辑短路,因为 1=1 总是真的,所以 username=’admin’ or 1=1 总是成立。这意味着无论用户名是什么,这个条件都会被满足。
  • –+ 在SQL中表示注释的开始。在SQL查询中,– 之后的任何内容都会被视为注释,从而忽略后面的SQL代码。在某些情况下,+ 可能是为了防止URL编码时–被转换为%2D%2D,这是一种简单的绕过输入过滤的方法。

例如,如果一个Web应用程序构建了一个SQL查询如下:

SELECT * FROM users WHERE username = ‘[用户输入]AND password = ‘[用户输入]

攻击者可以输入 ‘admin’ or 1=1 –+ 作为用户名,那么实际的查询会变成:

SELECT * FROM users WHERE username = ‘admin‘ or 1=1 –‘ AND password = ‘[用户输入]’(橙色这个是因为被注入了‘- -‘导致‘- -‘后面视为注释)

由于 1=1 总是成立,这个查询将返回数据库中所有用户的信息,从而绕过了密码验证。

作者的话:相信你对sql注入有了一点初步的理解,如果对sql感兴趣你可以去寻找资料进行全面的学习。

THE END
想说的话 1  QQ & 微信交流群: 点击查看加群方式
2  网站运营艰难(亏损严重),以真心❤️换真心💕,如果帮助到你,可以 推荐给朋友 或者 开通金贝会员 支持一下本站!
3  请不要进行任何非授权的网络攻击,如果造成任何损失均由使用者本人负责,与本站和原作者无关!
点赞91 分享
茶谈区 抢沙发

请登录后发表评论

    暂无评论内容