0


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的条件。就被绕过了。

标签: sql 数据库 java

本文转载自: https://blog.csdn.net/qq_69432323/article/details/129517175
版权归原作者 祤域 所有, 如有侵权,请联系我们删除。

“SQL注入(万能密码)”的评论:

还没有评论