一、课程名称:模糊查询&堆叠注入&宽字节注入
二、课程内容
堆叠注入
遇到注⼊点在结尾的,那么可以进⾏堆叠注⼊测试
在SQL中,分号(;)是⽤来表示⼀条sql语句的结束。试想⼀下我们在 ; 结束⼀个sql语句后继续构造下⼀条语句,会不会⼀起执⾏?因此这个想法也就造就了堆叠注⼊。⽽union injection(联合注⼊)也是将两条语句合并在⼀起,两者之间有什么区别么?区别就在于union 或者union all执⾏的语句类型是有限的,可以⽤来执⾏查询语句,⽽堆叠注⼊可以执⾏的是任意的语句。例如以下这个例⼦。⽤户输⼊:1; DELETE FROM products服务器端⽣成的sql语句为: Select * from products where productid=1;DELETE FROM products当执⾏查询后,第⼀条显示查询信息,第⼆条则将整个表进⾏删除。
mysqli_query()只能执⾏⼀条SQL语句,如果这需要执⾏多条SQL语句,就需要使⽤mysqli_multi_query()⽅法,mysqli_multi_query()可以执⾏多条SQL语句,如果后端代码使⽤这个⽅法去执⾏SQL语句,我们就可以利⽤堆叠注⼊获取后台数据库的信息。
堆叠注入前可以先用报错注入或者联合注入查出库名表名等,然后再用堆叠注入增加数据删除数据
宽字节注入
当某字符的⼤⼩为⼀个字节时,称其字符为窄字节当某字符的⼤⼩为两个字节时,称其字符为宽字节。所有英⽂默认占⼀个字节,汉字占两个字节。
前提数据库编码得是 gbk 编码
当传递⼀个参数id=1‘得时候,当我们输⼊这个单引号,会被认为是⾮法字符,会被过滤函数添加“\”给过滤掉,所以我们想要程序接受我们传递得参数中包含单引号,那么就需要把这个转义字符“\”⼲掉\ 斜杆的编码为 %5c
WEB渗透测试工程师系统班250303期 第15节课作业 1. 实际操作课堂讲解的yakit sql注入靶场,截图 2. 堆叠注入的原理是什么 在SQL中,分号(;)是⽤来表示⼀条sql语句的结束。试想⼀下我们在 ; 结束⼀个sql语句后继续构造下⼀条语句,会不会⼀起执⾏?因此这个想法也就造就了堆叠注⼊。 3. 堆叠注入的利用场景是什么 注入点再结尾的,可以利用堆叠注入 4. 宽字节注入的原理是什么 当某字符的⼤⼩为⼀个字节时,称其字符为窄字节当某字符的⼤⼩为两个字节时,称其字符为宽字节。所有英⽂默认占⼀个字节,汉字占两个字节。 5. 实操sqli靶场36关宽字节注入
|