渗透测试发现的问题
SQL注入攻击
原因
后端数据库过于信任前端传入数据
攻击方式:
通过前端输入相关SQL语句,使得后端数据库执行,套取数据库中的关键信息
解决方法:
对于前端传来的数据不直接进行操作数据库,而是进行过滤后对数据库进行操作。
跨站脚本攻击(XSS攻击)
原因
主要是攻击客户端,输入输出都没有进行严格的过滤
攻击方式:
1、黑客在网页上提交恶意XSS攻击代码(评论形式)
2、服务器收到后,更新网页
3、第三方正常用户请求访问被修改的网页
4、浏览器发送被篡改的页面(带有恶意攻击代码页面)给第三方,第三方用户可能被攻击
如图,看图片上序号
解决方法:
加强对于网页修改内容输入输出的过滤。
上传文件过滤不严:
攻击方式:
在文件上传页面,可能会被攻击者上传攻击脚本文件,可能会通过压缩等规避对于文件名的限制
解决方法:
- 文件上传目录设置为不可执行
- 对文件后缀名进行检查;对文件头进行检查,不同的文件名会有不同的开头或者标志位
- 使用随机数改写文件名和文件路径,文件上传后需要执行代码,需要用户访问这个文件,随机改写后,会增加访问难度。
远程文件包含:
攻击方式:
在代码中调用一些远程函数包时,可能被调用的包经过改写,插入了恶意攻击的代码。
暴力破解:
产生原因:
密码过于简单,登录流程没有对密码输入次数进行限制
攻击方式:
利用自动化软件+密码字典进行密码破解
跨站请求伪造:
攻击目标:
攻击服务器
攻击方式:
黑客搭建自己的网站用于保存攻击对应服务器的信息,在用户访问服务器时将网站发送给正常用户,正常用户点击后浏览器自动将黑客网站上的请求通过正常用户的浏览器发送给服务器。
如图,看图片上序号
防御方式:
- 验证码,对于关键操作加上验证码
- token:在http请求中以参数形式加入一个随机产生的token,并在服务器建立一个拦截器验证这些token,没有token或是不正确的即可认为是CSRF攻击,进行拦截。
未授权访问:
攻击方式:
无需密码或是未授权即可直接登录,并且进行操作
防御方式:
验证码,对于关键操作加上验证码
敏感性息泄露
防御方式:
明确文件的权限
任意文件读取
防御方式:
明确文件的权限