我以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注入。
比如说系统过滤‘,这种过滤很常见。
需要根据系统过滤‘的不同方法,来进行绕过。宽字节注入就是个不错的例子。
时间: 2024-12-15 09:14:51