#每日三件事,第1074天#
sql注入这种漏洞越来越少,但掌握sql注入漏洞的利用还是非常有必要的,万一遇到了呢?就算实际工作中遇不到sql注入,但是在各种网络安全的比赛中,sql注入还是经常遇到的一个大题。
sql注入最重要的就是能够正确的闭合后台的sql语句。
什么意思呢?我们在前段的各种输入,最后都会被后台处理后执行。正确的闭合,就是能够让我们构造的sql语句被后台数据库服务器执行。sql注入的基础就是我们构造的sql语句能够执行。如果我们构造的sql语句不能被数据库执行的话,sql注入也就到此为止了。
闭合方式的话,首先要猜测的闭合方式,比如单引号、双引号之类的。接下来要处理多余的这个符号,当然这个符号是后台sql语句带来的。后面这个符号要么使用相同的符号去和它闭合,要么就是用注释符直接干掉它。
使用原来的符号闭合的话,前面需要个逻辑运算的“或”,用or或者||都有机会。使用注释符的话,方式就比较多,有“-- ”和“#”。如果系统过滤了空格的话,可以使用“--+”或者“--%20”。需要用各种符号去测试。
当然,如果是盲注的话,困难要多一些。
当我们构造的语句可以被执行之后,后面的事儿也相对简单些。无非就是过滤了各种关键字,想办法绕过吧。比如双写,大小写混、url编码等。万里长征也就开始了第二步。“select”如果被彻底过滤的话,sql注入基本也就到此为止了。因为要查数据库的表名,不用“select”的话基本没法进行。
另外就是加密或者编码,不过数据库系统可能识别不了,如果可以识别的话,就会别有洞天、发现一个新世界了。
网友评论