三、CSRF 跨站请求
原理:由于站点没有对用户修改敏感信息时提交内容的这个过程进行防护,导致攻击者可以轻易的去伪造用户的一个请求,然后“借用”用户的权限完成一次非法的数据请求,进而对用户造成危害!
利用:比如小红正在浏览某购物网站,这个时候小红是处于登陆状态的,然后小黑给小红发送了一段链接,这个链接是小黑通过抓包或者其他手段伪造的一个请求数据的链接,如果这个时候小红一旦点击了这个链接,那么就会以小红的身份去发送请求,进而修改小红的数据等,此时攻击就发生了。所以相对来说这个漏洞的利用条件还是比较苛刻的,一般这个漏洞的级别也不是很高!
区分:这个漏洞容易和XSS弄混淆,我们还是以上面那个例子来说的话,如果是XSS漏洞的话,那小黑就可以直接拿到小红的cookie登录小红的账号进行操作了,所以总结来说,XSS是直接“获取”权限,而CSRF是“借用”权限!所以这两个漏洞谁的含金量高也就不言而喻了!
1.get型
get型的一般比较相对好伪造一些,因为攻击者可以去有漏洞的网站上自己注册一个账号,然后通过抓包就可以知道请求是长什么样子的!进而进行伪造!
举个栗子:比如我们如果抓到一个站点修改信息的包如下:http://192.168.6.141/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=111&phonenum=122&add=武汉&email=111&submit=submit HTTP/1.1
那我们就可以修改里面的参数然后发送给受害人,如果此时受害人正好以登录的情况浏览这个站点,那么他的信息就会被篡改!
2.post型
这个利用起来会稍微有点麻烦,我们需要构造一个钓鱼网站,里面把我们需要提交的post请求以表单的方式构造好,然后诱使受害者进行点击,然后从我们的站点将post请求发给目标站点,然后以此来达成我们的攻击目的!
3.token
token是一个随机生成的一长串数值,在后台生成然后发送到前端,在前端提交post请求时一并发送到后端进行验证,如果token不一致的话请求就不会生效,这样就防止了别人通过伪造请求对我们的站点进行csrf攻击!
4.防csrf的方法:
1.增加token就是一个很好的方法!
2.会话管理:
设置会话过期机制比如会话过期时间要尽可能设置的短一些
不会将一些敏感信息保存在客户端
3.访问控制安全管理:
修改信息时进行二次身份验证,比如输入原密码等
提交敏感信息时使用post方法不用get方法
通过http头部的referer来限制原页面
5.referer:
也算是一个验证机制,可以验证我们的请求是从哪里过来的,如果不是我们要求的地方是不可以访问我的,这样其实可以有效地去防止钓鱼,比如上面我们说的post那种情况!我们用我们自己搭建的站点向目标站点提交表单信息如果referer不对就会被拦截!
四、sql注入漏洞
1.原理:
主要是开发人员在构建代码的时候没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄露!
2.攻击流程
1.1注入点探测
自动方式:使用web漏洞扫描工具,自动进行注入点发现
手动方式:手工注入sqli测试语句进行注入点发现
1.2信息获取
环境信息:比如数据库的类型,数据库的版本,操作系统的类型和版本等信息
&nb