SQL注入初探
灵魂三问
- 所有点都考虑到了吗
- 真的懂每一种注入原理了吗
- 真的会利用这种漏洞了吗
SQL注入
定义
通过将恶意的sql查询或添加语句插入到应用的输入参数中,再在后台sql服务器上解析执行进行的攻击
满足条件
- 要有参数值的传递(url的GET请求时、注册、留言板等)
- 参数值可控
- 带入数据库执行
威胁
- 猜解后台数据库
- 绕过认证,例如绕过验证登录网站后台
- 注入可以借助数据库的存储过程进行提权等操作(通过一句话写入shell)
常见的数据库介绍
access数据库
属于Microsoft公司,access只有一个库,若干张表,此数据库一般用于中小学网站。
查看access数据库
可以安装office套件进行查看、或通过别的工具:DbView、Easy Acess等
mysql数据库
两大特点:开源且免费
mssql数据库
安装教程:https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html
权限介绍:
- sa权限:数据库操作,文件管理,命令执行,注册表读取等
- db权限:文件管理数据库操作等
- public权限:数据库操作
补充说明:
sa权限相当于系统权限;db权限相当于超级管理员权限;public权限相当于测试账户
判断权限的语句
- and 1=(select is_srvrolemember('sysadmin'))
- and 1=(select is_srvrolemember('db_owner'))
- and 1=(select is_srvrolemember('public'))
oracle数据库
属于oricle公司,用于大型网站(一般物流和旅游网站)
postgresql数据库
在国外处于主流地位