近期四六级成绩公布,有朋友想要查成绩却忘记准考证号,后来听宿舍一哥们儿说有软件可以只输入姓名,就可以进行查询,想一下可能是一些暴力匹配的原理,自己便尝试在web上直接进行重复匹配,发现同样也能有效,仅是不怎么方便罢了,稍微记录一下。
———————————————————————————————————————-----------------------------------------------
这是查成绩入口:
Form表单的提交常用无非GET/POST两种方式,这个是POST的提交。用户点击查询按钮后,数据通过POST方法传输到服务器,进行数据库的匹配,然后返回客户信息。那我可以截取中间HTTP数据。
输入测试数据
(相同学校的准考证号也就是后五位不同,分别对应3位考场号和2位的座号。
)
点击查询截取的数据是这样的
清晰看出数据传递方法POST,下面是两个FORM数据,ID和name
由于输入的是无效信息,当然得到界面为
对应Response 数据为
可见下面的4和这个错误的返回有一定关联。
知道以上情况,那就来个实例。网络中心一朋友的准考证号丢失了。我虽然确信他过不了,但是还想给他查查看(没错,我是好人)。
一、首先填写数据
点击查询后截取数据
二、然后进行设置变量
知道ID里面的后五位是变量,为了提高速度,设置两个变量,前三位是考场号,后两位是座号,又好像知道考场没超过100,所以直接用两位数当考场号了。
变量一范围 01-99
变量二范围 01-35 (印象中一个考场这么多人,忘了)
配置交替匹配。
三、进行重复提交
变量配置好后,就直接进行重复提交
比如这一段数据中
看到Payload 1 中是50+ 这是考场
后面Payload 2 是座号,依次进行匹配。
我们看到后面 length的长度都是203
展开一个response包查看一下
发现下面的那个 4 ,就是我们上面所说的那个错误信息相关代码,说明信息错误。
匹配过程中发现这样一个数据
长度不同,展开数据
发现response 和错误信息不同,那么说明这个就是得到的正确回复。
我们能看出来。
Payload 1 = 36 ( 考场号)
Payload 2 = 10 ( 座号)
知道信息后再次提交,就得到成绩了
果然没过!
——————————————————————————————————————_
这样看来,那些查询软件原理与这个应大同小异。只不过匹配查询消耗资源,本机上进行大量数据的匹配可能会耗费时间更长一些。而有专门的服务器进行软件的后台处理,相应效率也会提高很多。
在学习的过程中,养成发现问题,分析原理的好习惯,往往有所帮助。