'360面试笔试题'

前两天面试了360,总结了下笔试题及参考答案

1、如果存在 SQL 注入怎么判断不同的数据库。

注释符判断
/*是 MySQL 中的注释符,返回错误说明该注入点不是 MySQL,
继续提交如下查询字符:
–是 Oracle 和 MSSQL 支持的注释符,如果返回正常,则说明为这两种数据库类型之一。
继续提交如下查询字符:
;是子句查询标识符,Oracle 不支持多行查询,因此如果返回错误,则说明很可能是 Oracle 数据库。

函数判断
and (select count(*)from MSysAccessObjects)>0 access 数据库
and (select count(*)from sysobjects)>0 返回正常说明是 mssql 数据库
and length(user())>10 返回正常说明是 Mysql
Oracle 可以根据 from dual 虚拟库判断

2、简述下浏览器的自解码机制。

HTML 解码->URL 解码(目前只发现 a 标签的 href 属性会进行该解码)->JS 解码

3、拿到目标站怎么进行渗透,需要注意什么。

收集信息:whois、网站源 IP、旁站、C 段网站、服务器系统版本、容器版本、 程序版本、数据库类型、二级域名、防火墙、维护者信息另说… 然后对应端口和漏洞进行攻击。 注意尽量不要使用工具,不影响正常业务。

4、CSRF 漏洞的原理是什么?怎么修复?

原理:利用网站对用户标识的信任,欺骗用户的浏览器发送 HTTP 请求给目标站。
防御的三种策略:
(1)验证 HTTP referer 字段
(2)请求地址中添加 token 并验证 token 作用:服务器端会对 Token 值进行验证,判断是否和 session 中的 Token 值相等
(3)在 http 头中自定义属性并验证

5、代码审计怎么做?

根据敏感函数,逆向追踪参数传递的过程
比如 seay 源代码审计系统,利用正则匹配一些高危函数、关键函数以及敏感关键字,分析 判断敏感函数的上下文,追踪参数源头,尝试控制可控的参数变量。

6、哪些漏洞是 WAF 不能防御的?请举出至少三类漏洞。

逻辑漏洞,CSRF,SSRF

7、考虑以下场景:一个多用户的博客系统(类似于 CSDN),普通用户登陆到个人中心后, 发现删除自己某篇文章所请求的 URI 为 delete.php?article_id=24,请考虑这个地方最有可能 出现哪些安全问题?

1
2
(1)id=24,利用 24-1 检查页面变化,' " ') ')) ") "))字符闭合进行测试,可能存在注入 
(2)通过修改24这个参数,可能会实现任意文章删除

8、PHP5 环境下,如果配置文件中 magic_quotes_gpc 为 On,则 PHP 会对请求参数中的哪些 字符进行自动转义?

1
该参数为魔术引号,对' " \及 NULL 进行转义

9、使用 sqlmap 工具进行 sql 注入漏洞利用时,可以尝试使用()选项获取一个操作系统 shell。

1
2
sqlmap --os-shell 
原理为通过outfile和dumpfile功能,向网站目录写入php代码,执行系统命令

10、渗透时后端环境是 apache+php+mysql 的情况下,利用 sql 注入写 webshell 一般来说需 要满足三个条件:1.mysql 用户需要有()权限;2.需要知道()路径;3.()(符号)不能 被过滤。

1
条件:mysql 用户需要有写权限,需要知道网站根目录的绝对路径,< > ' " 不能被过滤

加入知识星球获取更多渗透资料