本文章仅供学习和参考!
欢迎交流~
一、实验题目:字符型注入(GET)
二、环境准备:
漏洞练习平台:https://buuoj.cn/
三、实验过程:
1. 启动靶机:进入“buuctf”-->左边列表选择“Basic”-->右边选择“PikaChu”
2. 初始化安装:
3. 在左边列表选择“SQL-Inject”-->“字符型注入(get)”:
4. 尝试输入用户名“kobe”,可以看到数据库返回了一个用户信息:
当输入数据库中不存在的用户名时,会提示用户不存在。
5. 查询的用户名是字符串,根据数据库的查询语句尝试构造一个payload
命令:kobe' or 1=1#
查询结果如下:
可以发现数据库中的全部数据已经被取出,说明存在字符型注入漏洞。
四、实验总结:
1.SQL注入原理:
程序命令没能对用户输入的内容能作出正确的处理,导致执行非预期命令或访问数据,即接受的相关参数未经正确处理直接带入数据库进行查询操作。
2.SQL注入漏洞的产生满足两个条件:
(1)参数用户可控,即前段传给后端的参数内容是用户可以控制的
(2)参数带入数据库查询,即传入的参数拼接到SQL语句并带入数据库查询