通知图标

欢迎访问秃兔安全

58同城-安全工程师_大厂面试题聚合论坛_秃兔安全

58同城-安全工程师

  • 你先做个自我介绍吧

  • 假如说有个SQL注入如下

    select * from user where userid = {};
    
    1. response里面没有返回内容
    2. 1s就超时了,直接返回404页面

    这种情况下如何注入?

  • 比如说我写一个安全SDK

    1. sql注入的修复, 怎么写(伪代码)

      答:我倾向于使用预编译的方式

    2. 但是预编译的话, 研发可能不会用怎么办呢, 就是说如果他觉得改起来太麻烦了能不能更方便一点. 因为预编译的话, 我每条SQL每条查询都得去改.

      答:那设计一个白名单怎么样呢

    3. 那你大概写一下怎样设计一个白名单. 你可以分场景, 比如说什么场景什么场景的SQL注入, 或者是参数里面应该做什么操作

    4. xss的修复, 怎么写(伪代码) 答: 用实体化转义

    5. 但是我们有一个场景啊, 你看我们上传简历这里, 有时候会支持上传html的简历, 对吧. 他本身业务就需要用到html, 如果用html实体化转义的话, 他全都会被转义, 那这样的话业务就崩了嘛, 对不对. 那这种情况下我们要怎么样去写一个xss的过滤, 或者是说转义, 去解决这个类似于简历这个场景. 你可以想一想, 写不出来代码也没关系.

      答:白名单限制, 黑名单过滤.

    6. 其实我们自己是这样做的, 对于这种情况, 我们第一是会做一个html标签的白名单, 第二是事件的白名单. 黑名单我们就不搞了.

    7. rce的修复, 怎么写(伪代码)(java或者python的命令执行) 答: 白名单限制, 只允许需要的函数. 但RCE的话我感觉在业务场景当中, 一般来说也不是很容易出现 面试官: 欸, 我们就出现了很多. 尤其是运维部门.

      我: 我打CTF比较多, 我了解的RCE都是PHP方面的. 比如说system, popen之类的. 一般来说都是直接做过滤

    8. 那PHP中这些函数全部被黑名单了, 你还有什么方法

      答: 字符串拼接 $a=p.h.p.i.n.f.o()

    9. 你有没有用过php里面的反引号啊

      答: 还有用 chr() 函数来绕过

    10. 面试官: 编码是吧

    11. xxe的修复, 怎么写(伪代码) 答: 对XXE来说, 我只了解他的攻击方式, 对他的防御不是很了解. 攻击方式就是做XML的外部实体化注入. 一个攻击模板, 可以读文件, 可以做命令执行

    12. XXE怎么做命令执行呢, 就拿php来说, XXE怎么做命令执行

    13. XXE这个命令执行是要他的服务端本身支持某些特殊的协议, 一般来说是不行的

  • 了解过自动化代码审计的工具吗, 类似于fortify这种

    答: 我只用过那个一个比较老的那个, 我想不起来了(指seay)

  • 没关系, 那你有没有了解过他的一些原理, 大概怎么做的

    我: 他原理一般都是通过匹配一些特殊函数, 去定位可能出现漏洞的函数的位置

  • 但这种的话他误报很高欸, 就像我这种RCE的话, 你直接匹配的话他很多都是误报了, 很多他都不是web思路的

    我: 还有一种是, 给他加一些自定义规则

  • 那有没有更好的办法呢, 误报太多了我们没办法接受啊

    我: 我有一个想法就是, 他自己匹配了之后, 能不能从前端从一个黑盒的层面再去验证一遍

  • 那黑盒验证, 我就有需求是, 首先我得知道, 首先我php里面我这个函数到底是哪个入口传进来的, 对吧. 但这个有可能经过了层层调用, 甚至有可能是include()这种, 那这种的话, 对于我来说 , 我并不知道他影响到了哪一些入口, 这种情况怎么办呢

  • 你们学校有学编译原理吗

  • 其实我觉得安全专业还是要学一下编译原理

  • 有没有搞过linux的这种后渗透相关的

    1. 面试官: 比如这个linux被我攻陷了, 我想去拿到更多的信息, 比如说一些横向的信息, 那种有没有搞过 我: 这种不是很了解, 但windows的会一点

    2. 面试官: 那你可以简单讲一下, 比如你先攻陷一台windows的机器, 然后我想在这个windows的域内去做一些横向移动, 我想把这个windows的域的权限给拿到, 这种你该怎么做 我: 通过票据伪造, 白银票据和黄金票据 面试官: 你这个票据伪造要怎么做呢 我: 一般用mimikatz就可以了吧

    3. 面试官: 你mimikatz抓取的是内存里面的密码和一些他的票据, 那我如果本身是低权限的呢, 就我本身抓不了密码, 或者我抓到的用户密码并不是域账号的, 是一个低权限账号呢. 因为大部分渗透进来都是个应用, 应用他可能并没有域权限 我: 从低权限往上提

    4. 面试官: 那你一般会怎么提权 我: 一般windows的漏洞吧 面试官: 那现在就用这个windows系统的提权, 我现在就一个webshell, 那我怎么样去提权

    5. 面试官: 你可以这样嘛, 你上传一个提权的脚本或者exe嘛, 你webshell去跑这个exe, 他就把这个web应用权限提权了

  • 那你最后有什么想问我的吗

请登录后发表评论

    没有回复内容