网站漏洞检测方法和系统的制作方法_3

文档序号:8223826阅读:来源:国知局
对于编码前的原码10101101,10111010,01110110要长一个字节,所以经过Base64编码后的网站链接,其长度要大于原码对应链接的长度。即Base64编码将每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个SBit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
[0091]因此可以指定一个预设长度,当网站链接的长度大于该预设长度,说明该链接有可能是Base64编码格式的链接。
[0092]另外,由于Base64编码格式的链接中一般不存在第一预设字符,例如参数间分隔符,具体可以是地址符&。所以当网站链接中不存在第一预设字符时,即可判定其可能为Base64编码格式的链接。
[0093]S13,若网站链接的长度大于预设长度,且网站链接中不存在第一预设字符,则判定网站链接为疑似链接,
[0094]其中,在判定网站链接为疑似链接后,对疑似链接进行解码。
[0095]通过上述两个条件进行判定,可以以较高的概率判定网站链接是否为疑似Base64编码格式的链接(虽然判定的结果仍可能包含非Base64编码格式的链接),而不符合上述两个条件的网站链接,则必然不是Base64编码格式的链接,因此可以通过上述两个判断条件快速缩小解码链接的范围,避免对非Base64编码格式的链接进行解码,节约系统资源。
[0096]如图3所示,优选地,获取待检测的网站链接(SI)包括:
[0097]S11’,确定待检测的网站,获取网站中待检测的网站链接;
[0098]S12’,判断网站链接中有效字符的数目是否为4的倍数,以及网站链接的末尾是否包含预设数目的第二预设字符;
[0099]如上述示例可知,通过Base64编码的数据或网站链接,最终得到的字符数为4的倍数,当然,也存在对原码转码后存在剩余字符的情况,则对于剩余的字符根据编码规则继续单独转,然后用等号(即第二预设字符)补满4个字节。这使得Base64编码会以一个或两个等号结束的原因,但等号最多只有两个。
[0100]S13’,若网站链接中有效字符的数目为4的倍数,且网站链接的末尾包含预设数目的第二预设字符,则判定网站链接为疑似链接,
[0101 ] 其中,在判定网站链接为疑似链接后,对疑似链接进行解码。
[0102]由于绝大多数Base64编码格式的链接都符合网站链接中有效字符的数目为4的倍数,以及网站链接的末尾包含O至3个等号这两个条件,因此可以根据这两个条件准确判定网站链接是否为Base64编码格式的链接,从而快速缩小解码链接的范围,避免对非Base64编码格式的链接进行解码,节约系统资源。
[0103]需要说明的是,等号仅是本实施中第二预设字符的一种具体示例,实际操作中,可以根据Base64编码数据的具体应用系统环境来确定第二预设字符。
[0104]优选地,获取待检测的网站链接还包括:
[0105]判断解码后的链接中是否存在第一预设字符;
[0106]若解码后的链接中存在第一预设字符,则将解码后的链接作为网站链接。
[0107]为了进一步准确地判断疑似链接是否为Base64格式的网站链接,可以在解码疑似链接后,判断解码后的网站链接中是否包含第一预设字符。由于链接中一般具有地址符,而经过Base64编码的链接具有不可读性,即编码将地址符转换为其他形式,使得所编码的数据不会被人用肉眼所直接看到,在解码后地址符重新体现在连接中,因此可以通过检测解码后的链接中是否存在地址符,来准确判断解码后的链接是否为Base64格式的网站链接,从而对其进行准确地测试字符串添加操作。
[0108]如图4所示,优选地,在链接的参数中添加测试字符串形成测试链接(S3)包括:
[0109]S31,获取参数的属性信息;
[0110]S32,查询预设数据库,以获取与属性信息相对应的测试字符串;
[0111]S33,在网站链接的每个参数中,分别添加与其属性信息相对应的测试字符串,以分别形成测试链接。
[0112]由于网站链接中,参数的数量不一定唯一,且每个参数的类型不尽相同,例如链接www.123.cn/vul/view/ ? id = 10&number = 20,那么其中包含两个类型的参数,其一为id,其值为10,其二为name,其值为20,假设id对应用户身份标识,number对应用户登录次数,两个参数属于不同类型,可以根据每个参数的类型分别从数据库中获取相对应的字符串,并添加到相应的参数后以构成完整的测试链接。从而根据该测试链接进行检测,即可对其所在网站进行准确的漏洞检测,例如针对用户身份标识检测一种类型的漏洞,针对用户登录次数检测另一种类型的漏洞。
[0113]如图5A和图5B所示,本发明还提出了一种网站漏洞检测系统10,包括
[0114]获取单元101,用于获取待检测的网站链接,其中,网站链接为Base64编码格式;
[0115]解码单元102,用于对网站链接进行解码,识别网站链接中的参数;
[0116]添加单元103,用于在网站链接的参数中添加测试字符串形成测试链接;
[0117]编码单元104,用于对测试链接进行Base64编码形成编码测试链接;
[0118]检测单元105,用于根据编码测试链接检测网站是否存在漏洞。
[0119]如图5A所示,优选地,获取单元101包括:
[0120]获取子单元1011,用于确定待检测的网站,获取网站中待检测的网站链接;
[0121]第一判断子单元1012,用于判断网站链接的长度是否大于预设长度,以及网站链接中是否存在第一预设字符,若网站链接的长度大于预设长度,且网站链接中不存在第一预设字符,则判定网站链接为疑似链接,
[0122]其中,解码单元102在第一判断子单元1012判定网站链接为疑似链接后,对疑似链接进行解码。
[0123]如图5B所示,优选地,获取单元101包括:
[0124]获取子单元1011,用于确定待检测的网站,获取网站中待检测的网站链接;
[0125]第二判断子单元1013,用于判断网站链接中有效字符的数目是否为4的倍数,以及网站链接的末尾是否包含预设数目的第二预设字符,若网站链接中有效字符的数目为4的倍数,且网站链接的末尾包含预设数目的第二预设字符,则判定网站链接为疑似链接,
[0126]其中,解码单元102在第二判断子单元1013判定网站链接为疑似链接后,对疑似链接进行解码。
[0127]需要说明的是,图5A和图5B分别是本发明两种实施方式,其中的第一判断子单元和第二判断子单元可以根据需要设置为一个功能模块,也可以设置为两个独立的功能模块,并且在设置为两个独立的功能模块,也可以将两个功能模块设置于一个系统中。
[0128]优选地,获取单元101还包括:
[0129]第三判断子单元1014,用于判断解码后的链接中是否存在第一预设符,若解码后的链接中存在第一预设字符,则将解码后的链接作为网站链接。
[0130]优选地,还包括:预设数据库,用于存储属性信息与测试字符串的关联关系,
[0131]其中,添加单元103包括:
[0132]属性子单元1031,用于获取参数的属性信息;
[0133]查询子单元1032,用于查询预设数据库,以获取与属性信息相对应的测试字符串;
[0134]添加子单元1033,在网站链接的每个参数中分别添加与其属性信息相对应的测试字符串,以分别形成测试链接。
[0135]综上所述,本发明通过对Base63编码格式的网站链接进行解码,为其中的参数中添加测试字符串形成测试链接,并在编码后网站是否存在漏洞。实现了对Base64编码链接中参数的精准查询,以及完整地构造Base64编码形式的测试链接进行测试,准确地判断网站是否中是否存在漏洞,提高了网站的安全性。
[0136]应当注意,在此提供的算法和公式不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1