SQL 注入入门理解笔记

绕过来绕过去,还是躲不掉查询

查询的账号不要给root账号,也不要轻易给权限,依我个人理解一网站一数据库一账号较为稳妥

知识回顾,预备:

  1. 单行注释
#这是个单行注释
-- 这也是个单行注释
  1. 数据库里的infomation_schema是什么?

里面存着你数据库所有信息

schemate表记录着数据库的名称

table记录着表名

columns记录着对应的列名,后面的table_schema记录着数据库名,table_name为表名

在SQLi-labs了解SQL注入

Less-1


注意到这里是直接用GET的传输方式,我们可以清楚的看到传了一个叫id为1的数据

我们也可以就浏览器的开发者工具查看传了什么数据

是的,就是id为1的数据

我们不妨给id加点菜 ( ̄y▽, ̄)╭

加个点会发生什么呢?

欸?报错了?

看看报错语句,原来是点重复了,可以判定这个id传的数据周围可能有两个点

给这个id再加点菜

成了,竟然没有报错

我们不妨看看此时id传输了什么

这时候传了个叫1’ and ‘1’='1的id.

我相信学过编程的同学可能会心一笑了,没学过编程的和还是不清楚的同学也不要着急

我们现在不妨看看源代码

我我们注意到 $sql 后面的语句

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

是的,我们的id就是交给数据库来处理的

id里面是什么,只要没有字符审查的,他可管不了这么多了,直接填进去就完事了

我们给这个代码改一下

  	echo $sql; //直接看看sql字符串输出了什么

我们再刷新下网页


此时sql语句就在显示出来了

SELECT * FROM users WHERE id='1' and '1'='1' LIMIT 0,1

我们直接去后台数据库管理界面会输出什么吧

诶,正好和网页对上了

通过上面操作,是不是有点明白数据库注入是什么了呢?

如果没有严格的字符审查机制,那么就很容易改动我们写好的数据库语句.

你可能会说,这个有啥好可怕的呢?这你也只是查了单个数据库里的语句啊

不要着急,这只是开胃小菜.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值