突破空格的限制

关于空格,有许多替换方式,比如TAB空格,SQL数据库中的/**/,但我又找到了另一种替换方式,已发表于《黑客手册》2006.7期中,这里挑其精华,现一下吧!

对于SQL语句,大家还都习惯于其的空格,比如select id from [name],如果中间没有了空格,那就成了selectidfrom[name], 一滩糊涂!除了上面所说到几个空格的替代方法外,我发现用()括号在SQL中一样可以运行,比如上面的语句,就可以写成,select(id)from[name],有括号分隔,可以正常执行。
举个例 子说一下,我们得到一个注入点:jmdcw.asp?name=aa'and 1=1 and ''=',如果替换其中的1=1为查询管理员的密码的语句:(select asc(mid(pass,1,1)) from [name] where id=1)>49。如何用空格呢?其实可以写成这样的:
jmdcw.asp?name=aa'and((select(asc(mid(pass,1,1)))from[name]where(id=1))>49)and''='
如果屏蔽了<和>符号,则用between…and…,语句是:
jmdcw.asp?name=aa'and((select(asc(mid(pass,1,1)))from[name]where(id=1))between(40)and(50))and''='

对于中间应该出现空格的地方,用()进行替换,不过,对于很复杂的SQL语句就不太好用了。上面说到的是字符型的,如果是数值型,可以在id=1后加一个括号,不过这个我没有测试,比如:jmdcw.asp?id=(1)and(select.....),应该是可行的吧?

呵呵,总结一下,和LOVESHELL上的朋友分享一下。

(0)

相关推荐

  • 突破空格的限制

    关于空格,有许多替换方式,比如TAB空格,SQL数据库中的/**/,但我又找到了另一种替换方式,已发表于<黑客手册>2006.7期中,这里挑其精华,现一下吧! 对于SQL语句,大家还都习惯于其的空格,比如select id from [name],如果中间没有了空格,那就成了selectidfrom[name], 一滩糊涂!除了上面所说到几个空格的替代方法外,我发现用()括号在SQL中一样可以运行,比如上面的语句,就可以写成,select(id)from[name],有括号分隔,可以正常执行.

  • 完美解决UI-Grid表格元素中多个空格显示为一个空格的问题

    UI-Grid中表格数据中如果存在多个连续的空格,会显示为一个空格,解决方法很简单,只需要加上这样一个样式: .ui-grid-cell-contents { white-space: pre !important; } white-space 属性设置如何处理元素内的空白. pre:  空白会被浏览器保留.其行为方式类似 HTML 中的 <pre> 标签. 以上这篇完美解决UI-Grid表格元素中多个空格显示为一个空格的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多

  • IOS判断字符串是否有空格实例

    以下是自己封装的一个方法,可以根据返回的bool值进行判断 实例代码 -(BOOL)isEmpty:(NSString *) str { NSRange range = [str rangeOfString:@" "]; if (range.location != NSNotFound) { return YES; //yes代表包含空格 }else { return NO; //反之 } } 小结 以上就是这篇文章的全部内容,希望对大家的开发和学习有一定的帮助,如果有问题大家可以留言

  • Perl删除前导和拖尾空白(删除左右空格、空白字符)

    其它一些编程语言中,有函数ltrim和rtrim分别用于从字符串开头和末尾删除空格和制表符. 也有的提供了函数trim来删除字符串两端的空白字符.Perl里没这些函数因为简单的正则表达式替换就能实现这个目的(不过我确信CPAN有很多模块实现了这些函数).事实上这太简单了以至于成了帕金森琐碎定理里的一个显著主题. 左侧整理 ltrim或者lstrip从字符串左侧删除空白字符: 复制代码 代码如下: $str =~ s/^\s+//; 从字符串开头^开始匹配一个或者多个空白字符(\s+),并将之替换

  • js trim函数 去空格函数与正则集锦

    但是如果项目没有用到jQuery等框架的话,js本身又没有这样的函数,我们不得不自己写这样的函数,下面是函数的具体实现: 复制代码 代码如下: //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" \t\n\r"); va

  • Web里URL空格的转换方法

    看URL是HttpUtility.UrlEncode将空格转换成了"+"号,原因找到就着手解决Bug.引用: 复制代码 代码如下: fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8); fileName = fileName.Replace("+", "%20"); 通过Replace替换解决,虽然问题解决了,但这并不是一个很好的方法,如果文件夹或文件名中包含"+"

  • 去掉字符串前后所有空格的正则表达式

    正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. /**去掉字符串前后所有空格*/ function trim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } //计算标题长度 funct

  • javascript将字符串中的多个空格替换为一个空格的正则实例

    javascript将字符串中的多个空格缩减为一个空格代码实例: 在实际应用中可能有这样的需求,那就是将字符串中的多个空格缩减为一个空格. 下面就是一段能够实现此功能的代码实例. 代码如下: //对字符串扩展 String.prototype.ResetBlank=function(){ var regEx = /\s+/g; return this.replace(regEx, ' '); }; var str="jb51.net is a good site"; console.l

  • 正则删除字符串左、右或两端的空格经验总结

    我们前端在与后台人员进行数据交互时,经常会碰到这样的情况,我们经常需要获取文本框中用户输入的信息,然后通过ajax或form提交到后台.但是在用户输入信息时,我们无法保证用户输入的数据两端都没有空格.当然这些空格一般情况下是毫无意义的,因此我们有必要在将数据传输到后台之前,消除数据两端的空格.为了保证通用性,针对左.右及左右两端的空格清除,下面都进行了列举. 1.消除字符串左边的空格 复制代码 代码如下: function leftTrim(str){ return str.replace(/^

  • js正则表达式实现数字每隔四位用空格分隔代码

    数字每隔四位用空格分隔代码实例: 分享一段代码实例,它实现了数字每隔四位就用空格分隔. 这样的效果在填写银行卡的时候十分常见,这也是非常人性化的举措. 代码实例如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>我们</title> <script src="http://libs.baidu.com/jquery/1.9.

随机推荐