简介:在漏洞盒子挖洞已经有一段时间了,虽说还不是大佬,但技术也有所进步,安全行业就是这样,只有自己动手去做,才能将理论的知识变为个人的经验。本篇文章打算分享一下我在挖union型SQL注入漏洞过程中的一些个人理解,如有不足也请大佬不吝指教。
0x00:什么是SQL注入
SQL注入,相信大多数人一开始接触安全,听说的第一种漏洞类型就会是SQL注入,众所周知,其本质就是将用户输入的数据当成了SQL语句来执行。
开发过网站的朋友应该都清楚,大多数的小型企业或个人的站点大都采用了LAMP结构,即Linux + Apache + MySQL + PHP
,当然还有一些其它常见的技术如下表:
操作系统 | Web服务器 | 数据库 | 编程语言 |
---|---|---|---|
Linux | Apache | MySQL | PHP |
Windows Server | Nginx | Oracle | JSP |
Tomcat | SQL Server | ASP | |
Python |
总的来说,绝大多数网站都采用了动态Web开发技术,而动态Web开发离不开数据库,如果没有处理好这两者之间的关系,那么SQL注入就会随之而来了。
举例来说,当我们想要通过参数id来获取相对应的新闻时,整个过程简单来说就是用户通过URL请求新闻–>后台通过用户请求去数据库查询相对应的新闻–>将查询到的新闻回传给用户。在第二步查询相对应的新闻时,后台会执行SQL语句来查询,就像SELECT * FROM news WHERE id=''
,id的值是用户来控制的,当id=1时,就会返回id=1的新闻,id=2时返回id=2的新闻,以此类推,就可以动态的控制web界面了。
这时,当用户输入的id值不正确时,后台就无法获取相对