XSS
跨站脚本
盗取用户信息,钓鱼,制造蠕虫等
1. 存储型
访问网站时触发,xss脚本存储在web服务器上
2. 反射型
访问携带xss脚本链接时触发,在url上执行脚本
3. DOM型
访问携带xss脚本链接时触发,脚本通过JavaScript写入hash
三种类型区分
CSRF
跨站请求劫持
利用用户已登录的身份,在用户毫不知情的情况下,,以用户的名义完成非法操作
造成原因:
对关键操作缺少确认机制
利用效果:
被转账,被发垃圾评论,被投票等,制造蠕虫
原理分析:
黑客将写有下面攻击代码的恶意网页嵌入iframe,再将iframe放到一个看起来正常的网页,当用户点开网页时立马被自动转账,iframe隐藏了表单提交的跳转
利用条件:
- 被害用户已经完成身份认证
- 新请求的提交不需要重新身份认证
- 攻击者必须了解web app请求的参数构造
- 诱使用户触发攻击命令(社工)
防范方法:
- Captcha(验证码)
- anti-CSRF token
- Referrer头
- 降低会话超时时间
点击劫持
通过调整iframe或其他标签透明度将框架隐藏误导用户点击而产生的攻击
URL跳转
借助未验证的URL跳转,将应用程序引导到不安全的第三方区域(恶意网站)
1. Header头跳转
2. JavaScript跳转
3. META标签跳转
常见案例
SQL注入
数据
当做代码
来执行
获取管理员用户名,密码,手机号,身份证等数据库信息
获取服务器权限
植入webshell,后门
读取服务器敏感文件
万能密码
过程
- 获取用户请求参数
- 拼接到代码中
- SQL语句按照我们构造参数的语义执行成功
必备条件
- 可以控制输入的数据
- 服务器要执行的代码拼接了控制的数据
利用
- 万能密码(– 即杠杠空格,在SQL语句中为注释符)
- 获取数据库版本
- 获取数据库当前用户
命令注入
- DOS命令
- BASH命令
PHP执行命令的函数
- system
- exec
- shell_exec
- eval
- 等
实例
注意
有时需要URL转义,这里的%26就是&
文件操作漏洞
常见文件操作
- 上传头像,附件
- 下载应用,附件
危害
- 文件上传漏洞
- 任意文件下载
- 未验证下载文件格式名
- 未限制请求路径
- 文件包含漏洞
- 本地文件包含
- 远程文件包含
常用文件包含函数
- include()
- require()
- include_once()
- require_once()