渗透测试为什么要重基础、重实践?

我以SQL注入举例,将问题分为两个部分,先说为什么重基础。

延迟注入中对于mysql数据库可以使用sleep(),判断是否存在SQL注入。

请注意,只是判断是否存在SQL注入。如果需要获取信息,例如数据库名等,还需要和SQL语句配合。

基本的判断:www.xxx.com/a.php?id=1 sleep(5)

如果数据库执行的是 select …… from table where id='1' ,这个最基本判断的就会变成 www.xxx.com/a.php?id=1' sleep(5)。

如果想猜数据库名长度www.xxx.com/a.php?id=1' select if(length(database())=8,sleep(5),0x22)  

如果想要更复杂的变形,肯定是需要牢固的mysql基础,除非只你想先查手册。

然后为什么重实践?

在实际中可能存在很多防护,从而影响常规的SQL注入。

比如说系统过滤',这种过滤很常见。

需要根据系统过滤'的不同方法,来进行绕过。宽字节注入就是个不错的例子。

原文地址:https://www.cnblogs.com/MiWhite/p/6233871.html