SQL注入漏洞之布尔(Boolean)注入
学习SQL注入首先要对一些常见的SQL语法有一定的了解,这样我们在使用SQL注入漏洞攻击对方时才能游刃有余。
SQL注入原理:SQL注入之所以得以存在主要是因为WEB应用程序对用户输入的数据没有进行有效的判断和过滤,从而导致用户的恶意SQL语句从前端传到后端,最后实现了对数据的窃取和破环。
首先要实现SQL注入漏洞必须要满足一定的条件。其一,前端传到后端的数据内容是用户可以控制的,如果这些数据不是用户可以控制的话SQL注入漏洞就无从谈起。其二:用户输入的参数可以拼接的SQL语句中,并且可以被执行。
Boolean注入:
- 找到注入点判断注入点是字符类型还是整型。我在之前的文章中已经详细谈到这里就不在赘述。https://blog.csdn.net/m0_71109835/article/details/128828073?spm=1001.2014.3001.5502
2.当我们输入id=1 和id=100 页面之返回存在或不存在的提示,我们得到的信息很少。这和之前的联合注入有很大的不同。
3.此时我们无法得到数据库的相关信息只能逐个试探,我们先使用
1' and length(database())>=3 --
来判断数据库的长度。最终通过调整参数确定数据库名字长度为4。
5.在得知数据库名字长度后,我们可以用穷举的方法猜测出数据库的名字。
1' and substr(database(),1,1)='a' #
如果采用此方法效率太低。这里我们使用Burpsuit暴力破解。读者可自行学习Burpsuit工具,这里就不详述。
- 以此类推我们可以爆破表名和字段名。
1' and substr((select table_name from information_schema.tables where table_schema='dvwa' limit 0,1) ,1,1)='g' #
注:
·本文所有演示均为本地虚拟环境,讲解只是为了读者更好地理解漏洞原理,以达到保护信息安全的目的,请勿用于非法用途!
·严禁利用本文中所提到的技术和漏洞进行非法攻击,否则后果自负,作者将不承担任何责任!
版权归原作者 security~ 所有, 如有侵权,请联系我们删除。