想在access中建一个查询使用时,在苐一列录入“凭单号”数据然后第二列能从“数据表”的“凭单号”字段查找对应的记录,然后后面的列能同时列出同一记录的其他芓段值。现在的问题是因初学,不知道第一列和第二列要如何设置请高手指点!
版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
3、参考下面附录b中的常用的一些表名与列名
5.猜解用户名和密码长度
(TOP表示把最前面的一条记录提取出来;N为变换猜解的列长度页面错误即说明该列长度为N)
则表示admin表中name字段的第一条记录的长度是6。
猜解每一位数据ascii码语句:
asc函数的功能是将字符转换成ascii碼
mid函数的功能是截取 admin字段值的字串。从第一位开始截取的长度为1.这句话的意思是猜测第一个字的ascii码是否大于0,若返回正常就继续猜
對照ascii码为结果d,然后再继续猜后面几位、密码为:admin
因为MD5的密文长度通常有16位、18位、32位、40位等几种,所以猜解密码的时候试一试15、16、17、18、31、32、39、40等长度可以加快猜解进度
另外一种access注入方式:
1.猜字段:猜字段就是看他一张表里有多少个列,语句为order by +数字
如果猜对了页面正常显示(只要猜嘚数量少于实际数就会正常猜的数量大于实际数就会报错),如果没猜对就会出错
如果大于实际的数据的话就会报错:
使用union语句下面会囿介绍
如果少一个或多一个null就会报错
2.猜表名:猜表名是根据字段的多少来进行的,语句为union select 12.... from一个表名
UNION 操作符用于合并两个或多个 SELECT 语句的结果集、基本语法如下:
如果应用程序返回了第一条查询得到的数据,我们就可以在第一条查询后面注入一个UNION运算符来添加一个任意查询來提取数据,是不是很容易啊当然在使用UNION之前我们必须要满足两个条件:
? 两个查询返回的列数必须相同
? 两个查询语句对于列返回的數据类型必须相同
请注意:UNION 内部的 SELECT 语句必须拥有相同数量的列、列也必须拥有相似的数据类型、同时、每条 SELECT 语句中的列的顺序必须相同、默认地、UNION 操作符选取不同的值、即UNION是去了重复的、如果允许重复的值、请使用 UNION ALL。
得到上面的表字段数之和就可以猜表名了
如果输入一个不存在的表名就会报错
如果输入一个存在的就不会报错
通过null查出来的表、不会显示、两个uion之后、前一条语句是否有第二条语句共同的字段、通过数字的形式可以查询共同的字段如
得到两个数字3,15说明admin表中有两个和前面语句列表相同的字段
把上面得到的那两个数字中替换成表中嘚用户名与密码字段名
输入一个存在的列名就不会报错
然后去猜密码列名把15那个位置替换成密码列名