一、暴力破解 (Brute Force)
暴力破解是Web安全领域的一个基础技能,破解方法论为:构建常见用户名及弱口令
因此需要好的字典,对应破解场景构建特定的用户名密码,以及还需要具有灵活编写脚本的能力
1. 全级别涉及的安全知识点:
<1>get与post的区别
get不如post安全;
post使用body传输数据,而get用Url传输;所以更加容易被看到;
注:
但是有一个问题是虽然post相对来说比较安全,但是从攻击的角度说get和post都不足够,因为HTTP本身属于明文协议,所以不论是url、header、还是body,每一个HTTP请求和返回的每个byte都会在网络上进行明文传输.所以,一般使用的方法是使用https协议、私网等。
另一方面,如果get作为接口使用,其实也是可以带上body的,而post也可在url上携带数据。所以还是具体问题具体分析。
一些细节方面:① get书签可以收藏,post书签不可收藏;②get可以缓存,post不能缓存;③get历史参数可以保留在浏览器历史中,post则不会;④get只允许ASCII字符,post无限制;
<2>php相关函数说明
对于用户名及密码信息进行过滤;
mysql_real_escape_string
()函数
将 string 中的特殊字符转义,一般使用方法如下:
$user = mysql_real_escape_string($user); $pwd = mysql_real_escape_string($pwd); //用来转义用户名和密码
//说明:这个函数会在'
,"
和前面添加反斜杠
来转义危险字符
<3>checkToken
在高级别的源码中,为了防CSRF,一般使用Anti-csrf token机制,由这个函数来实现。
<4>PDO模式
PDO模式防SQL注入的原理是利用PDO的预处理方式。
<5>防御CSRF
一般有三种方式:响应头Set-Cookie设置SameSite属性;效验码或Token验证;验证Http Referer字段。
2. (防守方) 防御方法及代码修改
设置IP黑名单、设置错误登录次数、设置每次登录错误后延时1分钟才能再次登录、设置验证码等
3.工具使用- Burpsuite
若遇到抓不到本地流量的情况,试着将127.0.0.1改成本地IP地址。
字典下载地址:
https://github.com/danielmiessler/SecLists/tree/master/Passwords
https://thehacktoday.com/password-cracking-dictionarys-download-for-free/