一、SQL注入
1.SQL注入的概念和原理
概念:
SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
原理:
SQL注入攻击的原理是利用应用程序没有对用户输入进行充分验证和过滤,直接将用户输入的数据拼接到SQL查询语句中。攻击者可以通过构造恶意输入来改变SQL查询的逻辑,从而执行非授权的操作。
2.SQL注入进行攻击的方法
1.通过改变URL进行注入:
攻击者可能会在查询字符串中插入额外的SQL语句。
2.通过表单提交进行注入:
攻击者可以在表单输入中提交恶意SQL代码。例如,在用户名字段中输入:
3.通过注释进行注入:
攻击者可以使用--
注释掉后续的SQL语句。例如:
二、SQL注入实验
此实验需用到DVWA(Damn Vulnerable Web Application)。DVWA是randomstorm的一个开源项目。一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
1.实验步骤
1、打开SQL Injection界面,该界面的功能是通过输入User ID查询Username。
2、输入1提交,将正常返回查询结果。
3、输入1’提交,将返回一个错误。
4、猜测使用的sql语句可能是:select First name and Surname from 表名 where id=‘输入的id’。
5、输入1’ union select 1,database()#提交,得到数据库名称。
6、输入1’ union select 1,table_name from information_schema.tables where table_schema=‘dvwa’ #得到数据库中的表名。
7、输入1’ union select 1,column_name from information_schema.columns where table_name=‘users’#,得到users表的列名。
8、输入1’ union select 1,concat(user,password) from users#,得到users表的所有用户名和密码。
2.结果
找到SQL Injection界面,在User ID那输入要求字符串,例如下面的结果:(列举三个仅供参考)
步骤2:输入1
步骤3:输入1’
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.youkuaiyun.com/topics/618653875)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!