设为首页
收藏本站
最新电影
> 子栏目 常用技巧 | 网络安全 | 网路工程
您现在的位置: 首页=>计算机技术=>网络安全 订阅本栏目  
SQL注入漏洞初级应用之Access篇
时间: 2007-09-28 11:50:14 阅读次数:5537

第 1 页 SQL注入漏洞初级应用之Access篇[1]
第 2 页 SQL注入漏洞初级应用之Access篇[2]

如果你已经掌握了SQL注入漏洞的一些相关的基础知识,那是不是觉得看了理论有一种想急于知道如何实际动手操作的冲动,好吧,Let’s go,这篇文章我们就来实战SQL注入,不过针对网站的数据库是ACCESS的,毕竟在国内都是用虚拟机,一般只有FTP上传权限,所以还是很有市场的 [table]


  首先要注意的是,如果你以前没试过SQL注入的话,那么第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息

  1.入侵测试目标:

  前不久我们学校的一个同学做了个网站,做的还挺漂亮的,叫我去看下,我顺便对它进行了一次安全检测文章发表前已经征得该同学的同意,请不要效仿下面的真实网址已经被我屏蔽飞飞Asp技术乐.园

  测试网站:http://www.xxx.com/index.asp

  2.寻找可能的SQL注入点

  我们知道,一般的文章管理系统,下载系统,论坛,留言本,相册等都会有个show.asp?id= list.asp?id= news.asp?id= 什么的,其实一看就知道是调用SQL语句查询数据库并显示出来我们不难发现这个站的新闻系统就是show.asp?id=的形式,随便点一个链接得到地址如下:

  http://www.xxx.com/show.asp?id=474

  从这个地址就知道是通过show.asp执行SQL语句访问数据库,可想而知,SQL语句原貌大致如下:

  select * from 表名 where 字段=xx,如果这个show.asp对后面的id整型参数过滤好的话,就可能存在SQL注入漏洞

  3.判断SQL注入是否存在

  通过上面的分析知道,要判断有没有SQL注入漏洞,就得看show.asp有没对参数过滤好,所以可以用以下步骤测试SQL注入是否存在

a.最简单的判断方法

  在要检测的网址后面加一个单引号:http://www.xxx.com /show.asp?id=474’

[table]
  此时show.asp中的SQL语句变成了:select * from 表名 where 字段=xx’,如果程序没有过滤好“’”的话,就会提示 show.asp运行异常;但这样的方法虽然很简单,但并不是最好的,因为:

  第一:不一定每台服务器的IIS都返回具体错误提示给客户端,如果程序中加了cint(参数)之类语句的话,SQL注入是不会成功的,但服务器同样会报错,具体提示信息为处理 URL 时服务器上出错请和系统管理员联络

  第二:由于以前存在过的1’ or ‘1’=’1漏洞,所以目前大多数程序员已经将“’“ 过滤掉,所以用" '"测试不到注入点,所以一般使用经典的1=1和1=2测试方法,如下:

  http://www.xxx.com /show.asp?id=474 and 1=1, show.asp运行正常,而且与http://www.xxx.com /show.asp?id=474运行结果相同,如图1:

  


  http://ww.xxx.com /show.asp?id=474 and 1=2, show.asp运行异常,(这就是经典的 1=1 1=2 判断方法)如图2:

  


  这里很明显当加 and 1=1 的时候返回完全正常的页面,加 and 1=2 显示:暂时还没有文章!

  到这里基本上可以断定他存在SQL注入,至于能不能注出账号密码来,还需要更进一步的注入测试,这里只能得到SQL注入点: http://www.xxx.com/show.asp?id=474

4.判断表是否存在

  国内的一般程序员在设计数据库的时候都会用一些特定的做为表名,字段名什么的比如说后台管理员一般放在表admin里面,而注册的用户放在表users里,当然,只是一般,依照各程序的不同而不同

  这个站是我同学自己写的,我还是先判断管理员表admin是否存在,在后面加上语句:and exists (select * from admin)变成http://www.xxx.com/show.asp?id=474 and exists (select * from admin)提交访问后返回的页面如图3:

  


  这就说明我猜的admin表名不存在,继续猜另外的名字,这里可以参考国内常见的程序的表名,比如:admin user vote manage users 会员 用户 管理员 admin_admin userinfo bbs news system等,这个站我最后猜到的是:users,语句:and exists (select * from users)

  5.进一步判断表里的字段是否存在

  判断字段id 是否存在,这个一般都有,自动编号如果存在了顺便猜一下管理员的id值

  判断存在语句:and exists(select id from users)

  判断编号语句:and exists(select id from users where id=1)

  一般管理员账号密码放在第一位,也就是id=1,如果不是就猜下去,猜id=2 猜id=3等啦

  由于这个站是自己写的代码,所以会有点不同,当判断是否不过你可以猜到他的对应的可能是userid,因为他表名取做user呀,把上面的id改为userid就返回了正常的页面,如图4:

  


  至于这个userid值为多少,同样猜,and exists(select userid where userid=1)改变1这个数字,一直猜到页面显示正常为止这里我猜到的是userid=11,如图5:

  
飞飞Asp技术乐~园飞飞Asp技术乐,园

  最后猜出这个继续猜出其它的字段,用户名字段最后为username,密码字段为userpwd,用到的语句分别为:and exists (select username from users)和and exists (select userpwd from users),这里就不抓图了



[上一页] [下一页]
站内搜索    

下一篇SQL注入攻击的原理及其防范措施

上一篇细说暴库的原理与方法

本栏目最新 栏目最新列表
windows7 巧用VHD格式加密文件夹,保护隐私
Windows 7使用 Bitlocker给“U盘/硬盘/SD卡
ESET(NOD32) ESS/EAV 4.0.437.0 BE 64位,支
ESET(NOD32) ESS/EAV 4.0.437.0 BE 32位 汉
P2P 终结者 4.06 LRLH 去广告最高优先权绿化
网站优化策划 栏目最新列表
增加网站外链的快速方法
网站上线前必做的30个检查
新的友情链接参考标准(没有google的PR情况
优化Google的AdSense广告的五个工具
王通讲SEO八大基础
站点最新 站点最新列表
微博推广的一些技巧
xhEditor v1.1.7 发布,
收集的一些轻量级非常实
50个新鲜兼容最新版本的
javascript中cookie的设
Excel中出现#VALUE!、#D
jquery插件:飞飞表情插件
十个使用HTML5开发的精彩
支持HTML5的浏览器有哪些
飞妮莫属:漫画:如何写出
历史最热10条信息  
MIME介绍 及 [1] [2] [3]
巧用Google和迅雷来下载
Transact SQL 常 [1] [2]
VIA Rhine II Fast Ethe
电脑常用端 [1] [2] [3]
Do you get a kick out
十道羊皮卷 欣赏+mp3版+
每日一句:A friend and
每日一句:Theres no tu
经典__悟透JavaScript
 width= 
伟哥博客 西安房产 123最新电影 三四六四