Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3036377
  • 博文数量: 167
  • 博客积分: 613
  • 博客等级: 中士
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-13 21:35
个人简介

人, 既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,无他,唯智慧耳。

文章分类
文章存档

2015年(19)

2014年(70)

2013年(54)

2012年(14)

2011年(10)

分类: 网络与安全

2014-05-21 13:35:45

      虽然这段时间没有来写博客,但是自己也没有闲着,先是处理各种工作和生活的事情,然后近一周都在学习SQL注入。自己之前算有些SQL的基础,但是真的尝试对一个站进行注入尝试的时候,才发现是处处碰壁,开始的时候只是针对着Login界面使劲,后来看了些网上的资料,可以针对asp\php\jsp等页面也可以进行,于是又接连换了三家网站作为注入尝试的目标,但是都没有能够成功。今天又是捣鼓了一个上午,按照网上的教程一点一点学着试,虽然还没有注入成功,但是来记录下自己的尝试过程吧!
     首先我们的目标是一家医疗站点,之前曾经对其的Login页面进行过SqlMap扫描,没有成功;这次是针对其一般的asp页面进行的注入尝试,为了安全考虑,下面的网址中隐去了域名的关键信息。
Step-1:
     首先随意找到一个含有id参数项的页面,如某科室的介绍页面:www.***com/data/section.asp?id=14,在其后输入“and 1=1”和“and 1=2”进行尝试,发现页面显示会有差异:1=1时没有了文字介绍,1=2时文字和图片介绍都没有了,于是感觉这个页面没有对于用户输入进行严格的过滤,存在注入的可能;
Step-2:
     判断是什么数据库类型呢?一般asp会搭配Access和SQL Server数据库,自己使用网上介绍的特有数据表方法进行测试,排除了SQL Server数据库,那么很有可能是一个Access数据库,另外在语句后面进行注释符的测试,发现“--”是错误的,而NULL即%00可以使用,也提示我们后台很有可能是一个Access数据库;
Step-3:
     接下来开始猜测可能的表、列,自己使用的式子如下:
>>***id=14 and exists (select * from admin),结果同1=1时,判断存在admin表;
>>***id=14 and (select count(name) from admin ) > 0,结果同1=1,判断存在name列,同样可得判断存在id列;
Step-4:
     猜测字段值,首先是name的值的长度:
>>***.id=14 and (select top 1 len(name) from admin) >>***.id=14 and (select top 1 abs(asc(mid(name, 1, 1)))) from admin) >?,通过不断尝试数值,最后确定为10795;Access的用户名经常会出现汉字,因此其ASC值为负数,所以abs()取其绝对值,然而汉字编码中并没有这么大的汉字....
     自己猜测可能用户名为“管理员”,但是不晓得下一步该如何进行,自己也尝试了联合查询union select 1,2,3 from admin,但是返回的都是错误。
     盲注果然是个体力活!自己是不是应该再次考虑下借助工具呢?
阅读(6363) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

windhawkgyang2014-05-22 14:46:41

jizhiwang:汉字是双字节编码,3个字节不会是汉字,判断第一个字节,不会大于256,你判断是10795肯定有问题

嗯 的确 我昨天下午使用SqlMap重新扫了一下 发现了一个masterdb数据库 里面只找到了张表admin 但是admin里只有id\job\content三个字段,类似于下面的格式:
1  主任医师  毕业经历等等 这样的描述表格 没有找到用户密码的表 SqlMap扫不到 莫非把主表改名了?

回复 | 举报

jizhiwang2014-05-22 09:42:03

汉字是双字节编码,3个字节不会是汉字,判断第一个字节,不会大于256,你判断是10795肯定有问题