超过 38% 的黑客的答案是 XSS 漏洞,其次是 SQL 注入、模糊测试、业务逻辑、信息收集、SSRF、RCE、枚举、逆向工程、IDOR、暴力攻击、注入、CSRF、验证、XXE、DDoS。

摘自:2019 HackerOne黑客报告:白帽收入最高竟是普通程序员的40倍 - Track 安全社区

常见网络攻击方式和说明

攻击方式说明
XSS 漏洞XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是 JavaScript,但实际上也可以包括 Java、 VBScript、ActiveX、 Flash 或者甚至是普通的 HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie 等各种内容。
SQL 注入随着 B/S 模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL Injection,即SQL注入。
模糊测试一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法
业务逻辑通过寻找业务逻辑本身存在的漏洞,进行攻击,比如提交订单时修改提交的支付金额,若后台没有做二次验证,直接使用脏数据,则可以薅平台羊毛
信息收集
SSRFServer-side Request Forge, 服务端请求伪造,从而获取客户端所不能得到的数据。SSRF漏洞形成的原因主要是服务器端所提供的接口中包含了所要请求的内容的 URL 参数,并且未对客户端所传输过来的 URL 参数进行过滤。
RCEremote command/code execute,远程命令、代码执行漏洞,能够让攻击者直接向后台服务器远程写入服务器系统命令或者代码,从而控制后台系统。RCE 分为远程连接命令执行 ping 和远程代码执行 evel 命令木马。
枚举通过字典枚举密码登录服务器。一般的服务器的登录端口为 22(windows server:3389),用户名为 root(windows server:administrator),可以通过枚举密码的方式进行暴力破解。通过 ssh 登录服务器后经常会看到提示有多少次的失败登录记录,这些就是服务器被暴力破解登录密码的痕迹。可以通过修改端口号,修改默认用户名,设置登录次数限制,设置 IP 黑名单等方式避免。
逆向工程通过逆向技术还原源代码,比如反编译。记得看到有个新闻说一家公司通过反编译重做了一个盗版微信,还能跟正版的微信互联互通
IDORIDOR 将允许一名授权用户获取其他用户的信息,意指一个已经授权的用户通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。这是代码逻辑规范问题,要对用户登录状态下能够读写的内容做限制
暴力攻击暴力破解攻击有时称为密码破解,其执行目的通常是发现登录凭据并获取对网站的访问权限,以达到数据盗窃、故意破坏或分发恶意软件的目的,而这些活动反过来又可用于在其他目标上启动暴力破解攻击、DDoS 和各种类型的网络攻击。受到攻击的服务器负载会增加。
注入~
CSRFCross-site request forgery,跨站请求伪造,一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。通常解决方法,比如 yii2 中会提交的表单添加隐藏 csrf 验证字段,服务端会对每次请求做验证,确认是用户发出的请求。
验证~
XXEXML External Entity,外部实体注入攻击,通过 XML 实体,“SYSTEM”关键词导致 XML 解析器可以从本地文件或者远程 URI 中读取数据。所以攻击者可以通过 XML 实体传递自己构造的恶意值,使处理程序解析它。当引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。
DDoSDistributed denial of service attack,分布式拒绝服务攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用。服务商会提供流量包专门用来防御 DDos。