安全测试-账号密码破解
一、安全等级为low时的试验

1.1SQL注入方式破解
1.初看界面时,检测界面上有没有sql注入点 ,按之前在sql注入的章节里面的xxxx' and 1=1#进行试验
2.盲猜账号为admin或者root,首先用admin进行测试
3.在账号界面输入admin' and 1 = 1# 密码随便输
4.发现居然登录成功了!!!注入成功,low等级的登录界面果然漏洞百出!
5.翻看一下low等级页面的源码 
发现$query = "SELECT * FROM users WHERE user = '$user' AND password = '$pass';";这一句中,没有对账号密码进行sql注入的过滤
当我输入正确的账号后面加入 ‘ and 1= 1# 之后,后面的password 的判断被我注入的#号给过滤了,所以密码我输入什么都可以登录成功!!
1.2暴力破解
1.首先进入界面时,发现该界面没有验证码,第一印象是可以进行暴力破解
2.随意输入一个错误的账号密码,反复输入,虽然提示错误,但是没有一段时间内限制我的输入次数,那就更加确定可以使用暴力破解了
3.打开burpsite的暴力破解相关界面,加入暴力破解检查单,进行破解
4.破解成功
1.3 burpsite暴力破解操作



1.3计时攻击
假设你的登录页面的后端代码是这么实现的:

第一步,很明显,通过判断字符长度这一层的时间如果错误就直接返回了,程序不用经过下面的判断,使用的时间会少一点,因此我们可以通过不断的长度试探,再用不同的返回时间来确认密码长度。
第二步,看后面的判断,每个字符如果正确或错误,返回的时间也是不一样的,那么,可以通过暴力攻击的方式逐个比较判断即可
第三步,经过上述分析,又可以借由工具去爆破密码了,方法同1.2说明的差不多,不再赘述

浙公网安备 33010602011771号