通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 红客教程 >> 网络攻防 >> 文章正文
SQL注射漏洞的成因及修补
责任编辑:酷酷の鱼   更新日期:2008-3-18
 
文章首发IT168安全频道[safe.it168.com]转载请著名

作者:伤心的鱼

IT168 专稿】最近笔者的朋友接到一个网站的生意,说是给别人做了一个网站, 怕程序出问题。让笔者帮忙检测一下有没有什么注射或者上传之类的漏洞。没有的话就可以交差了。因为只是针对网站来检测漏洞,所以也不需要去旁注或者ARP 什么的。首先打开域名 hxxp://www.target.com/ 打看后一个就知道这程序肯定不是笔者朋友本人写的,好象是什么程序改的,但是又看不出来。打开一个连接随手加个单引号,返回错误了。如图1

Microsoft JET Database Engine 错误 '80040e14';字符串的语法错误;在查询表达式 'ID=16'' 中。/viewInfo_c.asp行318,从这个错误提示我们能看出下面几点:
1、网站使用的是Access数据库,通过JET引擎连接数据库,而不是通过ODBC。
2、程序没有判断客户端提交的数据是否符合程序要求。
3、该SQL语句所查询的表中有一名为ID的字段。
不过看到这小网站就知道不可能是sql server了,google一下才找到43个连接,用SQL是小题大做了点。我们继续。马上and 1=1=2发现返回页面不一样,可以注射。既然知道了是ACCESS那就只能通过来猜解管理员的密码来登陆后台了 ,继续使用 And (Select Count(*) from Admin)>=0 页面返回正常说明存在admin表,这就更加确定这程序不是他本人写的了。因为除了网上公布的些开放原码 很少有程序员用admin做为存放管理员密码的表,知道了admin表就继续猜字段吧。一般来说这样的程序用的字段无非这几个:username; password;id;userid;user_password;pwd;name;userpwd,所以猜这样的字段非常容易。语句一复制,挨个试就好了。猜了半天,发现admin表里存在username;password;id三个字段。很明显username 跟password是存放管理员用户名与密码的。 继续猜 and (select top 1 len(username) from Admin)>0。先说下原理:如果top 1的username长度大于0,则条件成立;接着就是>1、>2、>3这样测试下去,一直到条件不成立为止,比如>7成立,>8不成立,就是len(username)=8 这个在IT168安全频道的SQL 注射教程里有详细解释,可以多去看看,学习一下。这里猜密码的过程我就不详细写了,给大家贴一个地址,非常经典的SQL注射教程。
SQL注入天书:
http://publish.it168.com/2006/0224/20060224026802.shtml
经过笔者一个小时猜解终于,猜到用户为admin,字段5嘛,肯定是他啦。密码得出的MD5为dc3972bc43b78eea。通过在破解MD5值,密码为CAASD。既然知道密码了就去找后台吧,笔者自己以前收集了一个脚本,就是记录了大概几百个后台地址。遇到一个没见过的就加上虽然现在记不起那么多,但是一些常用的还是记得的。比如admin.asp; admin/admin.asp;admin_admin.asp;Admin_Login.asp;admin/admin_login.asp等等几个,这里就不写了。经过笔者一个个测试确定网站的后台地址为admin_login.asp。如图2

进到后台可以看到网站物理路径为f:\usr\cwd7197\,IIS版本 Microsoft-IIS/5.0,是windows200的机器。
组件支持有关参数
数据库(ADO)支持: √ (支持)
FSO文本读写: √ (支持)
Stream文件流: √ (支持)
Jmail组件支持: √ (支持)
CDONTS组件支持: √ (支持) 粗略的看了下后台支持的东西不多,但是功能还算强大 如图3

在上传那里笔者发网站使用了一个类似ewebeditor的编辑器,但是又不太像。于是准备确定一下,如果是ewebeditor的话拿到SHELL的机率就更大了。
看到图3有的朋友可能会说,网站后台不是有数据库备份么?为什么不使用呢?其实因为我们是为了挖掘漏洞而来的,使用数据库备份虽然是最快速得到WEBSHELL的方法,但是这样就不知道服务器是否还存在别的漏洞
笔者在本地写一个一句话 <%execute request("fish")%>然后保存为1.rar,尝试进行上传,因为ewebeditor在线文本编辑编辑器显示RAR文件是相对路径比较清晰,所以一般都是通过上传RAR文件来探测ewebeditor编辑器的地址。在添加新闻那里点添加新信息,然后选择本地文件点上传就OK 了,但是在上传的时候却提示拒绝该后缀文件。如图4

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 最近更新
    固顶文章 Delphi编程培训班开课了
    普通文章 瑞星公司03月18日发布 每日计算机病毒及木马播报
    普通文章 木马病毒的六种启动方式,你中过几个?
    普通文章 系统安全至上 剿清删不掉的DLL木马
    普通文章 浅谈Vista中IIS 7.0的3个常见问题
    推荐文章 推荐:磁碟机病毒木马猖獗 教你应对方法
    普通文章 走近Linux防护 铲除病毒两大威胁!
    普通文章 教您识别非法进程及手工杀毒技巧
    普通文章 SQL注射漏洞的成因及修补
    普通文章 "磁碟机"病毒狂袭企业网络 危害是熊猫烧香10倍
    热门文章
    普通文章浅析:以策略遵从为核心的终端安全
    普通文章如何使用FreeBSD防火墙保护企业网络
    推荐文章推荐:别以为你的电脑很安全(附BS马夫解决方案)
    普通文章从攻击者角度来阐述如何防御黑客攻击
    普通文章企业焦点 主动防御能否保障安全
    普通文章网络四面楚歌 杀毒软件遭遇严峻考验
    普通文章艳照暗藏陷阱 看艳照当心密码被盗
    普通文章微软宣布IE8将全面兼容通用网络标准
    普通文章金山预警:"狂犬病"肆虐互联网
    普通文章病毒假冒“百度HI”传播 江民发布专杀工具
    精彩专题