大型企业渗透测试个人去做怎么做?
个人认为步骤应该是信息搜集,扫描,入侵,内网渗透这么个思路,实际上他在问的时候,我并不知道他想让我回答什么内容。我刚提到信息搜集,就开始下一个问题了。
安全模式下绕过php的disable fuction?
DL函数,组件漏洞,环境变量。
(这个当时没答出来)
SQL头注入点?
- UA
- REFERER
- COOKIE
- IP
php中命令执行涉及到的函数?
eval()、assert()、popen()、system()、exec()、shell_exec()、passthru()、pcntl_exec()等函数。
金融行业常见逻辑漏洞?
单针对金融业务的,我认为除了通用性以外的,主要是数据的篡改(涉及金融数据,或部分业务的判断数据),由竞争条件或者设计不当引起的薅羊毛,交易/订单信息泄露,水平越权对别人的账户查看或恶意操作,交易或业务步骤绕过。
SSRF漏洞的成因 防御 绕过
成因:模拟服务器对其他服务器资源进行请求,没有做合法性验证。
利用:构造恶意内网IP做探测,或者使用其余所支持的协议对其余服务进行攻击。
防御:禁止跳转,限制协议,内外网限制,URL限制。
绕过:使用不同协议,针对IP,IP格式的绕过,针对URL,恶意URL增添其他字符,@之类的。301跳转+dns rebindding。
FFMPEG 本地文件读取漏洞原理
我认为简而言之就是通过调用加密API将payload加密放入一个会被执行的段字节中。但是具体回答工程中我只回答了SSRF老洞,m3u8头,偏移量,加密,还有其他部分模糊的提及了一下。感觉还应该提一个文件格式的问题。
常用WEB开发JAVA框架
STRUTS,SPRING
常见的java框架漏洞
其实面试官问这个问题的时候我不太清楚他要问什么,我提到struts的045 048,java常见反序列化。然后面试官说RMI什么什么的,当时这段话没太听清,由于我不知道他想问什么我就提了知道的几个漏洞。
- 045 错误处理引入了ognl表达式;
- 048 封装action的过程中有一步调用getstackvalue递归获取ognl表达式;
- 反序列化 操作对象,通过手段引入。apache common的反射机制、readobject的重写,其实具体的我也记不清楚。。。然后这部分就结束了
开发相关,做过什么开发没有
没有开发过内容,只有思路想法,然后直接下一问题。
同源策略
同源策略限制不同源对当前document的属性内容进行读取或设置。
不同源的区分:协议、域名、子域名、IP、端口,以上有不同时即不同源。
DOM型和反射型的区别?
反射型XSS:通过诱导用户点击,我们构造好的恶意payload才会触发的XSS。反射型XSS的检测我们在每次请求带payload的链接时页面应该是会带有特定的畸形数据的。
DOM型:通过修改页面的DOM节点形成的XSS。
DOM-based XSS由于是通过js代码进行dom操作产生的XSS,所以在请求的响应中我们甚至不一定会得到相应的畸形数据。
根本区别在我看来是输出点的不同。
对于XSS怎么提修补建议
输入点检查:对用户输入的数据进行合法性检查,使用filter过滤敏感字符或对进行编码转义,针对特定类型数据进行格式检查。针对输入点的检查最好放在服务器端实现。
输出点检查:对变量输出到HTML页面中时,对输出内容进行编码转义,输出在HTML中时,对其进行HTMLEncode,如果输出在Javascript脚本中时,对其进行JavascriptEncode。
对使用JavascriptEncode的变量都放在引号中并转义危险字符,data部分就无法逃逸出引号外成为code的一部分。还可以使用更加严格的方法,对所有数字字母之外的字符都使用十六进制编码。此外,要注意在浏览器中,HTML的解析会优先于Javascript的解析,编码的方式也需要考虑清楚,针对不同的输出点,我们防御XSS的方法可能会不同。
除此之外,还有做HTTPOnly对Cookie劫持做限制。
DOM型XSS 自动化测试或人工测试
人工测试思路:找到类似document.write、innerHTML赋值、outterHTML赋值、window.location操作、写javascript:后内容、eval、setTimeout 、setInterval 等直接执行之类的函数点。找到其变量,回溯变量来源观察是否可控,是否经过安全函数。
自动化测试思路:从输入入手,观察变量传递的过程,最终检查是否有在危险函数输出,中途是否有经过安全函数。但是这样就需要有一个javascript解析器,否则会漏掉一些通过js执行带入的部分内容。
(在回答这段问题的时候,由于平时对客户的检测中,基本是凭借不同功能点的功能加上经验和直觉来进行检测,对不同类型的XSS检测方式实际上并没有太过细分的标准化检测方式,所以回答的很烂。。。)
token和referer做横向对比,谁安全等级高?
token安全等级更高,因为并不是任何服务器都可以取得referer,如果从HTTPS跳到HTTP,也不会发送referer。并且FLASH一些版本中可以自定义referer。
但是token的话,要保证其足够随机且不可泄露。(不可预测性原则)
对referer的验证,从什么角度去做?如果做,怎么杜绝问题
对header中的referer的验证,一个是空referer,一个是referer过滤或者检测不完善。
为了杜绝这种问题,在验证的白名单中,正则规则应当写完善。
针对token,对token测试会注意哪方面内容,会对token的哪方面进行测试?
引用一段请教前辈的回答:
针对token的攻击,一是对它本身的攻击,重放测试一次性、分析加密规则、校验方式是否正确等,二是结合信息泄露漏洞对它的获取,结合着发起组合攻击;
信息泄露有可能是缓存、日志、get,也有可能是利用跨站;
很多跳转登录的都依赖token,有一个跳转漏洞加反射型跨站就可以组合成登录劫持了;
另外也可以结合着其它业务来描述token的安全性及设计不好怎么被绕过比如抢红包业务之类的。
如何生成一个安全的随机数?