SQL注入(万能密码)

浅浅地练习一下sql注入简单版,永真公式。

SQL注入概述:

SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)

攻击:

点击链接进入网页,出现登录页面
在这里插入图片描述
尝试一下,万能密码admin’ or 1=1 – ,密码随便填。
在这里插入图片描述
OK,成功。
在这里插入图片描述
还有一种方式:
Kali里面的sqlmap来跑一下。首先网站页面是一个登录页面,是使用post来传输数据的。先用bp来抓一个包。
在这里插入图片描述
从图中我们知道了POST传输的数据的格式username=[表单内容]&password=[表达内容]
使用Kali的sqlmap,因为是post请求,所以要在使用’–data=提交的数据’,就会以post的方式来探测。探测结果如下:
在这里插入图片描述
查询数据库users:sqlmap -u “url” --data=“” --users
在这里插入图片描述
然后爆数据名,爆表,爆列。

原理:

由于是在靶场中进行的,就可以将源码拿出来看一看。
在这里插入图片描述
定义俩个POST参数
$ xx=$ _POST[‘username’];
$ yy=$ _POST[‘password’];
将两个POST的内容传入sql语句执行,再将结果返回来,查询的结果row>0就可以了。
$ result = mysql_query(“select * from user where name=‘$ xx’ and pwd =‘$ yy’”);
但是如果我们在传入的参数里面使用admin’ or 1=1 – ,–是注释标记,传进去就会将语句改变成select * from user where name='admin’ or 1=1 –
,后面的内容已经被–注释掉了,所以随便写都行。因为有or 1=1,这个一定是正确的,那执行的结果肯定也是正确的,就满足$row>0的条件。就被绕过了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值