小弟的公司最近要面一个高级安全专家的职位,老板让我准备几个技术问题,奈何小弟并不是搞安全的,水平有限,求大神随便出几个题目,以镇住面试者,不胜感谢!
1
hu5ky 2019-06-27 15:51:20 +08:00 1
问:拿到一个待检测的站,你觉得应该先做什么?
答:收集信息 whois、网站源 IP、旁站、C 段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息另说... 问:如何突破注入时字符被转义? 答:宽字符注入 hex 编码绕过 问:代码审计常见易出问题函数 答:eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function 文件读取:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等 命令执行:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open() 问:token 和 referer 做横向对比,谁安全等级高? 答:token 安全等级更高,因为并不是任何服务器都可以取得 referer,如果从 HTTPS 跳到 HTTP,也不会发送 referer。并且 FLASH 一些版本中可以自定义 referer。 但是 token 的话,要保证其足够随机且不可泄露。(不可预测性原则) 问:对 referer 的验证,从什么角度去做?如果做,怎么杜绝问题 答:对 header 中的 referer 的验证,一个是空 referer,一个是 referer 过滤或者检测不完善。 为了杜绝这种问题,在验证的白名单中,正则规则应当写完善。 问:涉及到 Jsonp 的安全攻防内容有哪些? 答:JSON 劫持、Callback 可定义、JSONP 内容可定义、Content-type 不为 json。 问:mysql 的网站注入,5.0 以上和 5.0 以下有什么区别? 答:5.0 以下没有 information_schema 这个系统表,无法列表名等,只能暴力跑表名。 5.0 以下是多用户单操作,5.0 以上是多用户多操做。 问:宽字节注入产生原理以及根本原因 答:产生原理 在数据库使用了宽字符集而 WEB 中没考虑这个问题的情况下,在 WEB 层,由于 0XBF27 是两个字符,在 PHP 中比如 addslash 和 magic_quotes_gpc 开启时,由于会对 0x27 单引号进行转义,因此 0xbf27 会变成 0xbf5c27,而数据进入数据库中时,由于 0XBF5C 是一个另外的字符,因此\转义符号会被前面的 bf 带着呗"吃掉",单引号由此逃逸出来可以用来闭合语句。 根本原因 character_set_client(客户端的字符集)和 character_set_connection(连接层的字符集)不同,或转换函数如,iconv、mb_convert_encoding 使用不当。 |
2
smallpython 2019-07-04 13:55:08 +08:00
楼上随手一打就这么多字,厉害
|