Web常见漏洞

  • 小编 发布于 2019-12-10 23:32:14
  • 栏目:科技
  • 来源:iBlack
  • 9798 人围观


Web常见漏洞


偶然间看到Acmesec/DoraBox,研究了一番。

SQL注入

现在绝大多数语言都已经实现了绑定参数式查询,但很多都出于性能的原因,模拟的绑定,而非正真的绑定,偶然间依然有SQL注入,例如laravel5.8中的验证字段是否存在某值时。

文件上传

这个是Apache和windows上漏洞很多,nginx上的php-fpm也有一个cgi.fix_pathinfo。再就是常规的,判断文件扩展名,忘记区分大小写等方法不够牢靠,也有后端忘记判断的,MIME或文件魔数判断文件类型不够准确等。

XSS跨站脚本

一般可以使用htmlspecialchars过滤,甚至有时候需要过滤多遍

DOM型,GET参数直接输出到文档

存储型,用户输入的脚本内容,直接输出的

反射型,用户的输入通过后端,直接输出的

实际需要考虑的情况很多,OWASP/CheatSheetSeries中有各种安全相关的操作手册

PHP可以使用HTML Purifier,各大框架也是使用的这个,但多媒体标签常常需要定制

基本上没有任何一个网站敢说绝对没有XSS

任意文件包含/读取

如果需要显示文件内容,往往需要包含文件,页面可能显示/etc/passwd,从而泄露一些重要信息

可以使用open_base_dir限制仅获取document_root下的文件

特别注意多个../,从而访问任意文件

file_get_contents这样的函数,如果参数是用户输入的,也没有限制open_base_dir,是非常危险的

CSRF

一般框架都会自带,即使不自带一般也没有风险,如果设置了跨域就不一样了

jsonp是很不安全的,因为不检查域名同源,别的网站能读取登陆人的一些数据,甚至操作一些表单

设置了CORS时,如果没有明确限制域名,有巨大的风险,Hacker轻而易举的收集登陆人的凭证

任意代码/命令执行

eval等函数执行用户输入的命令

exec执行shell命令

这些危险函数,要么禁用,要么写死

SSRF

服务端资源请求,当输入url时就要小心了,可能是file:///etc/passwd这样的链接

Ueditor曾出现过SSRF,利用的是DNS重绑定,第一次获取的是外网IP,最后获取的是内网HTTP资源

条件竞争

常用于支付等需要多个步骤的地方,如果没有使用事务,高并发时加钱,减钱操作的数据不是同一条,造成严重的漏洞

再有就是上传文件时,有时错误的先移动再判断,移动后用户可能直接访问,后面的判断都是无效的

XXE

XML脚本中包含的系统命令,获取系统文件等,可通过选项libxml_disable_entity_loader关闭外部实体加载

转载请说明出处:866热点网 ©